Scikit Learn - ikymrkw/pydepot GitHub Wiki
前処理
... scaling
層化分割
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 を使うとより便利。