sklearn库中找不到Imputer包问题
问题描述:
cannot import name ‘Imputer’ from 'sklearn.preprocessing’
问题原因:
sklearn库中不存在Imputer类
解决方法一:
0.22以上版本的sklearn去除了Imputer类,因此需要使用SimpleImputer类代替
库引用代码需改为:
from sklearn.impute import SimpleImputer
解决方法二:
将0.22版本的sklearn降低为0.19(此版本存在Imputer类)
SimpleImputer类参数:
sklearn.impute.SimpleImputer(
missing_values=nan,
strategy='mean',
fill_value=None,
verbose=0,
copy=True,
add_indicator=False
)[source]
misssing_values: number,string,np.nan(default) or None
缺失值的占位符,所有出现的占位符都将被计算
strategy: string,default=‘mean’
计算并替换的策略:
"mean,使用该列的平均值替换缺失值。仅用于数值数据;
“median”,使用该列的中位数替换缺失值。仅用于数值数据;
“most_frequent”,使用每个列中最常见的值替换缺失值。可用于非数值数据;
“constant”,用fill_value替换缺失值。可用于非数值数据。
fill_value: string or numerical value,default=None
当strategy为"constant",使用fil_value替换missing_values。如果是default,使用0替换数值数据,使用"missing_value"替换字符串或对象数据类型
verbose: integer,default=0
controls the verbosity of the imputer
copy: boolean,default=True
True: 将创建X的副本;False: 只要有可能,就会原地替换。注意,一下情况即使copy=False,也会创建新的副本:
1.X不是一个浮点值数组;
2.X编码为CSR矩阵;
3.add_indicator=True
add_indicator: boolean,default=False
3.add_indicator=True
add_indicator: boolean,default=False
True,则MissingIndicator将叠加到输入器转换的输出上。这样即使进行了imputation归算,也同样会让预测估算器描述缺失值。如果某个特征在fit/train时没有缺失值,那么即使在transform/tes时有缺失值,该特征也不会出现在缺失的指示器上。