Я использую версию sklearn 0.19.1
.Поэтому в коде есть ошибка, когда вы вызываете метод класса Imputer.fit
вместо метода экземпляра imputer.fit
, поскольку imputer
является экземпляром Imputer
в вашем коде.Также вы можете использовать fit_transform метод Imputer
для подгонки и преобразования данных за один раз, как это
import numpy as np
import matplotlib.pyplot as plt
from sklearn.preprocessing import Imputer
import pandas as pd
dataset = pd.read_csv('Data.csv')
X = dataset.iloc[:, :-1].values
Y = dataset.iloc[:, -1].values
# Taking care of missing data
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)
В качестве примечания, избегайте именования экземпляров класса с тем же именем, что и сам класс.Я не изменил имя в своем ответе, чтобы указать на ошибку в коде.