머신러닝에 대한 예측 구간

머신러닝 관점의 예측은 해당 예측의 불확실성을 숨깁니다.

예측 구간은 예측의 불확실성을 정량화하고 전달하는 방법을 제공합니다. 이는 대신 평균 또는 표준 편차와 같은 모집단 모수의 불확실성을 정량화하려는 신뢰 구간과 다릅니다. 예측 구간은 단일 특정 결과에 대한 불확실성을 설명합니다.

이 자습서에서는 예측 구간과 간단한 선형 회귀 모델에 대해 예측구간을 계산하는 방법을 알아봅니다.

이 자습서를 완료하면 다음을 알 수 있습니다.

  • 예측 구간은 단일 지점 예측의 불확실성을 정량화합니다.
  • 이 예측 구간은 간단한 모델의 경우 분석적으로 추정할 수 있지만 비선형 머신러닝 모델의 경우 더 어렵습니다.
  • 단순 선형 회귀 모델에 대한 예측 구간을 계산하는 방법

튜토리얼 개요

이 튜토리얼은 다음과 같이 다섯 부분으로 나뉩니다.

  1. 포인트 추정에 어떤 문제가 있습니까?
  2. 예측 구간이란 무엇입니까?
  3. 예측 구간을 계산하는 방법
  4. 선형 회귀에 대한 예측 구간
  5. 작업 예

예측 구간을 계산하는 이유는 무엇입니까?

예측 모델링에서 예측(prediction) 또는 예보(forecast)는 일부 입력 변수가 주어진 단일 결과 값입니다.

예를 들어:

여기서 yhat은 주어진 입력 데이터 X에 대해 훈련된 모델이 수행한 예상 결과 또는 예측입니다.

이것은 포인트 예측입니다.

정의에 따르면 추정 또는 근사치이며 약간의 불확실성이 포함되어 있습니다.

불확실성은 모델 자체의 오류와 입력 데이터의 노이즈에서 비롯됩니다. 모델은 입력 변수와 출력 변수 간의 관계에 대한 근사치입니다.

모델을 선택하고 조정하는 데 사용되는 프로세스를 고려할 때, 사용 가능한 정보가 주어지면 최상의 근사치를 만들 수 있지만 여전히 오류가 발생합니다. 도메인의 데이터는 입력 변수와 출력 변수 간의 기본 관계와 알 수 없는 관계를 모호하게 만듭니다. 이렇게 하면 모델을 피팅하는 것이 어려워지고 피팅 모델이 예측을 수행하는 것도 어려워집니다.

이 두 가지 주요 오류 원인을 감안할 때 예측 모델의 포인트 예측은 예측의 실제 불확실성을 설명하기에 충분하지 않습니다.


예측 구간이란 무엇입니까?

예측 구간은 예측에 대한 불확실성의 정량화입니다.

결과 변수의 추정치에 대한 확률적 상한과 하한을 제공합니다.

단일 미래 관측치에 대한 예측 구간은 지정된 신뢰 수준으로 분포에서 랜덤하게 선택된 미래 관측치를 포함하는 구간입니다.

— 27페이지, 통계 간격: 실무자 및 연구자를 위한 가이드, 2017.

예측 구간은 수량이 예측되는 회귀 모델로 예측 또는 예보를 수행할 때 가장 일반적으로 사용됩니다.

예측 구간 표시의 예는 다음과 같습니다.

‘x’가 주어진 ‘y’의 예측이 주어지면 ‘a’에서 ‘b’까지의 범위가 실제 결과를 포함할 확률은 95%입니다.

예측 구간은 모델에 의해 만들어진 예측을 둘러싸고 최선의 경우 실제 결과의 범위를 포함합니다.

아래 다이어그램은 예측, 예측 구간 및 실제 결과 간의 관계를 시각적으로 이해하는 데 도움이 됩니다.

예측, 실제 값 및 예측 구간 간의 관계

예측, 실제 값 및 예측 구간 간의 관계.
“모델 출력에 대한 예측 구간 추정을 위한 머신러닝 접근법”, 2006에서 가져옴.

예측 구간은 신뢰 구간과 다릅니다.

신뢰 구간은 평균 또는 표준 편차와 같은 추정된 모집단 변수에 대한 불확실성을 수량화합니다. 반면 예측 구간은 모집단에서 추정된 단일 관측치의 불확실성을 정량화합니다.

