首页 > 解决方案 > scikit-learn.impute 没有使用机器学习 AZ 教程中的代码通过 Spyder 从 Imputer 导入

问题描述

我的代码无法正常工作,因为我从机器学习 AZ™ 中逐字复制了数据科学教程课程中的 Python 和 R 实践。我使用的是 Python 3.7,我已经在我的环境中安装了 scikit-learn 包。它不起作用,我试图寻找一个有 sklearn 的包,尽管它似乎没有找到任何东西。它给了我这个错误。
我正在通过 Anaconda 运行我的环境。

ImportError: cannot import name 'Imputer' from 'sklearn.preprocessing' (C:\Users\vygan\.conda\envs\env\lib\site-packages\sklearn\preprocessing\__init__.py)

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd



# Importing the dataset
dataset = pd.read_csv('Data.csv')
X = pd.DataFrame(dataset.iloc[:, :-1].values)
y = pd.DataFrame(dataset.iloc[:, 3].values)

# Taking care of missing data
from sklearn.preprocessing import Imputer
imputer = Imputer(missing_values = 'NaN', strategy = 'mean', axis = 0)
imputer = imputer.fit(X[:, 1:3])
X[:, 1:3] = imputer.transform(X[:, 1:3])

标签: machine-learningscikit-learnspyderpython-3.7

解决方案


它从预处理永久移动到估算库,你可以这样称呼它:

from sklearn.impute import SimpleImputer

完全一样。如果它不起作用,你应该用pip卸载它然后重新安装它可能是第一次安装不正确

它不再有轴,但您可以使用 pandas 数据框标头轻松处理它,如下所示:

si=SimpleImputer()
si.fit([dataset["headername"]])

有一个策略参数可让您在“mean”、“most_frequent”、“median”和“constant”之间进行选择

但还有另一个我更喜欢的 imputer:

from sklearn.impute import KNNImputer

这将用 k 个最近邻的平均值估算缺失值


推荐阅读