🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

5273閲覧

機械学習の不明のValueError

Gorilland

総合スコア8

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/10/03 01:53

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)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ValueError: Input contains NaN, infinity or a value too large for dtype('float64').

とあります。
NaN=Not A Numericです。数値でなければいけないところに不正な値が入っていると言うことです。
用意したデータの前処理で、弾くか、ゼロ埋めするか、平均値で埋めるなど計算できる状態にする必要があります。

投稿2019/10/03 01:59

nandymak

総合スコア799

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Gorilland

2019/10/03 02:14

解決できましたありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問