機械学習 – k分割交差検証 (k-fold cross validation)

例えば 4-fold cross validation ではデータを4分割し、3/4 のデータを使い学習(モデル作成)を行い、残りの 1/4 でテストを行う。
そしてテストデータを入れ替えてこれを4回繰り返し行う。

サンプルコード:

from sklearn.datasets import load_breast_cancer           #サンプルデータ取得用
from sklearn.linear_model import LogisticRegression       #ロジスティック回帰用
from sklearn.model_selection import KFold                 #k分割交差検証用

# 分析対象データを取得
data = load_breast_cancer()
X = data.data
y = data.target

#シャッフルして4分割に設定
ss = KFold(n_splits=4, shuffle=True)

#4回ロジスティック回帰を実行して正答率を出力
lr = LogisticRegression()
for train_index, test_index in ss.split(X, y):
    X_train, X_test = X[train_index], X[test_index]
    y_train, y_test = y[train_index], y[test_index]
    lr.fit(X_train, y_train)
    print(lr.score(X_test, y_test))

出力結果:

0.972027972028
0.943661971831
0.957746478873
0.929577464789

 

シェアする

  • このエントリーをはてなブックマークに追加

フォローする