기울기 부스팅 회귀를 위한 예측 구간

Beginner

This tutorial is from open-source community. Access the source code

소개

이 실험은 scikit-learn 을 사용하여 사분위수 회귀를 통해 예측 구간을 만드는 방법을 보여줍니다. 회귀 문제에 대한 합성 데이터를 생성하고, 로그정규 분포를 사용하여 대상의 관측치를 생성합니다. 그런 다음 데이터를 학습 및 테스트 데이터 세트로 분할하고, 비선형 사분위수 및 최소 제곱 회귀자를 맞추고, [0, 10] 범위에 걸쳐 균등하게 간격을 둔 평가 세트의 입력 값을 생성합니다. 예측 중앙값과 예측 평균을 비교하고, 오차 지표를 분석하고, 신뢰 구간을 보정합니다. 마지막으로 사분위수 회귀자의 하이퍼파라미터를 조정합니다.

VM 팁

VM 시작이 완료되면 왼쪽 상단 모서리를 클릭하여 Notebook 탭으로 전환하여 연습을 위한 Jupyter Notebook에 접근할 수 있습니다.

때때로 Jupyter Notebook 이 완전히 로드되기까지 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 유효성 검사를 자동화할 수 없습니다.

학습 중 문제가 발생하면 Labby 에 문의하십시오. 세션 후 피드백을 제공하면 문제를 신속하게 해결해 드리겠습니다.

합성 데이터 생성

회귀 문제에 대한 합성 데이터를 생성하기 위해 함수를 균일하게 샘플링된 랜덤 입력에 적용합니다. 문제의 흥미를 높이기 위해 대상 y 의 관측치를 함수 f 에 의해 계산된 결정론적 항과 중심 로그정규 분포를 따르는 랜덤 노이즈 항의 합으로 생성합니다. 로그정규 분포는 비대칭적이고 꼬리가 깁니다. 큰 이상치를 관찰하는 것은 가능하지만 작은 이상치를 관찰하는 것은 불가능합니다.

데이터를 학습 및 테스트 데이터셋으로 분할

데이터를 학습 및 테스트 데이터셋으로 분할합니다.

비선형 분위수 및 최소제곱 회귀자를 학습

분위수 손실과 alpha=0.05, 0.5, 0.95 로 학습된 그래디언트 부스팅 모델을 적합합니다. alpha=0.05 와 alpha=0.95 에 대해 얻은 모델은 90% 신뢰 구간을 생성합니다. alpha=0.5 로 학습된 모델은 중앙값 회귀를 생성합니다.

균등 간격의 입력값 평가 집합 생성

[0, 10] 범위에 걸쳐 균등 간격의 입력값 평가 집합을 생성합니다.

실제 조건부 평균 함수 f 플롯

실제 조건부 평균 함수 f, 조건부 평균의 예측값 (손실은 제곱 오차), 조건부 중앙값 및 조건부 90% 구간 (5 번째에서 95 번째 조건부 백분위수까지) 을 플롯합니다.

오차 지표 분석

훈련 데이터셋에서 mean_squared_error 및 mean_pinball_loss 지표를 사용하여 모델을 평가합니다. 한 열에는 동일한 지표로 평가된 모든 모델이 표시됩니다.

범위 회귀자의 하이퍼파라미터 조정

5 번째 백분위수의 새로운 회귀자의 하이퍼파라미터를 조정합니다. alpha=0.05 인 pinball 손실에 대한 교차 검증을 통해 최적의 모델 매개변수를 선택합니다. 그런 다음 95 번째 백분위수 회귀자의 하이퍼파라미터를 조정합니다.

요약

이 실험에서는 scikit-learn 을 사용하여 사분위수 회귀를 활용하여 예측 구간을 만드는 방법을 보여줍니다. 회귀 문제에 대한 합성 데이터를 생성하고, 함수를 적용하여 로그정규 분포를 사용하여 대상의 관측치를 생성했습니다. 데이터를 훈련 및 테스트 데이터셋으로 분할하고, 비선형 사분위수 및 최소 제곱 회귀자를 맞추고, [0, 10] 범위에 걸쳐 균등하게 간격을 둔 입력 값의 평가 집합을 생성했습니다. 예측 중앙값과 예측 평균을 비교하고, 오차 지표를 분석하고, 신뢰 구간을 보정했습니다. 마지막으로 사분위수 회귀자의 하이퍼파라미터를 조정했습니다.