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分割交差検証を簡単に実装し、モデルの性能をより信頼性の高い方法で評価することができます。