Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Teknik persampelan berstrata dalam Python

Teknik persampelan berstrata dalam Python

PHPz
PHPzasal
2023-06-10 22:40:012089semak imbas

Teknik persampelan berstrata dalam Python

Persampelan ialah kaedah pengumpulan data yang biasa digunakan dalam statistik Ia boleh memilih sebahagian daripada sampel daripada set data untuk dianalisis untuk membuat kesimpulan ciri-ciri keseluruhan set data. Dalam era data besar, jumlah data adalah besar, dan menggunakan keseluruhan sampel untuk analisis adalah memakan masa dan tidak praktikal dari segi ekonomi. Oleh itu, pemilihan kaedah persampelan yang sesuai dapat meningkatkan kecekapan analisis data. Artikel ini terutamanya memperkenalkan teknik persampelan berstrata dalam Python.

Apakah persampelan berstrata?

Dalam persampelan, persampelan berstrata ialah teknik yang biasa digunakan. Berbeza daripada persampelan rawak mudah, persampelan berstrata membahagikan data kepada beberapa lapisan dalam populasi, dan setiap lapisan mempunyai ciri atribut yang sama. Kemudian, sampel diperoleh daripada setiap lapisan mengikut kebarangkalian yang berbeza. Kaedah ini sesuai apabila terdapat ciri khas dalam populasi, terutamanya apabila ciri-ciri ini jelas Persampelan berstrata adalah kaedah persampelan statistik yang lebih berkesan.

Mengapa pensampelan berstrata?

Kelebihan pensampelan berstrata ialah ia boleh meningkatkan ketepatan pensampelan dan mengurangkan ralat pensampelan, seterusnya membina model dan inferens yang lebih baik. Dalam senario sebenar analisis data, terdapat pelbagai jenis pembolehubah dalam populasi Pemprosesan pembolehubah ini yang tidak betul akan menyebabkan penyelewengan atau ralat, menjadikan model yang telah ditetapkan tidak dapat mendekati situasi sebenar. Menggunakan teknologi persampelan berstrata, sampel yang dikumpul boleh dikawal supaya sampel yang terdiri daripada pembolehubah berbeza dapat menggambarkan dengan lebih tepat situasi sebenar populasi.

Bagaimana untuk melaksanakan pensampelan berstrata dalam Python?

Dalam Python, terdapat pelbagai pakej yang boleh melaksanakan pensampelan berstrata, yang lebih terkenal ialah perpustakaan numpy dan panda. Kedua-dua perpustakaan menyediakan banyak fungsi berguna yang boleh membantu kami melaksanakan teknik pensampelan berstrata.

Di bawah ini kami menggunakan contoh untuk menunjukkan cara menggunakan Python untuk melaksanakan pensampelan berstrata.

Dalam contoh ini, kami mengandaikan bahawa terdapat set data percubaan dengan 5 pembolehubah, termasuk jantina, umur, tinggi, berat dan sama ada untuk merokok. Set data ini sesuai dengan teknik persampelan berstrata.

Pertama, kita perlu membahagikan set data kepada lapisan yang berbeza. Kami memilih jantina sebagai pembolehubah stratifikasi dan membahagikan lelaki dan wanita kepada dua strata.

import pandas as pd

# 生成测试数据
data = pd.DataFrame({
    'sex': ['M', 'M', 'M', 'F', 'F', 'F'],
    'age': [18, 20, 22, 25, 27, 30],
    'height': [170, 172, 175, 160, 165, 170],
    'weight': [65, 70, 75, 55, 60, 65],
    'smoke': [1, 1, 0, 0, 1, 0]
})

# 分层抽样
male = data[data['sex'] == 'M']
female = data[data['sex'] == 'F']

Seterusnya, kita perlu menentukan saiz sampel untuk setiap tahap dan nisbah pensampelan yang sepadan. Dalam contoh ini, kami mengandaikan bahawa 10% daripada sampel diambil daripada wanita dan 20% diambil daripada lelaki.

# 分层抽样比例
sampling_prop = {
    'M': 0.2,
    'F': 0.1
}

# 计算每个层级的样本大小
m_size = int(len(male) * sampling_prop['M'])
f_size = int(len(female) * sampling_prop['F'])

Akhir sekali, kita boleh menggunakan fungsi random.choice dalam perpustakaan numpy untuk menarik sampel dari setiap peringkat. Dalam contoh ini, kami mengekstrak sampel stratum yang diperlukan daripada setiap stratum:

import numpy as np

# 分层抽样
msample = male.sample(m_size)
fsample = female.sample(f_size)

# 整合分层样本
sample = pd.concat([msample, fsample])

Keputusan persampelan berstrata akan lebih tepat dan model yang ditubuhkan dengan sampel penuh akan lebih mudah digunakan secara meluas. Dalam amalan, menggunakan teknik persampelan berstrata boleh meningkatkan kecekapan dan ketepatan penyelidikan data, yang membawa kepada kesimpulan yang lebih tepat.

Atas ialah kandungan terperinci Teknik persampelan berstrata dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn