우노
[Python] LHS(Latin HyperCube Sampling)란? 본문
라틴 하이퍼큐브 샘플링 (Latin Hypercube Sampling : LHS)
- 표본 추출(샘플링) 방법 중 하나로, 위 그림과 같이 데이터가 고르게 분포 되는 특징이 있습니다.
- python의 Latin Hyper Cube Sampling 라이브러리를 활용하면 고른 분포의 데이터셋을 생성해 줍니다.
- 특징
- 비교적 일관성 있게 샘플링 됩니다.
- 전반적으로 고른 분포의 표본을 추출하고자 할 때 사용합니다.
- 분포를 동일한 확률 구간으로 분할합니다.
예제 코드
pyDOE의 라틴 하이퍼 큐브 디자인은 다음과 같은 간단한 구문을 사용하여 만들 수 있습니다.
lhs(n, [samples, criterion, iterations])
- n : 요인 수
- samples : 생성할 샘플 데이터 수
- criterion : 샘플링하는 방법
출력 범위는 사용자가 원하는대로 변환 할 수 있습니다.
예를 들어, 8 개 샘플의 균일 분포를 정규 분포 (평균 = 0, 표준 편차 = 1)로 변환하려면 다음과 같이합니다.
from pyDOE import * from scipy.stats.distributions import norm # 요인 2개, 샘플 5개 lhd = lhs(2, samples=5) # 평균 0, 표준편차 1 lhd = norm(loc=0, scale=1).ppf(lhd)
요소 4개, 샘플 10개 출력
lhs(4, samples=10, criterion='center')
각 요인별로 평균 = [1, 2, 3, 4], 표준 편차 = [0.1, 0.5, 1, 0.25]로 정규 분포되도록 변환
from pyDOE import * from scipy.stats.distributions import norm design = lhs(4, samples=10) means = [1, 2, 3, 4] stdvs = [0.1, 0.5, 1, 0.25] for i in range(4): design[:, i] = norm(loc=means[i], scale=stdvs[i]).ppf(design[:, i]) design
'Language > Python' 카테고리의 다른 글
[Python] Pandas 지수표현(과학적표기법) 출력 변경 (0) | 2020.11.02 |
---|---|
[Python] Numpy 지수표현(과학적표기법) 출력 변경 (0) | 2020.11.02 |
[Python] sys.stdin (0) | 2020.09.15 |
[Python] 산점도 행렬 (scatter_matrix) (0) | 2020.07.31 |
[Python] Matplotlib 3차원 산점도 그리기 (4) | 2020.07.29 |
Comments