单变量分析机器学习解释

166 阅读8分钟

image.png

· EDA(探索性数据分析)。

· 数据及其类型。

· 使用分类数据。

· Countplot 使用 seaborn。

· 分布图。

· 直方图

· 饼图

· 箱形图

探索性数据分析:

EDA 或探索性数据分析是任何数据分析项目中的关键步骤。它涉及检查和理解数据以发现见解、模式和关系。

在 EDA 中,单变量分析是涉及一次分析单个变量的初始步骤。它有助于了解数据的分布、识别离群值和异常值,并检测潜在的错误或缺失值。

在深入研究单变量分析的类型之前,让我们先对数据进行一个总体概述。数据大致可以分为两类:

数据及其类型

什么是数据和数据类型?

数据可以定义为特定数量的系统记录。它是该数量的不同值一起表示在一个集合中。它是用于特定目的(例如调查或分析)的事实和数据的集合。当以有组织的形式排列时,可以称为信息。

数值数据: 本质上是定量的,可以进一步分为两类:

A。离散数据: 它由整数组成并且是可数的。例如,一个家庭的宠物数量。

b. 连续数据:它被测量并且可以取特定范围内的任何值。例如,一个人的身高。

分类数据: 本质上是定性的,可以进一步分为两类:

A。标称数据: 它由没有内在顺序的类别组成。例如,性别、颜色或汽车类型。

b. 序数数据: 它由具有特定顺序的类别组成。例如,教育资格或等级量表。

单变量分析

使用数据集中的单个列。

可以对数值数据和分类数据执行单变量分析。对于数值数据,我们可以检查均值、中位数和众数等集中趋势的度量,以及方差和标准差等分布的度量。直方图、箱形图和密度图也可用于可视化数据分布。

对于分类数据,我们可以检查每个类别的频率,计算每个类别中观察值的百分比,并绘制条形图以可视化数据分布。

总之,单变量分析是 EDA 中的一个重要步骤,有助于一次理解和探索单个变量。

Countplot 及其参数:

计数图是一种条形图,它使用条形图显示每个分类 bin 中的观测值计数。它通常用于可视化数据集中分类变量的分布。

image.png

以下是如何使用 Python 中的 seaborn 库创建计数图的示例:

将 seaborn 导入为 sns

加载样本数据集

tips = sns.load_dataset(“tips”)

创建计数图

sns.countplot(x=”day”, data=tips)

在此示例中,我们正在创建“tips”数据集中“day”列的计数图。生成的图将使用条形图显示每个类别(“周四”、“周五”、“周六”、“周日”)中的观察数量。

sns中可以使用的一些重要参数。countplot() 函数是:

x: 要绘制在 x 轴上的分类变量的名称

数据: 用于绘图的数据集的名称

hue: 另一个分类变量的名称,用于按颜色对条形进行分组

调色板: 用于条形图的调色板

order:在 x 轴上显示类别的顺序

色调顺序: 显示色调变量类别的顺序

饼形图:

饼图是一种圆形统计图形,用于表示数字比例。在饼图中,圆圈代表数据的总值,饼图的每一片代表该值的一部分。饼图通常用于显示分类数据集中每个类别的百分比。

image.png

以下是如何使用 Python 的 matplotlib 库创建饼图的示例:

将 matplotlib.pyplot 导入为 plt

# 样本数据

labels = ['苹果', '橙子', '香蕉', '芒果']

尺寸 = [30, 25, 20, 25]

创建饼图

图,ax = plt.subplots()

斧头。饼图(大小,标签=标签,autopct='%1.1f%%',startangle=90)

# 添加标题

ax.set_title('水果比例')

显示情节

plt.show()

此代码将创建一个饼图,标签为“Apples”、“Oranges”、“Bananas”和“Mangoes”,大小分别为 30、25、20 和 25。autopct 参数将百分比标签格式化为一位小数,startangle 参数设置第一个切片的起始角度。

以下是可与 pie() 函数一起使用的一些常用参数:

labels:表示每个切片标签的字符串列表。

sizes:代表每个切片大小的数值列表。

autopct:用于格式化百分比标签的字符串或函数。例如,'%1.1f%%' 会将标签格式化为小数点后一位,并带有百分号。

startangle:表示第一个切片起始角度的数值,以度为单位。

explode:一个数值列表,表示每个切片应该从中心分离多远。例如,[0, 0.1, 0, 0] 会将第二个切片与中心隔开 10% 的半径。

shadow:一个布尔值,指示是否在饼图下方绘制阴影。

颜色:用于填充每个切片的颜色列表。例如,['red', 'blue', 'green', 'yellow'] 将用红色填充第一个切片,用蓝色填充第二个切片,依此类推。

