Я работаю над проблемой машины Titanic от Kaggle - для начинающих.
Я пишу свой код на python, и тип модели - K-NN.
Я получаюошибка «Ввод содержит NaN, бесконечность или слишком большое значение для dtype ('float64')», однако я тщательно проверил свои данные.Здесь нет бесконечных значений, значений NaN и больших значений.Ошибка не возникает в моем обучающем наборе, а возникает в тестовом наборе - они не отличаются по значениям (очевидно, различаются по содержанию, но тип значения один и тот же).Вот мой код:
import numpy as np
import pandas as pd
test_dataset = pd.read_csv('test.csv')
X_classt = test_dataset.iloc[:, 1].values.reshape((1,-1))
X_faret = test_dataset.iloc[:,8].values.reshape((1,-1))
X_Stpt = test_dataset.iloc[:,3:7]
X_embarkedt = test_dataset.iloc[:,10].values.reshape((-1,1))
X_onet = np.concatenate((X_classt,X_faret))
X_onet = np.matrix.transpose(X_onet)
X_twot = np.concatenate((X_Stpt,X_embarkedt),axis=1)
Xt = np.concatenate((X_onet,X_twot),axis=1)
from sklearn.preprocessing import Imputer
imputer = Imputer(missing_values = 'NaN',strategy ='mean', axis = 0)
imputer = imputer.fit(Xt[:,3:5])
Xt[:,3:5] = imputer.transform(Xt[:,3:5])
Xt_one = np.array(Xt[:,0:2],dtype = np.float)
ColThreet = Xt[:,2]
Xt_two = np.array(Xt[:,3:6],dtype=np.float)
ColSevent = Xt[:,6]
from sklearn.preprocessing import LabelEncoder,OneHotEncoder
lett = LabelEncoder()
Xt[:,2] = lett.fit_transform(ColThreet)
lest = LabelEncoder()
Xt[:,6] = lest.fit_transform(Xt[:,6])
#This is where the error is thrown
ohct = OneHotEncoder(categorical_features=[6])
Xt = ohct.fit_transform(Xt).toarray()
Спасибо за любую помощь, которую вы можете предоставить.Я понимаю, что мое соглашение об именах является странным, но это потому, что я использовал в основном те же переменные, что и для своего обучающего кода, поэтому я добавил «t» в конце каждой переменной, чтобы «повторно использовать» имена для кода набора тестов..
Заранее спасибо.