Numpy適用データセットの分割
1953 ワード
データセット分割
データ平均が標準化されると、通常、マシン学習では、データセットを3つのセットに分割します.
このセクションでは、
X_norm
をトレーニングセット、クロス検証セット、およびテストセットに分離する.各データセットには、同じ行を繰り返し選択できないことを確認するために、ランダムに選択されたX_norm
行が含まれます.これにより、すべてのX_norm
行が選択され、3つの新しいデータセットにランダムに分布することが保証される.まず、ランダムに配列された
X_norm
行のインデックスを含むランク1のndarrayを作成する必要があります.このため、np.random.permutation()
関数を使用することができる.np.random.permutation(N)
関数は、0からN - 1
までのランダムな配列の整数セットを作成します.例を見てみましょう.# We create a random permutation of integers 0 to 4
np.random.permutation(5)
array([1, 2, 0, 3, 4])
ランダムに配列された
X_norm
行のインデックスを含むランク1のndarrayを作成します.1行のコードでできます.shape
属性を使用してX_norm
の行数を抽出し、np.random.permutation()
関数に渡します.なお、shape
属性は、(rows,columns)
というフォーマットの2つの数字を含むメタグループを返す.# Create a rank 1 ndarray that contains a random permutation of the row indices of `X_norm`
row_indices = np.random.permutation(X_norm.shape[0])
row_indices
ndarrayを使用して3つのデータセットを作成し、各データセットに入る行を選択できます.# Make any necessary calculations.
# You can save your calculations into variables to use later.
int((row_indices.shape[0])*0.6)
# Create a Training Set
X_train = X_norm[row_indices[0:600],:]
# Create a Cross Validation Set
X_crossVal = X_norm[row_indices[600:800],:]
# Create a Test Set
X_test = X_norm[row_indices[800:1000],:]
上記の計算手順が正しく完了した場合、
X_tain
は600行と20列、X_crossVal
は200行と20列、X_test
は200行と20列であるべきである.次のコードを入力して検証できます.# Print the shape of X_train
print(X_train.shape)
# Print the shape of X_crossVal
print(X_crossVal.shape)
# Print the shape of X_test
print(X_test.shape)
(600, 20) (200, 20) (200, 20)