大致了解

是一个用于缺失值填充的函数库。它用python写成,里面集成了一些基于机器学习,统计的缺失值填充的方法。部分模块需要scikit-lean的支持.

写这个函数库的初衷是我在做数据挖掘的过程中经常遇到一些缺失值,大部分场景下的缺失值都可以使用同一套缺失处理办法,最后决定写成一个函数库方便调用

目前实现的填充方法有:

各填充方式的实现原理请查看后面的详细API文档

  1. 简单填充(均值填充,补充0,选择变量最大值、最小值等填充方式)(sample)
  2. 基于随机森林的填充(IterForest)
  3. 多重插补MICE
  4. 基于期望最大化填充(EM)
  5. k近邻填充(KNN)

建议:不同场景下的数据缺失机制不同,这需要工程师基于对业务选择合适的填充方法。

1.完全随机缺失(MissingCompletelyatRandom)

某个变量是否缺失与它自身的值无关,也与其他任何变量的值无关。例如,由于测量设备出故障导致某些值缺失。

适用算法:简单填充,多重插补

2.随机缺失(MissingatRandom)

在控制了其他变量已观测到的值后,某个变量是否缺失与它自身的值无关。例如,人们是否透露收入可能与性别、教育程度、职业等因素有关系。

如果这些因素都观测到了,而且尽管收入缺失的比例在不同性别、教育程度、职业的人群之间有差异,但是在每一类人群内收入是否缺失与收入本身的值无关,那么收入就是随机缺失的。

适用算法:几乎都适用

3.非随机缺失(MissingNotatRandom)

即使控制了其他变量已观测到的值,某个变量是否缺失仍然与它自身的值有关。例如,在控制了性别、教育程度、职业等已观测因素之后,如果收入是否缺失还依赖于收入本身的值,那么收入就是非随机缺失的。

适用算法:多重插补,EM,knn

下面来看一下各填充方法在不同数据集上的表现吧:

数据集包含: IRIS数据集 WINE葡萄酒数据集 Boston房产数据集

这些是完整的数据,我将他们进行数据随机缺失处理后用于模型的实验及评估,大约有%10的数据是缺失的,每个特征都包含不同程度的数据缺失。

全部数据都为连续型数据,评价函数采用RMSE 即均方根误差,红线代表所有误差的平均值

可以看到的是,EM算法和MICE在各个数据集上都有不俗的表现。而Iterforest对于各变量之间相关性较大的数据集来说,表现最为优越。

results matching ""

    No results matching ""