トレーニングセットとテストセットの分割
1369 ワード
前言
より良い訓練データとより良いテストモデルのために、一般的に機械学習をする前に訓練セットとテストセットの切り分けを行う.
train_test_split実装
実際には,まずデータの入力Xと出力ベクトルyを水平につなぎ合わせ,ランダムに分解することができるが,プロセスは面倒である.sklearnではshuffleはトレーニングセットではなく、トレーニングセットの長さサイズのランダムインデックスです.
ランダムインデックス値の生成
shuffle_indexes=np.random.permutation(len(X)) #X
shuffle_indexes
np.random.permutation(x)という関数はxと乱数を生成することができ,乱数の範囲は0〜xである.shuffle_indexes=np.random.permutation(3)
shuffle_indexes
array([2, 0, 1])
分割のスケールを設定するには
test_ratio=0.2
test_size=int(len(X) * test_ratio)
分割インデックスを求める
test_indexes=shuffle_indexes[:test_size]
train_indexes=shuffle_indexes[test_size:]
データの取得
X_train=X[train_indexes]
y_train=y[train_indexes]
X_test=X[test_indexes]
y_test=y[test_indexes]
sklearnでの分割
以前の知識があればsklearnにおける分割関数の各パラメータの意味をよりよく理解できる.
パッケージのインポート
from sklearn.model_selection import train_test_split
よびだし
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,
random_state=0)
パラメータの意味:X、データセットの入力y、データセットの出力test_sizeデフォルトパラメータ、このテストセットが占める割合.radom_stateデフォルトパラメータ、乱数シードは、一般的にデバッグするたびにカットが同じであれば、このシードに一定の値を与えればいいのです.
実際には,まずデータの入力Xと出力ベクトルyを水平につなぎ合わせ,ランダムに分解することができるが,プロセスは面倒である.sklearnではshuffleはトレーニングセットではなく、トレーニングセットの長さサイズのランダムインデックスです.
ランダムインデックス値の生成
shuffle_indexes=np.random.permutation(len(X)) #X
shuffle_indexes
np.random.permutation(x)という関数はxと乱数を生成することができ,乱数の範囲は0〜xである.
shuffle_indexes=np.random.permutation(3)
shuffle_indexes
array([2, 0, 1])
分割のスケールを設定するには
test_ratio=0.2
test_size=int(len(X) * test_ratio)
分割インデックスを求める
test_indexes=shuffle_indexes[:test_size]
train_indexes=shuffle_indexes[test_size:]
データの取得
X_train=X[train_indexes]
y_train=y[train_indexes]
X_test=X[test_indexes]
y_test=y[test_indexes]
sklearnでの分割
以前の知識があればsklearnにおける分割関数の各パラメータの意味をよりよく理解できる.
パッケージのインポート
from sklearn.model_selection import train_test_split
よびだし
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,
random_state=0)
パラメータの意味:X、データセットの入力y、データセットの出力test_sizeデフォルトパラメータ、このテストセットが占める割合.radom_stateデフォルトパラメータ、乱数シードは、一般的にデバッグするたびにカットが同じであれば、このシードに一定の値を与えればいいのです.
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,
random_state=0)