Я пытаюсь создать простой алгоритм Knearestneighbor для знаменитого набора данных Титаника. Я продолжаю получать сообщение об ошибке в заголовке, несмотря на то, что мой фрейм данных не содержит значений NaN. Я в растерянности и буду признателен за помощь.
y = train_data["Survived"]
features = ["Fare", "Sex"]
X = train_data[features]
X.loc[:, 'Sex'] = X.loc[:, 'Sex'].apply(weigh_sex)
X = ct.fit_transform(X)
X_test = test_data[features]
X_test.loc[:, "Sex"] = X_test.loc[:, "Sex"].apply(weigh_sex)
X_test = ct.fit_transform(X_test)
print(np.where(np.isnan(X))) #returns nothing, even when put after clf.fit()
clf.fit(X, y)
predictions = clf.predict(X_test) #this line raises the error
output = pd.DataFrame({'PassengerId': test_data.PassengerId, 'Survived': predictions})
output.to_csv('submission1.csv', index=False)
ИЗМЕНИТЬ полную обратную трассировку
Traceback (most recent call last):
File "C:\pystuff\StatsSandbox\Titanic.py", line 65, in
predictions = clf.predict(X_test) #this line raises the error
File "C:\pystuff\learn\StatsSandbox\lib\site-packages\sklearn\neighbors\_classification.py", line 266, in predict
neigh_ind = self.kneighbors(X, return_distance=False)
File "C:\pystuff\learn\StatsSandbox\lib\site-packages\sklearn\neighbors\_base.py", line 804, in kneighbors
X = self._validate_data(X, accept_sparse="csr", reset=False, order="C")
File "C:\pystuff\learn\StatsSandbox\lib\site-packages\sklearn\base.py", line 605, in _validate_data
out = check_array(X, input_name="X", **check_params)
File "C:\pystuff\learn\StatsSandbox\lib\site-packages\sklearn\utils\validation.py", line 957, in check_array
_assert_all_finite(
File "C:\pystuff\learn\StatsSandbox\lib\site-packages\sklearn\utils\validation.py", line 122, in _assert_all_finite
_assert_all_finite_element_wise(
File "C:\pystuff\learn\StatsSandbox\lib\site-packages\sklearn\utils\validation.py", line 171, in _assert_all_finite_element_wise
raise ValueError(msg_err)
ValueError: Input X contains NaN.
Подробнее здесь: https://stackoverflow.com/questions/790 ... anx-return