Bootstrap lấy mẫu khung dữ liệu Python

Về cơ bản đây là chức năng mà bạn cần

pandas.DataFrame.sample

Trả về một mẫu vật phẩm ngẫu nhiên từ một trục của đối tượng

Nó thậm chí còn chứa tham số này

replace: bool, default False

Cho phép hoặc không cho phép lấy mẫu cùng một hàng nhiều lần

Bootstrapping là một phương pháp có thể được sử dụng để xây dựng khoảng tin cậy cho một thống kê khi kích thước mẫu nhỏ và phân phối cơ bản không xác định

Quá trình cơ bản để bootstrapping như sau

  • Lấy k mẫu lặp lại với sự thay thế từ một tập dữ liệu nhất định
  • Đối với mỗi mẫu, hãy tính số liệu thống kê mà bạn quan tâm
  • Điều này dẫn đến k ước tính khác nhau cho một thống kê nhất định. Sau đó, bạn có thể sử dụng ước tính này để tính khoảng tin cậy cho thống kê

Cách dễ nhất để thực hiện bootstrapping trong Python là sử dụng hàm bootstrap từ thư viện SciPy

Ví dụ sau đây cho thấy cách sử dụng chức năng này trong thực tế

Thí dụ. Thực hiện Bootstrapping trong Python

Giả sử chúng ta tạo một tập dữ liệu bằng Python chứa 15 giá trị

#define array of data values
data = [7, 9, 10, 10, 12, 14, 15, 16, 16, 17, 19, 20, 21, 21, 23]

Chúng ta có thể sử dụng đoạn mã sau để tính khoảng tin cậy 95% bootstrapped cho giá trị trung bình

from scipy.stats import bootstrap
import numpy as np

#convert array to sequence
data = [data,]

#calculate 95% bootstrapped confidence interval for median
bootstrap_ci = bootstrap[data, np.median, confidence_level=0.95,
                         random_state=1, method='percentile']

#view 95% boostrapped confidence interval
print[bootstrap_ci.confidence_interval]

ConfidenceInterval[low=10.0, high=20.0]

Khoảng tin cậy 95% bootstrapped cho trung vị hóa ra là [10. 0, 20. 0]

Đây là chức năng bootstrap[] thực sự đã làm dưới mui xe

  • Hàm bootstrap[] đã tạo 9.999 mẫu có thay thế. [Mặc định là 9,999 nhưng bạn có thể sử dụng đối số n_resamples để thay đổi số này]
  • Đối với mỗi mẫu khởi động, giá trị trung bình được tính
  • Giá trị trung vị của từng mẫu được sắp xếp từ nhỏ nhất đến lớn nhất và giá trị trung vị ở phân vị 2. 5% và phần trăm 97. 5% được sử dụng để xây dựng giới hạn dưới và trên của khoảng tin cậy 95%

Lưu ý rằng bạn có thể tính toán khoảng tin cậy bootstrapped cho hầu hết mọi thống kê

Ví dụ: chúng ta có thể thay đổi np. trung vị đến np. std trong hàm bootstrap[] để tính khoảng tin cậy 95% cho độ lệch chuẩn

from scipy.stats import bootstrap
import numpy as np

#convert array to sequence
data = [data,]

#calculate 95% bootstrapped confidence interval for median
bootstrap_ci = bootstrap[data, np.std, confidence_level=0.95,
                         random_state=1, method='percentile']

#view 95% boostrapped confidence interval
print[bootstrap_ci.confidence_interval]

ConfidenceInterval[low=3.3199732261303283, high=5.66478399066117]

Khoảng tin cậy 95% bootstrapped cho độ lệch chuẩn hóa ra là [3. 32, 5. 67]

Ghi chú. Đối với những ví dụ này, chúng tôi đã chọn tạo khoảng tin cậy 95%, nhưng bạn có thể thay đổi giá trị trong đối số cấp độ tin cậy để tạo khoảng tin cậy có kích thước khác

