AI程序员首页投稿(暂停使用,暂停投稿)

机器学习实战-数据探索(缺失值处理)

2017-09-10  本文已影响2130人  jacksu在简书

接着上一篇:《机器学习实战-数据探索》介绍,机器学习更多内容可以关注github项目:machine learning
《机器学习实战-数据探索》介绍了1、变量识别;2、单变量分析;3、双变量分析,现在接着介绍缺失值处理。

为什么需要处理缺失值呢?

训练数据集中缺少的数据可以减少模型的拟合,或者可能导致模型偏差,因为没有正确地分析变量的行为和关系,可能导致错误的预测或分类。


Data_Exploration_2_11.png

注意上图中缺失值:在左侧的情况下,没有处理缺失值, 男性打板球的机会高于女性。 另一方面,如果看看第二个表,其中显示了处理缺失值后的数据(基于性别),我们可以看到女性与男性相比有较高的打板球的机会。

为什么会有缺失值呢?

前面说明了在数据集中处理缺失值的重要性, 现在来确定发生这些缺失值的原因,主要有以下两个阶段:

数据提取(Data Extraction)

提取过程可能有问题,在这种情况下,应该使用数据监护检查数据的准确性, 一些散列程序也可以用来确保数据提取的正确性,比较容易纠正(数据提取主要在NLP或者图像邻域,我现在理解不到位,后面补充)。

数据采集(Data collection)

数据采集时发生的错误,很难纠正,主要分为以下四种:

缺失值有哪些处理方法呢?

删除

Data_Exploration_Missing_value

Mean/ Mode/ Median估计

目标是使用可以在数据集的有效值中识别的已知关系来辅助估计缺失值。 Mean/Mode/Median是最常用的方法之一,包括通过该变量的所有已知值的mean或Median(定量属性)或Mode(定性属性)来替换给定属性的缺失数据,有以下两种方式:

预测模型(Prediction Model)

预测模型是处理缺失值的复杂方法之一, 通过创建一个预测模型来估计替代缺失值。 在这种情况下,我们将数据集分为两组:一组没有变量的缺失值,另一组有缺少值, 第一个数据集成为模型的训练数据集,而具有缺失值的第二个数据集是测试数据集,变量与缺失值被视为目标变量。 接下来,我们创建一个模型,根据训练数据集的其他属性预测目标变量,并填充测试数据集的缺失值。我们可以使用回归,方差分析,逻辑回归和各种建模技术来执行此操作。 这种方法有两个缺点:

如果missing value所占比例不算小也不算大时,采用该方法。

KNN

此方法使用与值丢失的属性最相似的属性来估计属性的缺失值,通过距离函数确定两个属性的相似度。 具有如下优点和缺点:
优点:

KNN可以预测定性和定量属性
不需要为缺少数据的每个属性创建预测模型
具有多个缺失值的属性可以轻松处理
数据的相关结构被考虑在内

缺点:

KNN算法在分析大数据方面非常耗时, 搜索所有数据集,寻找最相似的实例。
k值的选择是非常关键的。 k较高脱显不了显著性属性,而较低的k会丢失重要属性。

注意: 如果missing value所占比例大,那么直接将miss value当做一种特殊的情况,另取一个值填入

处理缺失值后,下一篇介绍异常值处理。

参考

https://www.analyticsvidhya.com/blog/2016/01/guide-data-exploration/

上一篇下一篇

猜你喜欢

热点阅读