在构建机器学习模型之前如何分析数据?

在构建机器学习模型之前如何分析数据?

目录:

 · 读取数据时要问的基本问题  
 · 探索性数据分析  
 · 数据类型 · 单变量分析  
 ∘ 分类数据  
 ∘ 数值数据:  
   
 · 双变量和多变量分析

读取数据时要问的基本问题

当我们阅读数据时,我们应该问 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种分析,

  1. 单变量分析
  2. 双变量分析
  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 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/33134/26221308

posted @ 2022-09-13 08:27  哈哈哈来了啊啊啊  阅读(39)  评论(0编辑  收藏  举报