sklearn imputer填充方法总结

Scikit-Learn 提供了一个方便函数处理缺失值: Imputer 。
下面是其使用方法:
首先,需要 创建一个 Imputer 实例,指定用某属性的中位数来替换该属性所有的缺失值:

from sklearn.preprocessing import Imputer 
imputer = Imputer(strategy="median")
imputer.fit(df)

imputer 计算出了每个属性的中位数,并将结果保存在了实例变量 statistics_ 中。虽然此时 只有属性 total_bedrooms 存在缺失值,但我们不能确定在以后的新的数据中会不会有其他属性也存在缺失值,所以安全的做法是将 imputer 应用到每个数值:

>>> imputer.statistics_ 
array([ -118.51 , 34.26 , 29. , 2119. , 433. , 1164. , 408. , 3.5414])
>>> housing_num.median().values 
array([ -118.51 , 34.26 , 29. , 2119. , 433. , 1164. , 408. , 3.5414])

现在就可以用imputer来对训练集转换,将缺失值替换为中位数;

X = imputer.transform(housing_num)

结果是一个包含转换后特征的普通的 Numpy 数组。如果你想将其放回到Pandas DataFrame 中,也很简单:

housing_tr = pd.DataFrame(X, columns=housing_num.columns)

猜你喜欢

转载自blog.csdn.net/lisenby/article/details/107982395