具有Nan值的Imputer.fit有什么作用?

时间:2018-09-20 01:22:48

标签: python scikit-learn

我正在使用scikit-learn库进行机器学习,当我看到Scikit-learn tutorial的代码时,我感到很困惑

它具有以下代码:

import numpy as np
from sklearn.impute import SimpleImputer
imp = SimpleImputer(missing_values=np.nan, strategy='mean')
imp.fit([[1, 2], [np.nan, 3], [7, 6]])       

X = [[np.nan, 2], [6, np.nan], [7, 6]]
print(imp.transform(X)) 

据我了解,imputer用于填写缺失值,并且它使用了诸如均值,中位数或众数之类的策略。但是我不明白这三行代码在做什么

imp.fit([[1, 2], [np.nan, 3], [7, 6]])       
X = [[np.nan, 2], [6, np.nan], [7, 6]]
print(imp.transform(X)) 

为什么它适合np.nan的矩阵?以及这些拟合如何影响imp.transform(X)

1 个答案:

答案 0 :(得分:1)

运行imp.fit时,它会计算要替换各列中的值(在本例中为mean)。

您可以使用imp.statistics_

访问我在每一列中保留的内容。

运行imp.transform时,它会用相应的值(NaN中的值)完成imp.statistics_