PythonでのK分割交差検証の実装方法


PythonでK分割交差検証を実装するためには、scikit-learnライブラリを使用すると便利です。以下に、シンプルで簡単な方法とコード例を示します。

まず、scikit-learnライブラリをインストールします(必要に応じて):

pip install scikit-learn

次に、以下のコードを使用してK分割交差検証を実装します:

from sklearn.model_selection import KFold
from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression
# データの準備(例として、make_classificationを使用してランダムなデータを生成します)
X, y = make_classification(n_samples=1000, n_features=10, random_state=42)
# K分割交差検証の設定(K=5とします)
k = 5
kf = KFold(n_splits=k, random_state=42)
# モデルの定義(例として、ロジスティック回帰を使用します)
model = LogisticRegression()
# K分割交差検証の実行
for train_index, test_index in kf.split(X):
    X_train, X_test = X[train_index], X[test_index]
    y_train, y_test = y[train_index], y[test_index]

    # モデルのトレーニングおよびテスト
    model.fit(X_train, y_train)
    score = model.score(X_test, y_test)

    # 結果の表示
    print("テストスコア:", score)
# 最終的な評価の計算
average_score = sum(scores) / k
print("平均スコア:", average_score)

このコード例では、make_classification関数を使用して1000個のサンプルと10個の特徴量を持つランダムなデータセットを生成し、ロジスティック回帰モデルを使用して分類タスクを行っています。KFoldクラスを使用してK分割交差検証を設定し、splitメソッドを使用してデータセットをK個のサブセットに分割します。

それぞれの実験では、トレーニングデータとテストデータを適切に分割し、モデルをトレーニングしてテストスコアを計算します。最終的な評価は、K回の実験のスコアの平均値として計算されます。

この方法を使用することで、K分割交差検証を簡単に実装し、モデルの性能をより信頼性の高い方法で評価することができます。