Comment implémenter la sélection aléatoire pondérée en Python ?

PHPz
Libérer: 2023-09-11 21:45:02
avant
640 Les gens l'ont consulté

Comment implémenter la sélection aléatoire pondérée en Python ?

Python est un langage de programmation flexible et efficace qui fournit un large éventail de fonctionnalités et de bibliothèques de bas niveau pour améliorer les tâches de codage complexes. L'une des tâches consiste à effectuer une prise de décision irrégulière et pondérée, une stratégie mesurable dans laquelle tout a une probabilité prédéfinie d'être choisi. Contrairement à la sélection aléatoire simple, où chaque élément a une chance égale d'être sélectionné, la sélection aléatoire pondérée nous permet de spécifier une probabilité que chaque élément soit sélectionné, qui peut varier. Cet article vise à fournir une compréhension complète de la façon d'obtenir une sélection aléatoire pondérée en Python.

Grammaire

La principale méthode en Python qui facilite les choix aléatoires pondérés est random.choices(). Voici sa syntaxe de base :

random.choices(population, weights=None, cum_weights=None, k=1)
Copier après la connexion
  • La population est une composante nécessaire. Vous choisirez parmi cette liste.

  • Aucune obligation de fournir du poids. Une liste de poids correspondant à chaque membre individuel de la liste globale.

  • cum_weights est un champ complètement facultatif. Liste des poids accumulés.

  • La lettre k n'est pas obligatoire. Un nombre entier spécifiant le nombre d'éléments à sélectionner. La valeur par défaut est 1.

Algorithme

Pour mieux comprendre le fonctionnement de la sélection aléatoire pondérée, veuillez suivre l'algorithme étape par étape ci-dessous :

  • Importez le module aléatoire en Python.

  • Définissez la population, c'est-à-dire la liste des éléments parmi lesquels vous souhaitez sélectionner.

  • Définissez des poids, qui sont des listes de probabilités correspondant à chaque élément de la population. Assurez-vous que les poids sont cohérents avec l’ensemble des éléments.

  • Utilisez la méthode random.choices() pour spécifier la population, le poids et le nombre d'éléments à choisir.

  • Exécutez le code et analysez les résultats.

Méthode 1 : utilisez random.choices()

Utilisez la méthode random.choices() avec le paramètre de poids : cette méthode utilise la fonction intégrée de Python pour fournir explicitement le poids de chaque élément.

Exemple

import random

population = ['Red', 'Blue', 'Green']
weights = [0.6, 0.3, 0.1]

chosen = random.choices(population, weights, k=5)
print(chosen)
Copier après la connexion

Sortie

['Red', 'Green', 'Blue', 'Blue', 'Blue']
Copier après la connexion

Instructions

Ce script Python utilise le module d'irrégularité implicite, en particulier la fonction random.choices(), pour générer des déterminations irrégulières pondérées basées sur une liste de représentations récentes. Vous pouvez sélectionner les options suivantes dans la liste intitulée « population » : « rouge », « bleu » et « vert ». La liste « poids » représente la chance de sélectionner chaque composant dans les proportions suivantes : 60 %, 30 % et 10 %, respectivement. Le script sélectionne aléatoirement cinq éléments de la variable « population », en tenant compte des « poids » définis. Ceci est réalisé en appelant la fonction random.choices avec les paramètres appropriés. La valeur du paramètre « k » indique le nombre d'éléments à surveiller dans le pool. Après cela, les éléments sélectionnés seront imprimés.

Méthode 2 : utilisez numpy.random.choice()

Utilisez numpy.random.choice() : Cette méthode fonctionne avec la bibliothèque numpy, qui est un puissant outil d'opérations numériques qui prend également en charge la sélection aléatoire pondérée.

Exemple

import numpy as np

population = ['Red', 'Blue', 'Green']
weights = [0.6, 0.3, 0.1]

chosen = np.random.choice(population, 5, p=weights)
print(chosen)
Copier après la connexion

Sortie

['Red' 'Red' 'Red' 'Red' 'Blue']
Copier après la connexion

Instructions

Pour effectuer une sélection aléatoire pondérée, le script utilise la bibliothèque numpy et appelle la fonction numpy.random.choice(). Les listes « population » et « poids » sont définies de la même manière que le premier code. En revanche, avec cette méthode, le paramètre de probabilité est représenté par la lettre p au lieu du mot « poids ». Le script sélectionne au hasard cinq éléments de la variable « population » en appelant la fonction np.random.choice avec les paramètres population, 5 et p=weights. La sélection est basée sur une probabilité spécifiée. Au lieu de générer une liste comme le premier code, ce code génère un tableau numpy contenant tous les éléments sélectionnés.

Conclusion

Dans cet article, nous explorons deux manières importantes d'implémenter la sélection aléatoire pondérée en Python à l'aide de fonctions intégrées et de bibliothèques externes. En utilisant les méthodes random.choices() et numpy.random.choice(), vous pouvez manipuler efficacement la probabilité de chaque élément de la liste, vous donnant ainsi plus de contrôle sur les choix aléatoires.

Comprendre et mettre en œuvre correctement la sélection aléatoire pondérée est essentiel pour une variété de scénarios, des jeux simples aux tâches complexes de science des données, car elle reflète la répartition inégale réaliste des probabilités dans la vie. En maîtrisant cette technique, vous ajoutez un outil important à votre boîte à outils de programmation Python.

N'oubliez pas que les fonctions random.choices() et numpy.random.choice() ne se limitent pas aux choix aléatoires pondérés : elles offrent bien plus. N'hésitez pas à vous plonger dans ces bibliothèques pour libérer tout le potentiel de Python. N'oubliez pas que la pratique est la clé pour maîtriser n'importe quel concept, alors continuez à coder et continuez à explorer !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!