ValueErrorの解決
pythonの機械学習を勉強してる際に、参考にしていた書籍通りにプログラムした結果なぜかValueErrorが出てしまいました。
発生している問題・エラーメッセージ
ValueError Traceback (most recent call last) <ipython-input-11-7c71cb20fb7d> in <module> 16 # 学習する 17 clf = SVC() ---> 18 clf.fit(x_train, y_train) 19 20 # 評価する //anaconda3/lib/python3.7/site-packages/sklearn/svm/base.py in fit(self, X, y, sample_weight) 144 X, y = check_X_y(X, y, dtype=np.float64, 145 order='C', accept_sparse='csr', --> 146 accept_large_sparse=False) 147 y = self._validate_targets(y) 148 //anaconda3/lib/python3.7/site-packages/sklearn/utils/validation.py in check_X_y(X, y, accept_sparse, accept_large_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, multi_output, ensure_min_samples, ensure_min_features, y_numeric, warn_on_dtype, estimator) 717 ensure_min_features=ensure_min_features, 718 warn_on_dtype=warn_on_dtype, --> 719 estimator=estimator) 720 if multi_output: 721 y = check_array(y, 'csr', force_all_finite=True, ensure_2d=False, //anaconda3/lib/python3.7/site-packages/sklearn/utils/validation.py in check_array(array, accept_sparse, accept_large_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, warn_on_dtype, estimator) 540 if force_all_finite: 541 _assert_all_finite(array, --> 542 allow_nan=force_all_finite == 'allow-nan') 543 544 if ensure_min_samples > 0: //anaconda3/lib/python3.7/site-packages/sklearn/utils/validation.py in _assert_all_finite(X, allow_nan) 54 not allow_nan and not np.isfinite(X).all()): 55 type_err = 'infinity' if allow_nan else 'NaN, infinity' ---> 56 raise ValueError(msg_err.format(type_err, X.dtype)) 57 # for object dtype data, we only check for NaNs (GH-13254) 58 elif X.dtype == np.dtype('object') and not allow_nan: ValueError: Input contains NaN, infinity or a value too large for dtype('float64').
該当のソースコード
python
1import pandas as pd 2from sklearn.model_selection import train_test_split 3from sklearn.svm import SVC 4from sklearn.metrics import accuracy_score 5 6# アヤメデータの読み込み 7iris_data = pd.read_csv("iris.csv", encoding="utf-8") 8 9# アヤメデータとラベルと入力データに分離する 10y = iris_data.loc[:,"Name"] 11x = iris_data.loc[:,["SepalLength","SepalWidth","PatalLength","PatalWidth"]] 12 13# 学習用とテスト用に分離する 14x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.2, train_size = 0.8, shuffle = True) 15 16# 学習する 17clf = SVC() 18clf.fit(x_train, y_train) 19 20# 評価する 21y_pred = clf.predict(x_test) 22print("正解率 = " , accuracy_score(y_test, y_pred))
試したこと
書籍のソースコードと相違ないかチェックしましたが、相違点はありませんでした。
補足情報
以下の警告も出てきました。
書籍のソースコードを書き換えるべきなのでしょうか。
//anaconda3/lib/python3.7/site-packages/pandas/core/indexing.py:1494: FutureWarning: Passing list-likes to .loc or [] with any missing label will raise KeyError in the future, you can use .reindex() as an alternative. See the documentation here: https://pandas.pydata.org/pandas-docs/stable/indexing.html#deprecate-loc-reindex-listlike return self._getitem_tuple(key)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/03 02:14