ホームページ >バックエンド開発 >Python チュートリアル >Python での層化サンプリング手法

Python での層化サンプリング手法

PHPz
PHPzオリジナル
2023-06-10 22:40:012121ブラウズ

Python による層化サンプリング手法

サンプリングは、統計学で一般的に使用されるデータ収集方法であり、分析のためにデータ セットからサンプルの一部を選択し、データ セット全体の特性を推測することができます。ビッグデータの時代では、データの量が膨大になり、分析に完全なサンプルを使用することは時間がかかり、経済的にも現実的ではありません。したがって、適切なサンプリング方法を選択することで、データ分析の効率を向上させることができます。この記事では主にPythonでの層別サンプリング手法を紹介します。

層化サンプリングとは何ですか?

サンプリングでは、層化サンプリングが一般的に使用される手法です。単純なランダム抽出とは異なり、層化抽出ではデータが母集団内の複数の層に分割され、各層は同じ属性特性を持ちます。次に、異なる確率に従って各層からサンプルが取得されます。この方法は、母集団に特別な特徴がある場合、特にその特徴が明らかな場合に適しており、層化サンプリングはより効果的な統計的サンプリング方法です。

なぜ層化サンプリングが必要なのでしょうか?

層化サンプリングの利点は、サンプリング精度を向上させ、サンプリング誤差を低減できることにより、より優れたモデルと推論を構築できることです。実際のデータ分析のシナリオでは、母集団にはさまざまな種類の変数が存在し、これらの変数の処理が不適切であると逸脱やエラーが発生し、確立されたモデルが現実の状況に近づくことができなくなります。層化サンプリング技術を使用すると、収集されたサンプルを制御できるため、さまざまな変数で構成されるサンプルが母集団の実際の状況をより正確に反映できます。

Python で層化サンプリングを実行するにはどうすればよいですか?

Python には層化サンプリングを実装できるさまざまなパッケージがあり、その中で最も有名なのは numpy ライブラリと pandas ライブラリです。どちらのライブラリも、層化サンプリング手法の実装に役立つ多くの便利な関数を提供します。

以下では、例を使用して、Python を使用して層化サンプリングを実装する方法を示します。

この例では、性別、年齢、身長、体重、喫煙の有無を含む 5 つの変数を含む実験データセットがあると仮定します。このデータセットは、層別サンプリング手法に適しています。

まず、データセットをさまざまなレイヤーに分割する必要があります。層別変数として性別を選択し、男性と女性を 2 つの層に分けました。

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']

次に、各レベルのサンプル サイズと対応するサンプリング比率を決定する必要があります。この例では、サンプルの 10% が女性から採取され、20% が男性から採取されると仮定します。

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

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

最後に、numpy ライブラリのrandom.choice関数を使用して、各レベルからサンプルを抽出できます。この例では、各層から必要な層のサンプルを抽出します。

import numpy as np

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

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

層化サンプリングの結果は比較的正確になり、完全なサンプルで確立されたモデルはより簡単に広く使用されます。実際には、層化サンプリング手法を適用すると、データ調査の効率と精度が向上し、より正確な結論が得られます。

以上がPython での層化サンプリング手法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。