Lấy mẫu Bootstrap được sử dụng để lấy dữ liệu ngẫu nhiên từ một mẫu, cho phép sao chép, để tạo ra một quần thể hơi khác. Ví dụ, tôi lặp lại khoảng 1000 lần để lấy số liệu thống kê. Tôi đã nghĩ về việc phải làm gì với Pandas, vì vậy hãy ghi lại nó

Hãy thử sử dụng một mẫu mống mắt

Lấy mẫu gấu trúc và hoa diên vĩ, sau đó nhập mô-đun số ngẫu nhiên được sử dụng để lấy mẫu ngẫu nhiên

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

Sau đó tải dữ liệu và đặt nó vào khung dữ liệu gấu trúc

iris_dataset = load_iris[]
df = pd.DataFrame[data=iris_dataset.data, columns=iris_dataset.feature_names]

Hãy xem dữ liệu với

replace: bool, default False
6

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

Sau đó, xác định một chức năng lấy mẫu dữ liệu ngẫu nhiên. Đầu tiên, tạo một khung dữ liệu trống với

replace: bool, default False
7 bằng cách sử dụng khung dữ liệu gốc
replace: bool, default False
8, sau đó tạo một số ngẫu nhiên
replace: bool, default False
9a_data_frame [đã chọn_num. đã chọn_num + 1]____60với
iris_dataset = load_iris[]
df = pd.DataFrame[data=iris_dataset.data, columns=iris_dataset.feature_names]
1. Lưu ý rằng có vẻ như bạn cần chọn một phạm vi [[0. 1]] để chọn một dòng [ví dụ: [0] cho numpy] trong khung dữ liệu của pandas

replace: bool, default False
0

Kiểm tra dữ liệu sau khi lấy mẫu ngẫu nhiên với

iris_dataset = load_iris[]
df = pd.DataFrame[data=iris_dataset.data, columns=iris_dataset.feature_names]
2 bằng cách thực hiện
iris_dataset = load_iris[]
df = pd.DataFrame[data=iris_dataset.data, columns=iris_dataset.feature_names]
3

replace: bool, default False
3

Xoay cái này 1000 lần hoặc trong một vòng lặp để có kết quả lựa chọn phù hợp hoặc biến

[Xem bên dưới] Có một cách dễ dàng hơn

Nếu bạn đặt

iris_dataset = load_iris[]
df = pd.DataFrame[data=iris_dataset.data, columns=iris_dataset.feature_names]
4, có vẻ như bạn có thể làm tương tự với
iris_dataset = load_iris[]
df = pd.DataFrame[data=iris_dataset.data, columns=iris_dataset.feature_names]
5, đây là chức năng ban đầu của pandas. @nkay Cảm ơn bạn đã chỉ ra

Làm thế nào để bootstrap chọn kích thước mẫu?

Nguyên tắc bootstrap nói rằng việc chọn một mẫu ngẫu nhiên có kích thước n từ tổng thể có thể được bắt chước bằng cách chọn một mẫu bootstrap có kích thước n từ mẫu ban đầu. Nguyên tắc bootstrap có đúng hay không không phụ thuộc vào bất kỳ mẫu riêng lẻ nào "có vẻ đại diện cho dân số"

Khoảng tin cậy bootstrap là gì?

Khoảng thời gian bootstrap phân vị chỉ là khoảng giữa phân vị 100×[α2] và 100×[1-α2] của phân phối ước tính θ thu được từ việc lấy mẫu lại, where θ represents a parameter of interest and α is the level of significance [e.g., α = 0.05 for 95% CIs] [Efron, 1982].

Bootstrapping tham số là gì?

Boottrap tham số . [Ví dụ: dữ liệu có thể đến từ Poisson, nhị thức âm cho số đếm hoặc chuẩn cho phân phối liên tục. ]assumes that the data comes from a known distribution with unknown parameters. [For example the data may come from a Poisson, negative binomial for counts, or normal for continuous distribution.]

Chủ Đề