使用Imputer的fit方法时出现缺少一个必需的位置参数’X’的错误

我在数据预处理阶段尝试解决缺失数据问题,并且一直严格按照Udemy教程进行操作。

这是我的数据集”Data.csv”

Country Age Salary  PurchasedFrance  44  72000   NoSpain   27  48000   YesGermany 30  54000   NoSpain   38  61000   NoGermany 40          YesFrance  35  58000   YesSpain       52000   NoFrance  48  79000   YesGermany 50  83000   NoFrance  37  67000   Yes 

这是完整的代码。

    # 数据预处理    # 导入库    import numpy as np    import matplotlib.pyplot as plt    import pandas as pd    dataset = pd.read_csv('Data.csv')    X = dataset.iloc[:, :-1].values    Y = dataset.iloc[:, -1].values    # 处理缺失数据    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])

上述代码在教程视频中运行得很好,但是当我运行上述代码时,我得到了以下错误:

**imputer = Imputer.fit(X[:, 1:3])Traceback (most recent call last):  File "<ipython-input-3-dddb27392326>", line 1, in <module>    imputer = Imputer.fit(X[:, 1:3])TypeError: fit() missing 1 required positional argument: 'X'**

我使用的规格如下:

操作系统:Win 8.1,教程使用的是MACIDE:Spyder 3.2.8Python 3.6

有人可以帮助我调试这个错误吗?


回答:

我使用的是sklearn版本0.19.1。所以你的代码中有一个错误,你调用了类方法Imputer.fit,而不是实例方法imputer.fit,因为imputerImputer的实例。另外,你可以使用Imputerfit_transform方法来一次性拟合和转换数据,像这样

import numpy as npimport matplotlib.pyplot as pltfrom sklearn.preprocessing import Imputerimport pandas as pddataset = pd.read_csv('Data.csv')X = dataset.iloc[:, :-1].valuesY = dataset.iloc[:, -1].values# 处理缺失数据imputer = Imputer(missing_values = "NaN", strategy = "mean", axis = 0)X[:, 1:3] = imputer.fit_transform(X[:, 1:3])

这会将数组X更改为

array([['France', 44.0, 72000.0],   ['Spain', 27.0, 48000.0],   ['Germany', 30.0, 54000.0],   ['Spain', 38.0, 61000.0],   ['Germany', 40.0, 63777.77777777778],   ['France', 35.0, 58000.0],   ['Spain', 38.77777777777778, 52000.0],   ['France', 48.0, 79000.0],   ['Germany', 50.0, 83000.0],   ['France', 37.0, 67000.0]], dtype=object)

作为旁注,避免将类实例命名为与类本身相同的名称。我在回答中没有更改名称,以指出代码中的错误。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注