- 私は形状が(4601,58)の数値行列を持っています。 私は行数に基づいて、ランダムに60%、20%、20%の分割ごとに行列を分割したい
- は、これは私がランダムに行を選択numpyの機能があります
- 必要機械学習のタスクのためにあるのですか?あなたが終わる繰り返し行を心配する必要はありませんので、交換せずに
Numpy:行列をn個の異なる行列にランダムに分割/選択する方法
import random population = range(4601) # Your number of rows choice = random.sample(population, k) # k being the number of samples you require
random.sample
サンプル:あなたがランダムに行を選択したい場合は、あなただけの標準Pythonライブラリからrandom.sample
を使用することができ
12
A
答えて
17
あなたは同じ最初の次元で一貫して、いくつかの配列x、y、zのをシャッフルしたい場合は、HYRYの答えにnumpy.random.shuffle
import numpy as np
N = 4601
data = np.arange(N*58).reshape(-1, 58)
np.random.shuffle(data)
a = data[:int(N*0.6)]
b = data[int(N*0.6):int(N*0.8)]
c = data[int(N*0.8):]
3
choice
にあります。 matrix
と呼ばれる配列があると、スライシングで行を選択することができます(matrix[choice]
など)。
もちろん、k
は、母集団内の全要素数に等しい場合があり、choice
には、行のインデックスのランダムな順序が含まれます。その後、必要ならばchoice
を分割することができます。
7
補数を使用することができます。x.shape[0] == y.shape[0] == z.shape[0] == n_samples
。
rng = np.random.RandomState(42) # reproducible results with a fixed seed
indices = np.arange(n_samples)
rng.shuffle(indices)
x_shuffled = x[indices]
y_shuffled = y[indices]
z_shuffled = z[indices]
をそしてHYRYの答えのように各シャッフル配列の分割を続行:
あなたは行うことができます。
1
あなたは機械学習のためにそれを必要とするので、ここで私が書いた方法である:
import numpy as np
def split_random(matrix, percent_train=70, percent_test=15):
"""
Splits matrix data into randomly ordered sets
grouped by provided percentages.
Usage:
rows = 100
columns = 2
matrix = np.random.rand(rows, columns)
training, testing, validation = \
split_random(matrix, percent_train=80, percent_test=10)
percent_validation 10
training (80, 2)
testing (10, 2)
validation (10, 2)
Returns:
- training_data: percentage_train e.g. 70%
- testing_data: percent_test e.g. 15%
- validation_data: reminder from 100% e.g. 15%
Created by Uki D. Lucas on Feb. 4, 2017
"""
percent_validation = 100 - percent_train - percent_test
if percent_validation < 0:
print("Make sure that the provided sum of " + \
"training and testing percentages is equal, " + \
"or less than 100%.")
percent_validation = 0
else:
print("percent_validation", percent_validation)
#print(matrix)
rows = matrix.shape[0]
np.random.shuffle(matrix)
end_training = int(rows*percent_train/100)
end_testing = end_training + int((rows * percent_test/100))
training = matrix[:end_training]
testing = matrix[end_training:end_testing]
validation = matrix[end_testing:]
return training, testing, validation
# TEST:
rows = 100
columns = 2
matrix = np.random.rand(rows, columns)
training, testing, validation = split_random(matrix, percent_train=80, percent_test=10)
print("training",training.shape)
print("testing",testing.shape)
print("validation",validation.shape)
print(split_random.__doc__)
- トレーニング(80、2)
- 検証(10、
- テスト(2 10) 2)
関連する問題
- 1. N個の部分行列をnumpyでNxN行列にコンパイルする
- 2. ランダムに選択numpy配列
- 3. クラスラベルにしたがってnumpyデータ配列の行を個別のnumpy配列で選択する方法は?
- 4. 2dのnumpyの配列からランダムに選択する方法
- 5. N個の配列をnumpyでランダムに混合する方法は?
- 6. 行列を小行列のブロックに分割する方法
- 7. はランダムにレコードを選択し、(ランダムに分割行)をグループ化する
- 8. 列の値を異なる行に分割する
- 9. Numpy:異なるインデックスを使って行を複数回選択する配列
- 10. csvファイルからn個のランダムな行を選択する最も速い方法は何ですか?
- 11. Numpy:一部の列に基づいてフル行を選択する方法
- 12. numpy配列で値をランダムに列方向に割り当てる方法
- 13. フレーズが異なる列にある行を選択する
- 14. 分割n個の単語の配列に文字列
- 15. numpyで(n)D配列から(n-1)D配列を選択
- 16. postgresからk個のランダムな行を選択するdjango ORM
- 17. 最初のn個の異なる要素(2つ以上の列)の行を選択
- 18. N個の非零要素を持つランダムなスパース行列を生成する
- 19. N個の次元の配列を複数の1D配列に分割する
- 20. numpyでn次元配列に行列を追加する
- 21. Spark DataFrame - ランダムなn行を選択する
- 22. 行列を等しい部分に分割する方法は?
- 23. 任意のN * M行列を部分行列の等しい部分に分割する
- 24. 値に応じて行の異なる列を選択
- 25. Pythonの行列から列配列を選択する方法
- 26. numpy配列内で文字列を分割する方法は?
- 27. numpy配列の選択を空の配列配列に追加する方法
- 28. numpy配列で特定の列を選択する方法は?
- 29. PIG:異なる行に分割配列要素
- 30. JPA2 i番目のエンティティ/行からn個のエンティティを選択する方法