예측 모델링에서 신뢰 구간은 모델의 추정된 기술의 불확실성을 정량화하는 데 사용할 수 있는 반면, 예측 구간은 단일 예측의 불확실성을 정량화하는 데 사용할 수 있습니다.

예측 구간은 예측 중인 출력 변수의 신뢰 구간과 분산을 고려해야 하므로 신뢰 구간보다 큰 경우가 많습니다.

예측 구간은 환원 불가능한 오차인 e [error]와 관련된 불확실성을 설명하기 때문에 항상 신뢰 구간보다 넓습니다.

— 페이지 103, 통계 학습 소개: R의 응용 프로그램과 함께, 2013.


예측 구간을 계산하는 방법

예측 구간은 모형의 추정된 분산과 결과 변수의 분산의 조합으로 계산됩니다.

예측 구간은 설명하기 쉽지만 실제로는 계산하기 어렵습니다.

선형 회귀와 같은 간단한 경우에는 예측 구간을 직접 추정할 수 있습니다.

인공 신경망과 같은 비선형 회귀 알고리즘의 경우 훨씬 더 어렵고 특수 기술의 선택과 구현이 필요합니다. 부트스트랩 리샘플링 방법과 같은 일반적인 기술을 사용할 수 있지만 계산 비용이 많이 듭니다.

논문 “신경망 기반 예측 간격 및 새로운 발전에 대한 포괄적인 검토“는 신경망의 맥락에서 비선형 모델의 예측 간격에 대한 합리적으로 최근의 연구를 제공합니다. 다음 목록에는 비선형 머신러닝 모델의 불확실성 예측에 사용할 수 있는 몇 가지 방법이 요약되어 있습니다.

  • 델타 방법, 비선형 회귀 분야에서.
  • 베이지안 모델링 및 통계의 베이지안 방법.
  • 추정된 통계량을 사용한 평균-분산 추정 방법.
  • 부트 스트랩 방법, 데이터 리샘플링을 사용하고 모델의 앙상블을 개발합니다.

다음 섹션에서 작업된 예를 사용하여 예측 구간 계산을 구체적으로 만들 수 있습니다.


 

선형 회귀에 대한 예측 구간

선형 회귀는 출력 변수를 계산하기 위해 입력의 선형 조합을 설명하는 모델입니다.

예를 들어, 추정된 선형 회귀 모델은 다음과 같이 작성될 수 있습니다.

여기서 yhat은 예측이고, b0 및 b1은 훈련 데이터에서 추정된 모델의 계수이고, x는 입력 변수입니다.

우리는 계수 b0와 b1의 실제 값을 모릅니다. 또한 x또는 y에 대한 평균 및 표준 편차와 같은 실제 모집단 모수를 알지 못합니다. 이러한 모든 요소를 추정해야 하므로 예측을 하기 위해 모델 사용에 불확실성이 발생합니다.

x와 y의 분포와 잔차라고 하는 모델에 의한 예측 오류와 같은 몇 가지 가정을 할 수 있습니다.

yhat 주변의 예측 구간은 다음과 같이 계산할 수 있습니다.

여기서 yhat은 예측 값이고, z는 가우스 분포로부터의 표준 편차의 수(예: 95% 구간의 경우 1.96)이고, 시그마는 예측 분포의 표준 편차입니다.

우리는 실제로 알지 못합니다. 다음과 같이 예측된 표준 편차의 편향되지 않은 추정치를 계산할 수 있습니다(모델 출력에 대한 예측 구간 추정을 위한 머신러닝 접근 방식에서 가져옴).

여기서 stdev는 예측 분포에 대한 표준 편차의 편향되지 않은 추정치이고, n은 이루어진 총 예측치이고,e(i)는 i번째 예측치와 실제 값의 차이입니다.


 

작업 예

선형 회귀 예측 구간의 경우를 작업된 예를 통해 구체적으로 만들어 봅시다.

먼저, 출력 변수(y)가 가우스 잡음이 있는 입력 변수(x)에 의존하는 간단한 2변수 데이터 세트를 정의해 보겠습니다.

아래 예제에서는 이 예제에 사용할 데이터 세트를 정의합니다.

먼저 예제를 실행하면 두 변수의 평균과 표준 편차가 인쇄됩니다.

그런 다음 데이터 세트의 플롯이 생성됩니다.

관계의 잡음 또는 무작위 오류를 강조하는 점의 확산과 변수 간의 명확한 선형 관계를 볼 수 있습니다.

