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

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

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

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

Q&A

解決済

1回答

822閲覧

機械学習 estimator.predict(test_data)が更新されません

moon_light

総合スコア23

Python

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

0グッド

0クリップ

投稿2019/01/09 11:24

編集2019/01/09 19:30

前提・実現したいこと

二値分類を二回行い3クラスに分類するロジスティック回帰についてです。デバックした結果predicted_label1 = pipe_lr1.predict(test_data)とpredicted_label2 = pipe_lr2.predict(test_data)の部分がループのたびに更新されていませんでした。なにが間違えているのでしょうか?

発生している問題・エラーメッセージ

エラーはありません

該当のソースコード

#LOO交差検定によるグリッドサーチでのハイパーパラメータの探索 param_range_lr_c1=[10**i for i in range(-5,6)] param_range_kpca_gamma1=[10**i for i in range(-5,6)] param_range_lr_c2=[10**i for i in range(-5,6)] param_range_kpca_gamma2=[10**i for i in range(-5,6)] entire_count1=len(targets1) entire_count2=len(targets2) predicted_labels1=[] predicted_labels2=[] best_score=0 for lr_c1 in param_range_lr_c1: for kpca_gamma1 in param_range_kpca_gamma1: for lr_c2 in param_range_lr_c2: for kpca_gamma2 in param_range_kpca_gamma2: sckit_kpca1=KPCA(n_components=None,kernel='rbf',gamma=kpca_gamma1) sckit_kpca2=KPCA(n_components=None,kernel='rbf',gamma=kpca_gamma2) correct_answer_count=0 for test_index in range(entire_count1): test_index=np.array([test_index]) train_array1=np.array([range(entire_count1)]) train_index1=np.delete(train_array1,test_index) train_data1=np.delete(features1,test_index,0) test_data=features1[test_index] targets_train1=np.delete(targets1,test_index,0) targets_test1=targets1[test_index] pipe_lr1=make_pipeline(StandardScaler(),\ sckit_kpca1,\ LogisticRegression(penalty="l2",\ C=lr_c1,\ random_state=1,\ )) pipe_lr1.fit(train_data1,targets_train1) predicted_label1 = pipe_lr1.predict(test_data)#この部分が更新されません predicted_labels1.append(predicted_label1) if predicted_label1==targets_test1: #正解 if predicted_label1==0: #その他をその他 train_array2=np.array([range(entire_count2)]) train_index2=np.delete(train_array2,test_index) train_data2=np.delete(features2,test_index,0) test_data=features2[test_index] targets_train2=np.delete(targets2,test_index,0) targets_test2=targets2[test_index] pipe_lr2=make_pipeline(StandardScaler(),\ sckit_kpca2,\ LogisticRegression(penalty="l2",\ C=lr_c2,\ random_state=1,\ )) pipe_lr2.fit(train_data2,targets_train2) predicted_label2 = pipe_lr2.predict(test_data)#この部分が更新されません predicted_labels2.append(predicted_label2) if predicted_label2==targets_test2: correct_answer_count+=1 if targets_test2==1: #健常を健常で正解 pass else: #うつをうつで正解 pass else: if targets_test2==0:#うつを健常のミス pass else: #健常をうつのミス pass else: #不安を不安 correct_answer_count+=1 else: if targets_test1==0:#不安をその他のミス pass else: #その他を不安のミス pass test_score=float(correct_answer_count)/float(entire_count1) if test_score > best_score: best_score=test_score best_params={"kpca_gamma1":kpca_gamma1,"lr_c1":lr_c1,"kpca_gamma2":kpca_gamma2,"lr_c2":lr_c2} print(best_score) print(best_params)

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

自己解決

見直してから出直します。

投稿2019/01/10 02:51

moon_light

総合スコア23

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問