>  기사  >  백엔드 개발  >  Python의 계층화된 샘플링 기술

Python의 계층화된 샘플링 기술

PHPz
PHPz원래의
2023-06-10 22:40:012017검색

파이썬의 전략적 샘플링 기법

샘플링은 통계학에서 일반적으로 사용되는 데이터 수집 방법으로, 데이터 세트에서 일부 샘플을 선택하여 분석할 수 있으며, 전체 데이터 세트의 특성을 추론할 수 있습니다. 빅데이터 시대에는 데이터의 양이 방대하고, 전체 샘플을 활용해 분석하는 것은 시간 소모적일 뿐만 아니라 경제적으로도 실용적이지 않습니다. 따라서 적절한 샘플링 방법을 선택하면 데이터 분석의 효율성을 높일 수 있습니다. 이 기사에서는 주로 Python의 계층화 샘플링 기술을 소개합니다.

층별 샘플링이란 무엇인가요?

샘플링에서는 계층화 샘플링이 일반적으로 사용되는 기술입니다. 단순 무작위 샘플링과 달리 계층화 샘플링은 데이터를 모집단 내의 여러 레이어로 나누고 각 레이어는 동일한 속성 특성을 갖습니다. 그런 다음, 서로 다른 확률에 따라 각 계층에서 샘플을 얻습니다. 이 방법은 모집단에 특별한 특성이 있는 경우, 특히 이러한 특성이 분명한 경우에 적합합니다. 층화 샘플링이 보다 효과적인 통계 샘플링 방법입니다.

계층 샘플링이 필요한 이유는 무엇인가요?

층화 샘플링의 장점은 샘플링 정확도를 높이고 샘플링 오류를 줄여 더 나은 모델과 추론을 구축할 수 있다는 것입니다. 실제 데이터 분석 시나리오에는 모집단에 다양한 유형의 변수가 있으며, 이러한 변수를 잘못 처리하면 편차나 오류가 발생하여 확립된 모델이 실제 상황에 접근할 수 없게 됩니다. 계층화 샘플링 기술을 사용하면 수집된 샘플을 제어하여 다양한 변수로 구성된 샘플이 모집단의 실제 상황을 보다 정확하게 반영할 수 있습니다.

Python에서 계층화 샘플링을 수행하는 방법은 무엇입니까?

Python에는 계층화된 샘플링을 구현할 수 있는 다양한 패키지가 있으며, 그 중 numpy 및 pandas 라이브러리가 더 유명합니다. 두 라이브러리 모두 계층화된 샘플링 기술을 구현하는 데 도움이 되는 많은 유용한 기능을 제공합니다.

아래에서는 Python을 사용하여 계층화된 샘플링을 구현하는 방법을 보여주는 예를 사용합니다.

이 예에서는 성별, 나이, 키, 몸무게, 흡연 여부 등 5가지 변수가 포함된 실험 데이터 세트가 있다고 가정합니다. 이 데이터 세트는 계층화된 샘플링 기술에 적합합니다.

먼저 데이터 세트를 여러 레이어로 분할해야 합니다. 성별을 계층화 변수로 선택하고 남성과 여성을 두 계층으로 나누었습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.