관련 변수의 산점도

관련 변수의 산점도

다음으로, 입력 변수 x가 주어지면 y변수를 예측하는 간단한 선형 회귀를 개발할 수 있습니다. linregress() SciPy 함수를 사용하여 모델을 피팅하고 모델에 대한 b0 및 b1계수를 반환할 수 있습니다.

계수를 사용하여 각 입력 변수에 대해 yhat이라는 예측된 y값을 계산할 수 있습니다. 그림의 점은 학습된 관계를 나타내는 선을 형성합니다.

전체 예제는 다음과 같습니다.

예제를 실행하면 모형이 적합되고 계수가 인쇄됩니다.

그런 다음 계수를 데이터 세트의 입력과 함께 사용하여 예측을 수행합니다. 결과 입력값과 예측된y-값은 데이터 세트의 산점도 위에 선으로 그려집니다.

모델이 데이터 세트의 기본 관계를 학습했음을 명확하게 알 수 있습니다.

단순 선형 회귀 모델을 위한 선이 있는 데이터 세트의 산점도

단순 선형 회귀 모델을 위한 선이 있는 데이터 세트의 산점도

이제 간단한 선형 회귀 모델로 예측을 수행하고 예측 구간을 추가할 준비가 되었습니다.

이전과 같이 모델을 맞춥니다. 이번에는 예측 구간을 보여주기 위해 데이터 세트에서 하나의 샘플을 가져옵니다. 입력을 사용하여 예측을 수행하고, 예측에 대한 예측 구간을 계산하고, 예측 및 구간을 알려진 예상값과 비교합니다.

먼저 입력, 예측 및 예상값을 정의해 보겠습니다.

다음으로 예측 방향의 표준 편차를 추정 할 수 있습니다.

다음과 같이 NumPy 배열을 사용하여 직접 계산할 수 있습니다.

다음으로 선택한 입력에 대한 예측 구간을 계산할 수 있습니다.

95%의 유의 수준인1.96 표준 편차를 사용합니다.

구간이 계산되면 사용자에게 예측의 범위를 요약할 수 있습니다.

우리는 이 모든 것을 하나로 묶을 수 있습니다. 전체 예제는 다음과 같습니다.

예제를 실행하면 yhat표준 편차가 추정된 다음 예측 구간이 계산됩니다.

계산되면 주어진 입력 변수에 대한 예측 간격이 사용자에게 표시됩니다. 우리는 이 예를 고안했기 때문에 진정한 결과를 알고 있으며 이를 보여줍니다. 이 경우 95% 예측 구간이 실제 예상 값을 포함함을 알 수 있습니다.

원시 데이터 세트를 산점도, 데이터 세트에 대한 예측을 빨간색 선으로, 예측 및 예측 간격을 각각 검은색 점과 선으로 표시하는 플롯도 생성됩니다.

선형 모델과 예측 구간이 있는 데이터 세트의 산점도

선형 모델과 예측 구간이 있는 데이터 세트의 산점도


확장

이 섹션에는 탐색할 수 있는 자습서를 확장하기 위한 몇 가지 아이디어가 나열되어 있습니다.

  • 공차, 신뢰도 및 예측 구간 간의 차이를 요약합니다.
  • 표준 머신러닝 데이터 세트에 대한 선형 회귀 모델을 개발하고 작은 테스트 세트에 대한 예측 구간을 계산합니다.
  • 하나의 비선형 예측 구간 방법이 어떻게 작동하는지 자세히 설명하십시오.

이러한 확장 기능을 탐색하면 알고 싶습니다.

추가 정보

이 섹션에서는 더 자세히 알아보려는 경우 주제에 대한 더 많은 리소스를 제공합니다.


게시물


논문

API

기사


요약

이 자습서에서는 예측 구간과 간단한 선형 회귀 모델에 대해 예측 구간을 계산하는 방법을 알아보았습니다.

특히 다음 내용을 배웠습니다.

  • 예측 구간은 단일 지점 예측의 불확실성을 정량화합니다.
  • 이러한 예측 구간은 간단한 모델의 경우 분석적으로 추정할 수 있지만 비선형 머신러닝 모델의 경우 더 어렵습니다.
  • 단순 선형 회귀 모델에 대한 예측 구간을 계산하는 방법
네피리티
No Comments

Sorry, the comment form is closed at this time.