[PYTHON] Bootstrap-Sampling mit Pandas

Ein kleines Skript für das Bootstrap-Sampling in Pandas

Die Bootstrap-Stichprobe wird verwendet, um zufällig Daten aus einer Stichprobe abzurufen und so eine Duplizierung zu ermöglichen, um eine geringfügig andere Grundgesamtheit zu erstellen. Wiederholen Sie dies beispielsweise 1000 Mal oder erstellen Sie Statistiken. Ich dachte darüber nach, was ich mit Pandas machen sollte, also notiere es dir.

Versuchen Sie es mit einer Irisprobe

Holen Sie sich Proben von Pandas und Iris und importieren Sie dann das Zufallszahlenmodul, das für die Zufallsauswahl verwendet wird.

import pandas as pd
import random
from sklearn.datasets import load_iris

Laden Sie dann die Daten und legen Sie sie in den Pandas-Datenrahmen.

iris_dataset = load_iris()
df = pd.DataFrame(data=iris_dataset.data, columns=iris_dataset.feature_names)

Schauen Sie sich die Daten mit df.describe () an.

sepal length (cm)	sepal width (cm)	petal length (cm)	petal width (cm)
count	150.000000	150.000000	150.000000	150.000000
mean	5.843333	3.057333	3.758000	1.199333
std	0.828066	0.435866	1.765298	0.762238
min	4.300000	2.000000	1.000000	0.100000
25%	5.100000	2.800000	1.600000	0.300000
50%	5.800000	3.000000	4.350000	1.300000
75%	6.400000	3.300000	5.100000	1.800000
max	7.900000	4.400000	6.900000	2.500000

Definieren Sie dann eine Funktion, die die Daten zufällig abtastet. Erstellen Sie zunächst einen leeren Datenrahmen mit "pd.DataFrame (column = a_data_frame.columns)" unter Verwendung des ursprünglichen Datenrahmens "column" und erstellen Sie dort eine Zufallszahl "selected_num = random.choice (range (a_data_frame.shape [0)). ])) Fügen Sie den Frame "a_data_frame [selected_num: selected_num + 1]" der durch "with` append" ausgewählten Zeile hinzu. Beachten Sie, dass Sie anscheinend einen Bereich ([0: 1]) auswählen müssen, um eine einzelne Zeile (z. B. [0] für numpy) im Datenrahmen von Pandas auszuwählen.

def btstrap(a_data_frame):
    btstr_data = pd.DataFrame(columns=a_data_frame.columns)
    for a_data in range(a_data_frame.shape[0]):
        selected_num = random.choice(range(a_data_frame.shape[0]))
        btstr_data = btstr_data.append(a_data_frame[selected_num : selected_num + 1])
    return btstr_data

Überprüfen Sie die Daten nach der Zufallsauswahl mit "btstr_data.describe ()", indem Sie "btstr_data = btstrap (df)" ausführen.

sepal length (cm)	sepal width (cm)	petal length (cm)	petal width (cm)
count	150.000000	150.000000	150.000000	150.000000
mean	5.750000	3.040667	3.660667	1.176000
std	0.728034	0.410287	1.716634	0.766644
min	4.300000	2.000000	1.100000	0.100000
25%	5.100000	2.800000	1.500000	0.200000
50%	5.700000	3.000000	4.250000	1.300000
75%	6.300000	3.300000	5.000000	1.800000
max	7.700000	4.400000	6.700000	2.500000

Drehen Sie dies 1000 Mal oder in einer Schleife, um das Ergebnis der Anpassung oder Variablenauswahl zu erhalten.

[Siehe unten] Es gab einen einfacheren Weg

Wenn Sie replace = True setzen, können Sie anscheinend dasselbe mit .sample tun, der ursprünglichen Funktion von Pandas. @nkay Vielen Dank für den Hinweis.

df.sample(n=df.shape[0], replace=True)

Recommended Posts

Bootstrap-Sampling mit Pandas
Datensätze mit Pandas verarbeiten (1)
Konvertieren Sie 202003 bis 2020-03 mit Pandas
Datensätze mit Pandas verarbeiten (2)
Zusammenführen von Datensätzen mit Pandas
Pandas lernen mit Chemoinfomatik
Datenvisualisierung mit Pandas
Datenmanipulation mit Pandas!
Daten mit Pandas mischen
Lesen Sie CSV mit Python-Pandas
[Python] Ändere den Typ mit Pandas
Standardisieren Sie nach Gruppen mit Pandas
Verhindern Sie Auslassungen mit Pandas Print
Datenverarbeitungstipps mit Pandas
Extrahieren Sie den Maximalwert mit Pandas.
Pandas
Vielseitige Datenerfassung mit Pandas + Matplotlib
[Python] Verbinde zwei Tabellen mit Pandas
Latin Super Square Sampling mit OpenMDAO
Extrahieren Sie bestimmte mehrere Spalten mit Pandas
1. Mit Python 1-1 gelernte Statistiken. Grundlegende Statistiken (Pandas)
Bequeme Analyse mit Pandas + Jupyter Notebook
Zeichnen Sie ein Diagramm mit Pandas + XlsxWriter
Bearbeiten von Strings mit Pandas gruppieren nach
Bulk Insert Pandas DataFrame mit psycopg2
Ich möchte ○○ mit Pandas machen
Erstellen Sie eine Altersgruppe mit Pandas
[Python] Format, wenn to_csv mit Pandas
Feature-Generierung mit Pandas gruppieren nach
Behandelt verschiedene Datumsformate mit Pandas
Zeichnen Sie den Nikkei Average Stock Index mit Pandas
Laden Sie csv mit doppelten Spalten in Pandas
Tipps zum Zeichnen mehrerer Linien mit Pandas
Versuchen Sie, mit Pandas in ordentliche Daten umzuwandeln
Zeichnen Sie eine hierarchische Achsenbeschriftung mit matplotlib + pandas
Versuchen Sie schnell, Ihren Datensatz mit Pandas zu visualisieren
Ersetzen Sie Spaltennamen / -werte durch Pandas-Datenrahmen
[Easy Python] Lesen von Excel-Dateien mit Pandas
Laden Sie csv mit Pandas und spielen Sie mit Index
Behandeln Sie 3D-Datenstrukturen mit Pandas
Lesen Sie CSV und analysieren Sie mit Pandas und Seaborn
Beispiel für eine effiziente Datenverarbeitung mit PANDAS
Best Practices für den Umgang mit Daten mit Pandas
[Pandas 1.0.1 Memorial] Heftiger Kampfrekord mit Kochbuch