我正在使用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)
?
答案 0 :(得分:1)
运行imp.fit
时,它会计算要替换各列中的值(在本例中为mean
)。
您可以使用imp.statistics_
运行imp.transform
时,它会用相应的值(NaN
中的值)完成imp.statistics_