質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python

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

Q&A

解決済

1回答

862閲覧

cross validationによる学習時、エラーが出てしまう。

Tera0724

総合スコア18

Python

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

0グッド

0クリップ

投稿2020/01/10 05:10

現在、クロスバリデーションのよる学習方法について勉強しています。
作成したコードの学習部分が以下の通りです。

python

1for dataset in train_list: 2 X = dataset[[col for col in dataset.columns if col not in ['TARGET']]] 3 y = dataset.TARGET 4 5 X = StandardScaler().fit_transform(X) 6 7 folds = StratifiedKFold(n_splits= 5, shuffle=False) 8 9 for n_fold, (train_idx, test_idx) in enumerate(folds.split(X, y)): 10 print('{0}fold'.format(n_fold)) 11 print('TRAIN', train_idx) 12 print('VALID', test_idx) 13 print(X[train_idx].shape) 14 #print(X.iloc[train_idx].shape) #dfはindex指定で読み込むときilocを使う 15 logreg = LogisticRegression() 16 model = logreg.fit(X[train_idx], y[train_idx]) 17 model_list.append(model) 18 pred = logreg.predict_proba(X)[: , 1] 19 fpr, tpr, thresholds = roc_curve(y[test_idx], pred) 20 auc_score = roc_auc_score(y[test_idx], pred) 21 print('auc_score: ' , auc_score) 22 print() 23 pred_class = logreg.predict(X[test_idx]) 24 classes = [1, 0] 25 cm = confusion_matrix(y, pred_class, labels=classes) 26 print(cm) 27 print() 28コード

予めデータセットをいくつかに分け、それをtrain_listに保存しいます。
上記コードを実行したところ以下のようなエラーが発生してしまいます。
error: Input contains NaN, infinity or a value too large for dtype('float64').

データセット内にnull値がないことは確認し、また、同じデータセットリストを使ってtrain_test_splitによりtrainデータとtestデータに分け学習させた場合はうまく学習させることができました。
エラーの対処法について教えていただけると助かります。よろしくお願いします。

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

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

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

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

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

hayataka2049

2020/01/10 05:32

エラーメッセージの全体、コードの全体、再現できるデータをご提示いただけると回答しやすいです。
Tera0724

2020/01/10 07:07

助言ありがとうございます。 コードを確認してみたら、各データセットのインデックスがバラバラでした。インデックスをresetしたところうまく動くようになりました。
guest

回答1

0

自己解決

各データセットのインデックスを揃えたところ、しっかり動くことがわかった。

投稿2020/01/10 07:08

Tera0724

総合スコア18

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問