부트 스트랩 샘플링 (Bootstrap Sampling) 방법과 그 scikit-learn을 이용한 실행
Bootstrap Sampling이란?
모집단이 되는 데이터가 있을 때, 모집단으로부터 중복을 허가하여 랜덤하게 약간 데이터를 꺼내 재표본화를 하는 수법.
구체적인 예:
모집단을 $X={x_1,x_2,...,x_{10}}$로 한다.
1. 재표본화를 실시하는 횟수와, 재표본화된 샘플의 샘플 사이즈를 설정한다(예에서는 재표본화를 3회, 샘플 사이즈를 5로 둔다)
2. 모집단 $X$에서 중복을 허용하고 랜덤하게 샘플링을 한다
예:
$X_1=x_1,x_3,x_3,x_6,x_9$
$X_2=x_2,x_2,x_2,x_3,x_7$
$X_3=x_2,x_4,x_5,x_8,x_8$
기계 학습에서 Bootstrap sampling
Bagging이라고 불리는 앙상블 학습 방법은 먼저 모집단에서 Bootstrap sampling을 통해 여러 샘플을 추출합니다. 그런 다음이를 훈련 데이터로 사용하여 여러 예측 모델을 생성하고 이러한 예측 모델을 몇 가지 방법으로 결합하여 다수결, 평균 및 출력을 메타 특징 량으로 사용하여 새로운 예측 모델 구축, etc. .), 예측 정밀도의 향상, 과학습의 회피를 전망할 수 있다.
scikit-learn을 사용한 Bootstrap
'Bootstrap sklearn'이라든지 구그하면 대체로 공식 문서가 맨 위에 나와 sklearn.cross_validation.Bootstrap
(내 환경에서는 원래 sklearn.cross_validation
속에 sklearn.cross_validation
를 찾을 수 없고 import조차 할 수 없었다)
그렇다면 대신 Bootstrap
를 사용하여 Bootstrap sampling을 사용하십시오.
bootstrap.pyfrom sklearn.utils import resample
# [0,1,2,...,9]と[10,11,12,...,19]の生成
data_x = [i for i in range(10)]
data_y = [i+10 for i in range(10)]
# K:再標本化の回数 SIZE:再標本化されたもののサンプルサイズ
K = 10
SIZE = len(data_x)
# bootstrap sampling
for i in range(K):
resampled_data_x, resampled_data_y = resample(data_x,data_y,
n_samples = SIZE)
print("------%d resample ------"% i)
print(resampled_data_x)
print(resampled_data_y)
output------0 resample ------
[4, 6, 0, 9, 7, 5, 0, 5, 3, 3]
[14, 16, 10, 19, 17, 15, 10, 15, 13, 13]
------1 resample ------
[5, 2, 6, 4, 5, 1, 1, 3, 1, 1]
[15, 12, 16, 14, 15, 11, 11, 13, 11, 11]
------2 resample ------
[0, 3, 0, 1, 2, 1, 7, 7, 1, 3]
[10, 13, 10, 11, 12, 11, 17, 17, 11, 13]
------3 resample ------
[1, 8, 1, 0, 2, 8, 3, 8, 4, 0]
[11, 18, 11, 10, 12, 18, 13, 18, 14, 10]
------4 resample ------
[3, 1, 6, 7, 6, 6, 4, 3, 1, 1]
[13, 11, 16, 17, 16, 16, 14, 13, 11, 11]
------5 resample ------
[3, 4, 6, 6, 9, 7, 3, 1, 4, 3]
[13, 14, 16, 16, 19, 17, 13, 11, 14, 13]
------6 resample ------
[6, 7, 1, 3, 6, 4, 8, 9, 9, 9]
[16, 17, 11, 13, 16, 14, 18, 19, 19, 19]
------7 resample ------
[9, 8, 3, 2, 6, 2, 0, 9, 4, 1]
[19, 18, 13, 12, 16, 12, 10, 19, 14, 11]
------8 resample ------
[0, 9, 2, 7, 4, 6, 0, 6, 8, 8]
[10, 19, 12, 17, 14, 16, 10, 16, 18, 18]
------9 resample ------
[5, 9, 9, 1, 3, 7, 7, 3, 6, 3]
[15, 19, 19, 11, 13, 17, 17, 13, 16, 13]
sklearn.utils.resample
메소드는 재 표본화 된 샘플의 샘플 크기를 resample
에 전달해야합니다. (기본값은 입력 데이터 길이 n_samples
)
출력을 확인하면, len(array)
와 data_x
가 대응한 상태에서 재표본화되어 중복이 허용되고 있는 것을 알 수 있다.
참고
scikit-learn data_y
메서드 문서 ( h tps : / / s shiki t ぇ 아 rn. 오 rg/s타 bぇ/모즈ぇs/게네라테 d/skぇ아 rn. 그중 ls. 레사 mpぇ. HTML )
朱鷺의 杜Wiki "바깅"( ht tp // // 코끼리 s 흠뻑 st. rg / 어서 x. php? % 3 % 83 % 90 % 3 % 82 % 3 % 83 % B3 % 3 % 82 % B0 )
Reference
이 문제에 관하여(부트 스트랩 샘플링 (Bootstrap Sampling) 방법과 그 scikit-learn을 이용한 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tjmnmn/items/3aed6fb85f75446f74ca
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
'Bootstrap sklearn'이라든지 구그하면 대체로 공식 문서가 맨 위에 나와
sklearn.cross_validation.Bootstrap
(내 환경에서는 원래 sklearn.cross_validation
속에 sklearn.cross_validation
를 찾을 수 없고 import조차 할 수 없었다)그렇다면 대신
Bootstrap
를 사용하여 Bootstrap sampling을 사용하십시오.bootstrap.py
from sklearn.utils import resample
# [0,1,2,...,9]と[10,11,12,...,19]の生成
data_x = [i for i in range(10)]
data_y = [i+10 for i in range(10)]
# K:再標本化の回数 SIZE:再標本化されたもののサンプルサイズ
K = 10
SIZE = len(data_x)
# bootstrap sampling
for i in range(K):
resampled_data_x, resampled_data_y = resample(data_x,data_y,
n_samples = SIZE)
print("------%d resample ------"% i)
print(resampled_data_x)
print(resampled_data_y)
output
------0 resample ------
[4, 6, 0, 9, 7, 5, 0, 5, 3, 3]
[14, 16, 10, 19, 17, 15, 10, 15, 13, 13]
------1 resample ------
[5, 2, 6, 4, 5, 1, 1, 3, 1, 1]
[15, 12, 16, 14, 15, 11, 11, 13, 11, 11]
------2 resample ------
[0, 3, 0, 1, 2, 1, 7, 7, 1, 3]
[10, 13, 10, 11, 12, 11, 17, 17, 11, 13]
------3 resample ------
[1, 8, 1, 0, 2, 8, 3, 8, 4, 0]
[11, 18, 11, 10, 12, 18, 13, 18, 14, 10]
------4 resample ------
[3, 1, 6, 7, 6, 6, 4, 3, 1, 1]
[13, 11, 16, 17, 16, 16, 14, 13, 11, 11]
------5 resample ------
[3, 4, 6, 6, 9, 7, 3, 1, 4, 3]
[13, 14, 16, 16, 19, 17, 13, 11, 14, 13]
------6 resample ------
[6, 7, 1, 3, 6, 4, 8, 9, 9, 9]
[16, 17, 11, 13, 16, 14, 18, 19, 19, 19]
------7 resample ------
[9, 8, 3, 2, 6, 2, 0, 9, 4, 1]
[19, 18, 13, 12, 16, 12, 10, 19, 14, 11]
------8 resample ------
[0, 9, 2, 7, 4, 6, 0, 6, 8, 8]
[10, 19, 12, 17, 14, 16, 10, 16, 18, 18]
------9 resample ------
[5, 9, 9, 1, 3, 7, 7, 3, 6, 3]
[15, 19, 19, 11, 13, 17, 17, 13, 16, 13]
sklearn.utils.resample
메소드는 재 표본화 된 샘플의 샘플 크기를 resample
에 전달해야합니다. (기본값은 입력 데이터 길이 n_samples
)출력을 확인하면,
len(array)
와 data_x
가 대응한 상태에서 재표본화되어 중복이 허용되고 있는 것을 알 수 있다.참고
scikit-learn
data_y
메서드 문서 ( h tps : / / s shiki t ぇ 아 rn. 오 rg/s타 bぇ/모즈ぇs/게네라테 d/skぇ아 rn. 그중 ls. 레사 mpぇ. HTML )朱鷺의 杜Wiki "바깅"( ht tp // // 코끼리 s 흠뻑 st. rg / 어서 x. php? % 3 % 83 % 90 % 3 % 82 % 3 % 83 % B3 % 3 % 82 % B0 )
Reference
이 문제에 관하여(부트 스트랩 샘플링 (Bootstrap Sampling) 방법과 그 scikit-learn을 이용한 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tjmnmn/items/3aed6fb85f75446f74ca텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)