饼图对于可视化类别数量相对较少的类别数据很有用。但是,如果切片太多或切片的大小非常相似,则饼图可能会变得难以阅读。在这些情况下,其他类型的图表可能更合适。

直方图:

用于神经数据以了解数据的分布。它将数字数据分成箱(范围)

image.png

直方图是数值数据分布的图形表示。它由一组矩形组成,这些矩形的面积与落入特定范围的变量的计数(或频率)成正比。直方图通常用于可视化连续变量的分布。

在 Python 中,我们可以使用 Matplotlib 库中的 hist 函数来创建直方图。这是一个例子:

将 matplotlib.pyplot 导入为 plt

将熊猫导入为 pd

创建样本数据集

data = pd.DataFrame({'年龄': [25, 26, 27, 27, 28, 29, 30, 30, 31, 32, 32, 33, 34, 34, 34, 35, 36, 36, 37, 38]})

创建年龄变量的直方图

plt.hist(data['Age'], bins=5, color='green')

添加标题和标签

plt.title('年龄分布')

plt.xlabel('年龄')

plt.ylabel('频率')

显示情节

plt.show()

在此示例中,我们创建了一个年龄样本数据集,并使用 hist 函数创建了年龄变量的直方图。我们已指定 bin 的数量为 5,条形的颜色为绿色。我们还使用 title、xlabel 和 ylabel 函数向图中添加了标题和标签。最后,我们使用 show 函数显示了绘图。

hist 函数有几个参数可以用来自定义直方图:

bins:用于直方图的 bins 数

范围:指定要包含在直方图中的值范围的元组

density:如果为True,直方图将被归一化以形成概率密度

累积:如果为真,将创建累积直方图

颜色:直方图中条形的颜色

分布图:

它是概率密度函数,用于告诉直方图等数据分布,但它实际上告诉你一个数字的概率。

image.png

distplots 是 Python 中 Seaborn 库中的一个函数,用于绘制观察值的单变量分布。它以一个数组或一系列数据作为输入,并在其顶部绘制直方图和核密度估计 (KDE) 图。

这是使用 distplot 的示例

将 seaborn 导入为 sns

将 matplotlib.pyplot 导入为 plt

sns.distplot(df['Age'].dropna(), kde=False, bins=30)

plt.show():

可以与 distplot 一起使用的其他参数包括:

hist(默认值:True):如果为 True,则绘制数据的直方图。

kde(默认值:True):如果为 True,则绘制数据的核密度估计值。

地毯(默认值:False):如果为真,则在数据中的每个观察点绘制一个小的垂直刻度。

fit(默认值:None):如果提供,则将参数分布拟合到数据并绘制估计的密度曲线。

颜色:设置绘图的颜色。

label:设置绘图的标签。

箱形图:

箱形图是基于五个数字汇总的数值数据分布的图形表示:最小值、第一四分位数 (Q1)、中位数、第三四分位数 (Q3) 和最大值。它也被称为盒须图。

image.png

该框表示中间 50% 的数据,框的底部和顶部分别是第一四分位数 (Q1) 和第三四分位数 (Q3)。方框内的线代表中位数。胡须从方框延伸到四分位数间距 (IQR) 的 1.5 倍以内的最小和最大观察值。胡须外的任何数据点都被视为异常值,并绘制为单独的点。

要使用 Python 的 matplotlib 库创建箱线图,我们可以使用 boxplot() 函数。以下参数可用于自定义绘图:

x(必需):要绘制的数据。

vert:如果为 True(默认),则框是垂直的。如果为 False,则框是水平的。

patch_artist:如果为 True,框将使用填充颜色绘制。

labels:x 轴的刻度标签列表。

showfliers:如果为 True,异常值将被绘制为单个点。

下面是创建箱形图的示例代码:

将 matplotlib.pyplot 导入为 plt

要绘制的数据

数据 = [10、20、30、40、50、60、70、80、90、100]

创建箱线图

plt.boxplot(数据)

添加标题和标签

plt.title(“箱线图”)

plt.xlabel(“数据”)

plt.ylabel(“值”)

显示情节

plt.show()

这将创建一个具有默认设置的简单箱线图。

五数总结包括以下内容:

最小值:数据集中最小的观测值。

Q1:第一个四分位数或第 25 个百分位数,这是 25% 的数据低于该值的值。

中位数:数据集中的中间值,也称为第 50 个百分位数。

Q3:第三个四分位数或第 75 个百分位数,这是低于 75% 数据的值。

最大值:数据集中最大的观测值。

五数汇总可用于快速汇总数据分布并识别任何异常值。