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.
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.
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