前提・実現したいこと
Python、ランダムフォレストで10分割の交差検証を行い、各fold(split)に1から10までの番号を振ります。
そして、各foldでtraingを行い、モデルを作成、モデルにはmodel_1からmodel_10まで番号を付けます。
external validationのために、別のデータをそれぞれのモデルに読み込ませ、結果を表示する。
ということを実現したいです。
発生している問題・エラーメッセージ
モデルに番号を振り、それぞれでtrainingを行う方法が分かりません。
該当のソースコード
python
1import numpy as np 2from sklearn.ensemble import RandomForestClassifier 3from sklearn.model_selection import StratifiedKFold 4 5data=np.loadtxt('file_name.csv',delimiter=',',skiprows=1,dtype=float) 6x=data[:, 0:1].ravel() 7y=data[:, 1:] 8forest=RandomForestClassifier(n_estimators=125,random_state=0) 9 10skf=StratifiedKFold(n_splits=10)
試したこと
コードについて、上記からの記載方法が分かりません。
forループで作成すると考え、enumerateなどを使用してトライしてみましたが、うまく行きませんでした。
for i ,(train,test) in enumerate(skf.split(x,y)): forest.fit(x[train],y[train])
上記のような形を考えましたが、どのようにmodel_1, model_2と名前を振って、それらにexternal validationのためのデータを読み込ませるのか、分かりませんでした。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/03 04:50