Scikit Learn - ikymrkw/pydepot GitHub Wiki

前処理

... scaling

層化分割

StratifiedShuffleSplit を使う。

import numpy as np
from sklearn.model_selection import StratifiedShuffleSplit
...
sss = StratifiedShuffleSplit(n_splits=5, test_size=0.5, random_state=0)
for (train_index, test_index) in sss.split(X, y):
    X_train, X_test = X[train_index], X[test_index]
    y_train, y_test = y[train_index], y{test_index]
    ...
  • n_splits は分割する回数。デフォルト 10。
  • test_size はテストデータの割合。デフォルト 0.1。
  • random_state は乱数を制御するシード(またはRandomStateインスタンス)。デフォルト None(新規乱数)。

sss.split(...) の戻り値は generator なので、イテレータ文脈(for x in ..., list(...), リスト内包表記など)で使うか、__next__() を明示的に呼んでやる必要がある。

層化分割 k-fold CV は StratifiedKFold を使うとより便利。