Hướng dẫn random choice weighted python - lựa chọn ngẫu nhiên trăn có trọng số
Kể từ Python Show
Vài cảnh báo: 1) Nó sử dụng lấy mẫu có trọng số với sự thay thế để các mục được rút ra sau đó sẽ được thay thế. Các giá trị trong chuỗi trọng số trong chính nó không quan trọng, nhưng tỷ lệ tương đối của chúng thì có. Không giống như 5 chỉ có thể đảm nhận xác suất là trọng số và cũng phải đảm bảo tổng kết xác suất riêng lẻ lên tới 1 tiêu chí, không có quy định nào như vậy ở đây. Miễn là chúng thuộc loại số ( 6 ngoại trừ loại 7), chúng vẫn sẽ thực hiện.
2) Nếu không có trọng số và cum_ weights được chỉ định, các lựa chọn được thực hiện với xác suất bằng nhau. Nếu một chuỗi trọng số được cung cấp, nó phải có cùng chiều dài với trình tự dân số. Chỉ định cả trọng lượng và cum_ weights tăng 8.
3) Cum_ weights thường là kết quả của hàm 9 thực sự tiện dụng trong các tình huống như vậy.
Vì vậy, hoặc cung cấp [200, 300, 300, 300, 400]0 hoặc [200, 300, 300, 300, 400]1 cho trường hợp giả định của chúng tôi tạo ra kết quả tương tự và sau này dường như nhanh hơn / hiệu quả hơn. Sử dụng phương thức numpy.random.choice ()
Danh sách: Đây là danh sách ban đầu từ bạn có các số ngẫu nhiên chọn.K: Đó là kích thước của danh sách trở lại. tức là, số lượng các yếu tố bạn muốn chọn.choices() method returns multiple random elements from the list with replacement. You can weigh the possibility of each result with the weights parameter or the cum_weights parameter.
Python Python3[200, 300, 300, 300, 400]2 [200, 300, 300, 300, 400]3 [200, 300, 300, 300, 400]4 [200, 300, 300, 300, 400]5 [200, 300, 300, 300, 400]6 [200, 300, 300, 300, 400]7 [200, 300, 300, 300, 400]8 [200, 300, 300, 300, 400]9 [200, 300, 300, 300, 400]8 let the relative weight of 5 elements are [5,10,20,30,35] than there cum_weight will be [5,15,35,65,100]1 [200, 300, 300, 300, 400]8 let the relative weight of 5 elements are [5,10,20,30,35] than there cum_weight will be [5,15,35,65,100]3 [200, 300, 300, 300, 400]8 let the relative weight of 5 elements are [5,10,20,30,35] than there cum_weight will be [5,15,35,65,100]5____36 let the relative weight of 5 elements are [5,10,20,30,35] than there cum_weight will be [5,15,35,65,100]7 [200, 300, 300, 300, 400]5 let the relative weight of 5 elements are [5,10,20,30,35] than there cum_weight will be [5,15,35,65,100]9 [500, 500, 400, 300, 400]0 [500, 500, 400, 300, 400]1 [200, 300, 300, 300, 400]5 [500, 500, 400, 300, 400]3 [500, 500, 400, 300, 400]4 [200, 300, 300, 300, 400]8 [500, 500, 400, 300, 400]6 [200, 300, 300, 300, 400]8 [500, 500, 400, 300, 400]8 [200, 300, 300, 300, 400]8 [200 400 400 200 400]0 [200, 300, 300, 300, 400]8 [200 400 400 200 400]2 [200 400 400 200 400]3 [200, 300, 300, 300, 400]5 [200 400 400 200 400]5 [200 400 400 200 400]6 [200 400 400 200 400]7 [200 400 400 200 400]8 Output: [200, 300, 300, 300, 400] Bạn cũng có thể sử dụng tham số Cum_weight. Nó là viết tắt của trọng lượng giao hoán. Theo mặc định, nếu chúng ta sẽ sử dụng phương pháp trên và gửi trọng số hơn hàm này sẽ thay đổi trọng lượng thành trọng lượng giao hoán. Vì vậy, để làm cho chương trình sử dụng nhanh Cum_weight. Trọng lượng tích lũy được tính bằng công thức: let the relative weight of 5 elements are [5,10,20,30,35] than there cum_weight will be [5,15,35,65,100] Example: Python3[200, 300, 300, 300, 400]2 [200, 300, 300, 300, 400]3 [200, 300, 300, 300, 400]4 [200, 300, 300, 300, 400]5 [200, 300, 300, 300, 400]6 [200, 300, 300, 300, 400]7 [200, 300, 300, 300, 400]8 [200, 300, 300, 300, 400]9 [200, 300, 300, 300, 400]8 let the relative weight of 5 elements are [5,10,20,30,35] than there cum_weight will be [5,15,35,65,100]1 [200, 300, 300, 300, 400]8 let the relative weight of 5 elements are [5,10,20,30,35] than there cum_weight will be [5,15,35,65,100]3 [200, 300, 300, 300, 400]8 let the relative weight of 5 elements are [5,10,20,30,35] than there cum_weight will be [5,15,35,65,100]5____36 let the relative weight of 5 elements are [5,10,20,30,35] than there cum_weight will be [5,15,35,65,100]7 [200, 300, 300, 300, 400]5 let the relative weight of 5 elements are [5,10,20,30,35] than there cum_weight will be [5,15,35,65,100]9 Các [200 400 400 200 400]7 [200 400 400 200 400]8 Output: [500, 500, 400, 300, 400] Sử dụng phương thức numpy.random.choice ()Nếu bạn đang sử dụng Python cũ hơn 3,6 phiên bản, thì bạn phải sử dụng thư viện Numpy để đạt được các số ngẫu nhiên có trọng số. Với phương thức trợ giúp của phương thức (), chúng ta có thể lấy các mẫu ngẫu nhiên của một mảng một chiều và trả về các mẫu ngẫu nhiên của mảng numpy.With the help of choice() method, we can get the random samples of one dimensional array and return the random samples of numpy array.
Lưu ý: Tổng số xác suất của tất cả các phần tử phải bằng 1. the total sum of the probability of all the elements should be equal to 1. Example: Python
[200, 300, 300, 300, 400]2 random.choices(population, weights=None, *, cum_weights=None, k=1) 9[200, 300, 300, 300, 400]4 [200, 300, 300, 300, 400]5 [200, 300, 300, 300, 400]6 [200, 300, 300, 300, 400]7 [200, 300, 300, 300, 400]8 [200, 300, 300, 300, 400]9 [200, 300, 300, 300, 400]8 let the relative weight of 5 elements are [5,10,20,30,35] than there cum_weight will be [5,15,35,65,100]1 [200, 300, 300, 300, 400]8 let the relative weight of 5 elements are [5,10,20,30,35] than there cum_weight will be [5,15,35,65,100]3 [200, 300, 300, 300, 400]8 let the relative weight of 5 elements are [5,10,20,30,35] than there cum_weight will be [5,15,35,65,100]5____36 13[200, 300, 300, 300, 400]5 15[500, 500, 400, 300, 400]0 17[200 400 400 200 400]5 19[200, 300, 300, 300, 400]5 [200, 300, 300, 300, 400]6 22[200, 300, 300, 300, 400]8 24[200, 300, 300, 300, 400]8 26[200, 300, 300, 300, 400]8 28[200, 300, 300, 300, 400]8 30 31[200 400 400 200 400]7 33Output: [200 400 400 200 400] |