不同缺失值(missing)填充(imputation)方法回归模型(Regressor)效果对比

Posted Data+Science+Insight

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不同缺失值(missing)填充(imputation)方法回归模型(Regressor)效果对比相关的知识,希望对你有一定的参考价值。

不同缺失值(missing)填充(imputation)方法回归模型(Regressor)效果对比

See the source image

缺失值可以使用0,均值、中位数、众数、KNN、回归、插值等多种方法进行填充;

sklearn中提供了SimpleImputer、Imputer、KNNImputer等方法;

在如下的实践中主要对比下面几种填充方法及对应的相同回归模型的效果(此处使用随机森林回归)

  • 填充常数0;
  • 使用均值进行填充并添加一个标识列进行信息的补充(标识列的数值为0,1,其中0为不缺失,1为有缺失);
  • 使用KNNimputer利用KNN回归进行缺失值的填充;
  • 使用迭代填充(实际就是把有缺失的列当做目标,其他特征列作为特征来预测确实值);

这里将会使用两个数据集进行分析和比对,一个是糖尿病数据集,一个是加利福尼亚州的房价数据集;

其中,糖尿病数据集包含10个特征,使用10个特征来预测患者糖尿病的情况;而加利福尼亚房价数据集使用房屋的一些特征来预测房屋的价值;

不过这两个数据集的作者或者采样者采样的数据质量比较高,没有任何缺失值,不过没有关系,我们可以人为加入缺失值(把原来好的数据的其中一部分给抹去),这样我们就获得了新的数据集;

之后,我们使用随机森林回归器(

以上是关于不同缺失值(missing)填充(imputation)方法回归模型(Regressor)效果对比的主要内容,如果未能解决你的问题,请参考以下文章

R语言进行缺失值填充(Filling in missing values):使用R原生方法data.tabledplyr等方案

R语言里填充(impute)缺失值(missing values)的几个简单小例子

pandas使用fillna函数将dataframe中的缺失值按照列均值进行填充(fill missing values with the mean of the column)

pandas使用fillna函数并设置fffill参数使用列中的前序值填充缺失值(replace missing values with preceding values in column in d

使用 match_recognize 填充“缺失”值

pandas使用interpolate函数并设置method参数使用不同的插值算法对缺失值进行填充