Wie implementiert man eine gewichtete Zufallsauswahl in Python?

PHPz
Freigeben: 2023-09-11 21:45:02
nach vorne
673 Leute haben es durchsucht

Wie implementiert man eine gewichtete Zufallsauswahl in Python?

Python ist eine flexible und effiziente Programmiersprache, die eine breite Palette an Low-Level-Funktionen und Bibliotheken zur Verbesserung komplexer Codierungsaufgaben bereitstellt. Eine der Aufgaben besteht darin, eine gewichtete unregelmäßige Entscheidungsfindung durchzuführen, eine messbare Strategie, bei der alles eine vordefinierte Wahrscheinlichkeit hat, ausgewählt zu werden. Im Gegensatz zur einfachen Zufallsauswahl, bei der jedes Element die gleiche Wahrscheinlichkeit hat, ausgewählt zu werden, ermöglicht uns die gewichtete Zufallsauswahl, eine Wahrscheinlichkeit für die Auswahl jedes Elements anzugeben, die variieren kann. Ziel dieses Artikels ist es, ein umfassendes Verständnis dafür zu vermitteln, wie man in Python eine gewichtete Zufallsauswahl erhält.

Grammatik

Die Hauptmethode in Python, die gewichtete Zufallsauswahlen ermöglicht, ist random.choices(). Dies ist die grundlegende Syntax:

random.choices(population, weights=None, cum_weights=None, k=1)
Nach dem Login kopieren
  • Bevölkerung ist ein notwendiger Bestandteil. Sie werden aus dieser Liste auswählen.

  • Keine Pflicht zur Gewichtsangabe. Eine Liste von Gewichtungen, die jedem einzelnen Mitglied der Gesamtliste entsprechen.

  • cum_weights ist ein völlig optionales Feld. Liste der akkumulierten Gewichte.

  • Der Buchstabe k ist nicht erforderlich. Eine Ganzzahl, die die Anzahl der auszuwählenden Elemente angibt. Der Standardwert ist 1.

Algorithmus

Um die Funktionsweise der gewichteten Zufallsauswahl besser zu verstehen, befolgen Sie bitte den folgenden Schritt-für-Schritt-Algorithmus:

  • Importieren Sie das Zufallsmodul in Python.

  • Definieren Sie die Population, d. h. die Liste der Elemente, aus der Sie auswählen möchten.

  • Definieren Sie Gewichte, bei denen es sich um Wahrscheinlichkeitslisten handelt, die jedem Element in der Grundgesamtheit entsprechen. Stellen Sie sicher, dass die Gewichte mit den Gesamtelementen übereinstimmen.

  • Verwenden Sie die Methode random.choices(), um die Population, das Gewicht und die Anzahl der auszuwählenden Elemente anzugeben.

  • Führen Sie den Code aus und analysieren Sie die Ergebnisse.

Methode 1: Verwenden Sie random.choices()

Verwenden Sie die Methode „random.choices()“ mit dem Parameter „Gewicht“: Diese Methode verwendet die in Python integrierte Funktion, um die Gewichtung jedes Elements explizit anzugeben.

Beispiel

import random

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

chosen = random.choices(population, weights, k=5)
print(chosen)
Nach dem Login kopieren

Ausgabe

['Red', 'Green', 'Blue', 'Blue', 'Blue']
Nach dem Login kopieren

Anleitung

Dieses Python-Skript nutzt das implizite Unregelmäßigkeitsmodul, insbesondere die Funktion random.choices(), um gewichtete unregelmäßige Bestimmungen basierend auf einer Liste aktueller Darstellungen zu generieren. Sie können aus der Liste mit dem Titel „Bevölkerung“ die folgenden Optionen auswählen: „Rot“, „Blau“ und „Grün“. Die Liste „Gewichtungen“ stellt die Wahrscheinlichkeit dar, jede Komponente in den folgenden Anteilen auszuwählen: 60 %, 30 % bzw. 10 %. Das Skript wählt zufällig fünf Elemente aus der Variablen „Population“ aus und berücksichtigt dabei die definierten „Gewichte“. Dies wird durch den Aufruf der Funktion random.choices mit den entsprechenden Parametern erreicht. Der Wert des Parameters „k“ zeigt die Anzahl der im Pool zu betrachtenden Dinge an. Danach werden die ausgewählten Elemente gedruckt.

Methode 2: Verwenden Sie numpy.random.choice()

Verwenden Sie numpy.random.choice(): Diese Methode funktioniert mit der Numpy-Bibliothek, einem leistungsstarken numerischen Operationstool, das auch die gewichtete Zufallsauswahl unterstützt.

Beispiel

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)
Nach dem Login kopieren

Ausgabe

['Red' 'Red' 'Red' 'Red' 'Blue']
Nach dem Login kopieren

Anleitung

Um eine gewichtete Zufallsauswahl durchzuführen, verwendet das Skript die Numpy-Bibliothek und ruft die Funktion numpy.random.choice() auf. Die Listen „Population“ und „Gewichte“ werden auf die gleiche Weise wie der erste Code definiert. Andererseits wird bei dieser Methode der Wahrscheinlichkeitsparameter durch den Buchstaben p anstelle des Wortes „Gewicht“ dargestellt. Das Skript wählt zufällig fünf Elemente aus der Variablen „population“ aus, indem es die Funktion np.random.choice mit den Parametern population, 5 und p=weights aufruft. Die Auswahl basiert auf einer vorgegebenen Wahrscheinlichkeit. Anstatt wie im ersten Code eine Liste zu generieren, generiert dieser Code ein Numpy-Array, das alle ausgewählten Elemente enthält.

Fazit

In diesem Artikel untersuchen wir zwei wichtige Möglichkeiten, eine gewichtete Zufallsauswahl in Python mithilfe integrierter Funktionen und externer Bibliotheken zu implementieren. Mit den Methoden random.choices() und numpy.random.choice() können Sie die Wahrscheinlichkeit jedes Elements in der Liste effektiv manipulieren und erhalten so mehr Kontrolle über zufällige Entscheidungen.

Das Verständnis und die korrekte Umsetzung der gewichteten Zufallsauswahl ist für eine Vielzahl von Szenarien, von einfachen Spielen bis hin zu komplexen datenwissenschaftlichen Aufgaben, von entscheidender Bedeutung, da sie die realistische ungleichmäßige Verteilung der Wahrscheinlichkeiten im Leben widerspiegelt. Durch die Beherrschung dieser Technik fügen Sie Ihrem Python-Programmier-Toolkit ein wichtiges Werkzeug hinzu.

Denken Sie daran, dass die Funktionen random.choices() und numpy.random.choice() nicht auf gewichtete Zufallsauswahlmöglichkeiten beschränkt sind – sie bieten noch viel mehr. Fühlen Sie sich frei, in diese Bibliotheken einzutauchen, um das volle Potenzial von Python auszuschöpfen. Denken Sie daran, dass Übung der Schlüssel zur Beherrschung jedes Konzepts ist. Programmieren Sie also weiter und erkunden Sie weiter!

Das obige ist der detaillierte Inhalt vonWie implementiert man eine gewichtete Zufallsauswahl in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage