处理缺失数据
2021-9-2
| 2023-8-6
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
Property
 

Pandas处理缺失数据

notion image

滤除缺失数据

处理缺失数据的最简单策略是删除包含缺失值的记录,Pandas提供了dropna()用于删除缺少数据的列或行:
 
 
 
 
 
 

填充缺失值

在替换缺失值时可以考虑许多选项:
  • 在域内具有意义的常量值
  • 另一个随机选择的记录中的值
  • 列的平均值、中值或众数
  • 由另一个预测模型估计的值
 
Pandas 提供了fillna(),用于用特定值替换缺失值
 
fillna函数参数:
notion image
notion image
 
 
 

SimpleImputer

scikit-learn 库提供了SimpleImputer 预处理类,可用于替换缺失值
看该特征是连续值还是离散值。如果是连续值,那么一般有两种选择,一是选择所有有该特征值的样本,然后取平均值,来填充缺失值,另一种是取中位数来填充缺失值。如果是离散值,则一般会选择所有有该特征值的样本中最频繁出现的类别值,来填充缺失值。
参数 含义:
  • missing_values:告诉SimpleImputer,数据中的缺失值长什么样,默认空值np.nan
  • strategy:填补缺失值的策略,默认均值。
    • “mean”,均值填补(仅对数值型特征可用)
    • “median",中值填补(仅对数值型特征可用)
    • "most_frequent”,众数填补(对数值型和字符型特征都可用)
    • “constant",参考参数“fill_value"中的值(对数值型和字符型特征都可用)
  • fill_value:当参数startegy为”constant"的时候可用,可输入字符串或数字表示要填充的值,常用0
  • copy:默认为True,将创建特征矩阵的副本,反之则会将缺失值填补到原本的特征矩阵中去
 
可以设计一个实验来测试每个统计策略,并通过比较平均值、中位数、众数(最频繁)和常数 (0) 策略来发现最适合该数据集的策略。然后可以比较每种方法的平均准确度。
notion image
 
 

k-最近邻插补

KNNImputer是一种数据转换,它首先根据用于估计缺失值的方法进行配置。
默认距离度量是欧几里得距离度量,它是NaN感知的,例如在计算训练数据集成员之间的距离时将不包括NaN 值。这是通过“ metric ”参数设置的。
邻居的数量默认设置为五个,可以通过“ n_neighbors ”参数进行配置。
距离度量可以与实例(行)之间的距离成比例地加权,尽管默认情况下将其设置为统一加权,通过“ weights ”参数控制。
 

迭代插补

迭代插补是指将每个特征建模为其他特征的函数的过程,例如预测缺失值的回归问题。每个特征按顺序进行插补,一个接一个,允许在预测后续特征时将先前的插补值用作模型的一部分。
它是迭代的,因为这个过程被重复多次,允许对缺失值的改进估计被计算为所有特征的缺失值被估计。
这种方法通常可以称为完全条件规范 (FCS) 或链式方程的多元插补 (MICE)
默认情况下,从缺失值最少的特征到缺失值最多的特征,按升序执行插补。
大量的迭代可能会开始使估计产生偏差或倾斜,首选少数迭代。过程的迭代次数可以通过“ max_iter ”参数指定
 
  • Scikit-Learn
  • 数据准备删除重复数据
    目录