Elección aleatoria ponderada con Python
-
Utilice la función
random.choices()
para generar elecciones aleatorias ponderadas -
Utilice la función
numpy.random.choice()
para generar elecciones aleatorias ponderadas
En Python, podemos generar fácilmente números aleatorios usando las bibliotecas Random y NumPy.
La selección de elementos aleatorios de una lista o un array por el resultado probable del elemento se conoce como opciones aleatorias ponderadas. La selección de un elemento se determina asignando una probabilidad a cada elemento presente. A veces, también se selecciona más de un elemento de la lista de elementos hechos.
En este tutorial, discutiremos cómo generar elecciones aleatorias ponderadas en Python.
Utilice la función random.choices()
para generar elecciones aleatorias ponderadas
Aquí, el módulo random
de Python se usa para hacer números aleatorios.
En la función choices()
, las elecciones aleatorias ponderadas se realizan con un reemplazo. También se conoce como muestra aleatoria ponderada con reemplazo. Además, en esta función, los pesos juegan un papel fundamental. Los pesos definen el resultado probable de la selección de cada elemento. Hay dos tipos de pesos:
- Pesos relativos
- Pesos acumulativos
Elija elementos con pesos relativos
El parámetro weights
define los pesos relativos. El resultado probable es diferente para cada elemento de la lista. Si el resultado probable para cada elemento se ha fijado utilizando los pesos relativos, entonces las selecciones se realizan basándose únicamente en los pesos relativos.
Aquí hay un ejemplo:
import random
List = [12, 24, 36, 48, 60, 72, 84]
print(random.choices(List, weights=(30, 40, 50, 60, 70, 80, 90), k=7))
Aquí, a cada elemento de la lista se le da su propio peso, es decir, resultado probable. Además, k en el ejemplo anterior es el número de elementos necesarios de la lista dada.
Producción :
[60, 84, 36, 72, 84, 84, 60]
Aquí, la suma total de ponderaciones no es 100 porque son ponderaciones relativas y no porcentajes. El número 84 ha aparecido tres veces ya que tiene el mayor peso de todos los pesos. Entonces, la probabilidad de que ocurra será la más alta.
Elija elementos con pesos acumulativos
El parámetro cum_weight
se utiliza para definir los pesos acumulativos. El peso acumulado de un elemento está determinado por el peso del elemento anterior más el peso relativo de ese elemento. Por ejemplo, los pesos relativos [10, 20, 30, 40] son equivalentes a los pesos acumulativos [10, 30, 60, 100]
Aquí hay un ejemplo:
import random
List = [13, 26, 39, 52, 65]
print(random.choices(List, cum_weights=(10, 30, 60, 100, 150), k=5))
Producción :
[65, 65, 39, 13, 52]
Aquí también, el número 65 aparece más que cualquier otro número ya que tiene el peso más alto.
Utilice la función numpy.random.choice()
para generar elecciones aleatorias ponderadas
Para generar opciones ponderadas aleatorias, NumPy se usa generalmente cuando un usuario usa la versión de Python menor que 3.6.
En este caso, se utiliza numpy.random.choice
para determinar la distribución de probabilidad. En este método, se toman elementos aleatorios de un array 1D y se devuelven elementos aleatorios de un array numérica utilizando la función choice()
.
import numpy as np
List = [500, 600, 700, 800]
sNumbers = np.random.choice(List, 4, p=[0.10, 0.20, 0.30, 0.40])
print(sNumbers)
Aquí, la probabilidad debe ser igual a 1. El número 4 representa el tamaño de la lista.
Producción :
[800 500 600 800]
Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.
LinkedIn