在构建机器学习模型之前如何分析数据?
在构建机器学习模型之前如何分析数据?
目录:
· 读取数据时要问的基本问题
· 探索性数据分析
· 数据类型 · 单变量分析
∘ 分类数据
∘ 数值数据:
· 双变量和多变量分析
读取数据时要问的基本问题
当我们阅读数据时,我们应该问 7 个基本问题。
1.数据的形状是什么?
df.shape
(891, 12)
2. 数据如何?
df.head()
df.sample(5)
3、每列的数据类型是什么?
df.info()
4. 数据中是否存在缺失值?
df.isnull().sum()
5. 数据在数学上看起来如何?
df.describe()
6. 数据中是否存在重复值?
df.duplicated().sum()
0
7.列之间的相关性如何?
df.corr()
df.corr()['幸存']
探索性数据分析
探索性数据分析的目的是深入了解数据。 EDA主要有3种分析,
- 单变量分析
- 双变量分析
- 多元分析
(单变量和变量变量)当我们使用单变量分析数据时,这意味着我们正在进行单变量分析。当我们得到多列的数据时,每一列都可以称为一个变量,当我们对每个变量独立分析数据时,称为单变量分析。
当我们同时使用两个变量进行分析时,称为双变量分析(bi-two,variate-variables),同时使用两个以上变量进行分析称为多变量分析。
数据类型:
数据将是两种类型之一 数值 或者 分类的 .
数值数据:
数值数据是指数字形式的数据。例如,人的年龄、人的身高、人的体重。
分类数据:
分类数据是指分组的信息集合。数据属于其中一种类别。例如,如果这个人是男性还是女性,如果这个人是富人还是穷人。
当我们启动 EDA 时,我们需要检查该列是数字列还是分类列,并相应地执行分析,我将在这篇博客中展示。
单变量分析:
分类数据
计数图
将 seaborn 导入为 sns
将 matplotlib.pyplot 导入为 plt sns.countplot(df['Survived'])
**df['Survived'].value_counts()** 0 549
1 342
名称:幸存者,数据类型:int64 **df['Survived'].value_counts().plot(kind = 'bar')**
sns.countplot(df['Pclass'])
sns.countplot(df['Sex'])
sns.countplot(df['Embarked'])
饼形图
df['Survived'].value_counts().plot(kind = 'pie' , autopct = '%.2f')
df['Pclass'].value_counts().plot(kind = 'pie' , autopct = '%.2f')
df['Sex'].value_counts().plot(kind = 'pie' , autopct = '%.2f')
df['Embarked'].value_counts().plot(kind = 'pie' , autopct = '%.2f')
数值数据:
直方图
plt.hist(df['Age'] , bins=10)
plt.xlabel('年龄')
plt.ylabel('计数')
plt.hist(df['Fare'], bins=10)
plt.xlabel('票价')
plt.ylabel('计数')
分布图
sns.distplot(df['年龄'])
sns.distplot(df['Fare'])
箱形图
sns.boxplot(df['年龄'])
sns.boxplot(df['Fare'])
双变量和多变量分析
提示 = sns.load_dataset('tips')
泰坦尼克号 = pd.read_csv('titanic_train_data.csv')
航班 = sns.load_dataset('航班')
iris = sns.load_dataset('iris')
1.散点图(Numerical-Numerical)
sns.scatterplot(tips['total_bill'] ,tips['tip'])
sns.scatterplot(tips['total_bill'],tips['tip'],hue=tips['sex'])
sns.scatterplot(tips['total_bill'],tips['tip'],hue=tips['sex'],style=tips['smoker'])
plt.figure(figsize=(12,6))
sns.scatterplot(tips['total_bill'],tips['tip'],hue=tips['sex'],style=tips['smoker'],size=df['size'])
2. 条形图(数值 - 分类)
sns.barplot(泰坦尼克['Pclass'],泰坦尼克['年龄'])
sns.barplot(泰坦尼克号['Pclass'],泰坦尼克号['Fare'])
sns.barplot(泰坦尼克['Pclass'],泰坦尼克['Fare'],色调=泰坦尼克['Sex'])
sns.barplot(泰坦尼克['Pclass'],泰坦尼克['年龄'],色调=泰坦尼克['性别'])
3.箱线图(数值分类)
sns.boxplot(泰坦尼克号['性别'],泰坦尼克号['年龄'])
sns.boxplot(泰坦尼克['性别'],泰坦尼克['年龄'],色调=泰坦尼克['幸存'])
4. Distplot(数值分类)
sns.distplot(泰坦尼克号[泰坦尼克号['Survived']==0]['Age'], hist=False , color='red')
sns.distplot(titanic[titanic['Survived']==1]['Age'], hist=False, color='green')
5. 热图(分类 - 分类)
pd.crosstab(泰坦尼克号['Pclass'],泰坦尼克号['Survived'])
sns.heatmap(pd.crosstab(titanic['Pclass'] , titanic['Survived']), annot=True)
round(titanic.groupby('Pclass')['Survived'].mean()*100,2) 类
1 62.96
2 47.28
3 24.24
名称:幸存者,数据类型:float64 **(titanic.groupby('Pclass')['Survived'].mean()*100).plot(kind = 'bar')**
round(titanic.groupby('Embarked')['Survived'].mean()*100,2) 登船
C 55.36
Q 38.96
小号 33.70
名称:幸存者,数据类型:float64 (titanic.groupby('Embarked')['Survived'].mean()*100).plot(kind = 'bar')
6. 配对图
sns.pairplot(虹膜)
sns.pairplot(虹膜,色调='物种)
7. 线图(数值 - 数值)
新的 = flight.groupby('year').sum().reset_index() sns.lineplot(new['year'] , new['passengers'])
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明