python - 具有 nan 值的 Imputer.fit 有什么作用?

标签 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 用于填充缺失值,并且它使用一些策略,如均值、中值或众数。但是我不明白这3行代码是干什么的

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)

最佳答案

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

您可以访问访问我在每一列中保留的内容:imp.statistics_

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

关于python - 具有 nan 值的 Imputer.fit 有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52416187/

相关文章:

python - Python 中的 "lambda binding"是什么?

python - 截图【ctypes.windll CreateDCFromHandle】

python - 从 Keras 多类模型中获取混淆矩阵

python - eli5 show_prediction 仅显示特征权重而不显示示例预测

machine-learning - 为什么SAMME.R AdaBoost算法中的estimator_weight设置为1

python - 当需要一维数组时,传递了列向量 y

python - 使用 Python 的 telnetlib 进行非常缓慢的交互

python - sqlalchemy,如果它不存在则创建一个 sqlite 数据库

python - 将字符串字符串转换为数据框中的列表

python - Linkedin 401 错误通过 python