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

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

目录:

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

· 双变量和多变量分析

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

当我们阅读数据时,我们应该问 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  哈哈哈来了啊啊啊  阅读(86)  评论(0)    收藏  举报