爱数科(iDataScience)平台是一款数据科学科研和教学一体化平台,集成数十行业数千数据集、科研案例模板。帮助科研人员快速使用大数据和人工智能技术开展研究。支持高校开展大数据通识课程教学。帮助非专业人员进行数据分析和生成数据分析报告。使用拖拽式工具在线运行本案例请登录 www.idatascience.cn
本案例使用一份包含30000个样本的美国高中生社交网络信息数据集,进行了缺失值和异常值处理,并对连续变量进行标准化、离散化,对非数值离散变量进行编码。
1. 读数据表
首先,我们读取原始数据,并查看各字段基本情况。
2. 年龄缺失值填补
缺失值(missing value)是指现有数据集中某个或某些属性的值是不完全的。由于大部分机器学习模型无法处理缺失值,在数据建模前需要填补或者剔除缺失值。对于连续变量age,我们使用该列的均值进行填充,结果如下表所示。
3. 性别缺失值填补
对于离散变量gender,我们使用“未知”进行填充,结果如下表所示。
4. 异常值处理前箱线图
我们进一步用箱线图查看friends列是否存在异常值。箱线图中,小于Q_1-1.5\times IQRQ1−1.5×IQR或大于Q_3+1.5\times IQRQ3+1.5×IQR的数据点被视为异常值。
上图中绿色的数据点即为异常值,可以看到大于100左右即为异常值。
5. 异常值处理前直方图
异常值(outlier),也称为极端值,是数据集中某些数值明显偏离其余数据点的样本点。因为线性回归模型等机器学习模型对异常值较为敏感,对异常值进行处理有利于提高建模的鲁棒性。
接下来,我们用直方图查看friends列数据分布情况。
由图可知,friends变量整体呈右偏,可能存在异常值。
6. 异常值处理
通过数据筛选组件,我们可以剔除掉大于Q_3+1.5\times IQRQ3+1.5×IQR的数据点,结果如下表所示。
7. 异常值处理后箱线图
剔除异常数据后,我们通过箱线图和直方图查看friends列的数据分布情况。
从上图来看,与异常值处理前相比,friends列中数据的异常值大大减少了,实验误差也会减少很多。
8. 异常值处理后直方图
9. Z-Score标准化
数据标准化指的是将数据按比例缩放的预处理操作。当我们希望消除量纲的影响、帮助模型收敛、适应模型假设时,就可能需要进行数据标准化。
在本案例中,我们将介绍比较常用的Z-Score标准化和MinMax标准化。下面我们对数据集中friends列做Z-Score标准化,使得处理后的数据均值为0,标准差为1。
10. MinMax标准化
下面我们对数据集中friends列做Min-Max标准化,使得处理后的数据取值分布在[0,1][0,1]区间上。
11. 数字编码
一般而言,我们需要将数据集中的非数值变量编码为数值才能用于模型训练。本案例将介绍两种常用的编码方法:数字编码与OneHot编码。我们先对数据集中的gender列进行数字编码。
通过数字编码,gender的三个取值被分别编码为0、1、2。
12. OneHot编码
下面我们对数据集中的gender列进行OneHot编码。
13. 等距离散化
在一些数据建模情景下,我们可能需要将连续变量转化为离散变量,即进行离散化处理。常见的离散化方法包括等距离散化和等频离散化。
我们先对friends列进行等距离散化处理,通过这种方法离散化处理后每个区间宽度相同。
可以看到friends列中数据被等距分为4组,取值分别为0、1、2、3。
14. 等频离散化
然后我们对friends列进行等频离散化处理,通过这种方法离散化处理后落在每个区间内的数据点数量相同。
可以看到friends列中数据被等频分为4组,取值分别为0、1、2、3。