Las elecciones aleatorias ponderadas significan seleccionar elementos aleatorios de una lista o una array según la probabilidad de ese elemento. Podemos asignar una probabilidad a cada elemento y de acuerdo a ese elemento(s) serán seleccionados. Mediante esto, podemos seleccionar uno o más de un elemento de la lista, y se puede lograr de dos formas.
- Por opciones aleatorias()
- Por numpy.random.choice()
Usando el método Random.choices()
opciones() pesoscum_pesos
Sintaxis: random.choices(secuencia, pesos=Ninguno, cum_weights=Ninguno, k=1)
Parámetros:
1. secuencia es un parámetro obligatorio que puede ser una lista, una tupla o una string.
2. pesos es un parámetro opcional que se utiliza para sopesar la posibilidad de cada valor.
3. cum_weights es un parámetro opcional que se utiliza para sopesar la posibilidad de cada valor pero en este se acumula la posibilidad
4. k es un parámetro opcional que se utiliza para definir la longitud de la lista devuelta.
Ejemplo 1:
Python3
import random sampleList = [100, 200, 300, 400, 500] randomList = random.choices( sampleList, weights=(10, 20, 30, 40, 50), k=5) print(randomList)
Producción:
[200, 300, 300, 300, 400]
También puede usar el parámetro cum_weight. Significa peso conmutativo. De forma predeterminada, si usamos el método anterior y enviamos pesos, esta función cambiará los pesos a peso conmutativo. Entonces, para hacer que el programa sea rápido, use cum_weight. El peso acumulado se calcula mediante la fórmula:
let the relative weight of 5 elements are [5,10,20,30,35] than there cum_weight will be [5,15,35,65,100]
Ejemplo:
Python3
import random sampleList = [100, 200, 300, 400, 500] randomList = random.choices( sampleList, cum_weights=(5, 15, 35, 65, 100), k=5) print(randomList)
Producción:
[500, 500, 400, 300, 400]
Usando el método numpy.random.choice()
Si está utilizando Python anterior a la versión 3.6, debe usar la biblioteca NumPy para lograr números aleatorios ponderados. elección()
Sintaxis: numpy.random.choice(lista,k, p=Ninguno)
Lista: Es la lista original de la que ha seleccionado números aleatorios.
k: Es el tamaño de la lista de retorno. es decir, el número de elementos que desea seleccionar.
p: Es la probabilidad de cada elemento.
Nota: la suma total de la probabilidad de todos los elementos debe ser igual a 1.
Ejemplo:
Python
from numpy.random import choice sampleList = [100, 200, 300, 400, 500] randomNumberList = choice( sampleList, 5, p=[0.05, 0.1, 0.15, 0.20, 0.5]) print(randomNumberList)
Producción:
[200 400 400 200 400]
Publicación traducida automáticamente
Artículo escrito por AshishVishwakarma1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA