- Tôi có ma trận dạng khối với hình dạng (4601, 58).
- Tôi muốn chia ma trận ngẫu nhiên theo 60%, 20%, 20% chia dựa trên số hàng
- này là dành cho nhiệm vụ Machine Learning Tôi cần
- Có một chức năng NumPy rằng lựa chọn một cách ngẫu nhiên hàng?
Trả lời
bạn có thể sử dụng 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):]
Nếu bạn muốn chọn một cách ngẫu nhiên hàng, bạn chỉ có thể sử dụng random.sample
từ các tiêu chuẩn thư viện Python:
import random
population = range(4601) # Your number of rows
choice = random.sample(population, k) # k being the number of samples you require
random.sample
mẫu mà không cần thay thế, do đó bạn không cần phải lo lắng về hàng lặp lại kết thúc trong choice
. Với một mảng được gọi là matrix
, bạn có thể chọn các hàng bằng cách cắt, như sau: matrix[choice]
.
Tất nhiên, k
có thể bằng tổng số phần tử trong tập hợp, và sau đó choice
sẽ chứa thứ tự ngẫu nhiên của các chỉ mục cho các hàng của bạn. Sau đó, bạn có thể phân vùng choice
như bạn vui lòng, nếu đó là tất cả những gì bạn cần.
Một bổ sung cho câu trả lời HYRY nếu bạn muốn xáo trộn liên tục nhiều mảng x, y, z với cùng một chiều đầu tiên: x.shape[0] == y.shape[0] == z.shape[0] == n_samples
.
Bạn có thể làm:
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]
Và sau đó tiến hành với sự chia rẽ của mỗi mảng xáo trộn như trong câu trả lời của HYRY.
Vì bạn cần nó cho máy học, đây là một phương pháp tôi đã viết:
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__)
- đào tạo (80, 2)
- thử nghiệm (10, 2)
- xác nhận (10, 2)
- 1. Ma trận Numpy thành mảng
- 2. Tạo ma trận đối xứng trong Numpy
- 3. Định hình lại ma trận 3d thành ma trận 2d
- 4. Nhân một số ma trận trong numpy
- 5. Extracting cột n đầu tiên của một ma trận NumPy
- 6. Ma trận của Ma trận trong Perl
- 7. NumPy ma trận thủ đoạn gian trá - tổng của ma trận nghịch đảo lần
- 8. Ma trận hoán vị ngẫu nhiên
- 9. ma trận Trồng theo cột trong NumPy
- 10. Ma trận đối xứng 'thông minh' Numpy
- 11. ma trận cơ bản khác nhau từ các ma trận chiếu cùng
- 12. SVG ma trận phân hủy
- 13. Ma trận biến đổi ma trận bù đắp
- 14. Phân chia và Chinh phục Ma trận Nhân
- 15. ma trận dịch ma trận không dịch vector
- 16. Chuyển đổi vectơ thành ma trận logic?
- 17. chuyển đổi giữa ma trận OpenCV và ma trận int
- 18. Nhân mỗi cột của ma trận bằng một ma trận khác
- 19. Tăng tốc độ tính toán ma trận ngẫu nhiên
- 20. Sắp xếp ma trận 2D nhị phân?
- 21. Ma trận chiếu ma trận trong Xna/OpenGL - 3D
- 22. nrow (ma trận) chức năng
- 23. Python: Thiết lập một phần tử của ma trận Numpy
- 24. Làm thế nào để chuyển đổi ma trận xoay 3x3 thành ma trận 4x4?
- 25. Làm thế nào để tách một ma trận thành 4 khối bằng cách sử dụng numpy?
- 26. Ma trận kết hợp?
- 27. Lựa chọn ngẫu nhiên các cột ma trận
- 28. Các ma trận rất lớn sử dụng Python và NumPy
- 29. Sắp xếp một ma trận dựa trên một ma trận khác
- 30. Matlab 3D xem ma trận