머신 러닝 알고리즘의 예측 구간


14

아래에 설명 된 프로세스가 유효하고 수용 가능하며 정당화가 가능한지 알고 싶습니다.

아이디어 :지도 학습 알고리즘은 데이터에 대한 기본 구조 / 분포를 가정하지 않습니다. 하루가 끝나면 포인트 견적을 출력합니다. 어떻게 든 추정치의 불확실성을 정량화하기를 희망합니다. 이제 ML 모델 구축 프로세스는 본질적으로 임의적입니다 (예 : 하이퍼 파라미터 튜닝을위한 교차 검증 및 확률 론적 GBM의 서브 샘플링을위한 샘플링에서). 내 (순진한) 아이디어는 예측의 분포를 생각해 내기 위해이 과정을 반복해서 실행하는 것이며, 예측의 불확실성에 대해 희망적으로 진술 할 수 있습니다.

중요한 경우, 내가 작업하는 데이터 세트는 일반적으로 매우 작습니다 (~ 200 행).

이게 말이 돼?

명확히하기 위해, 나는 실제로 전통적인 의미에서 데이터를 부트 스트랩하지 않습니다 (즉, 데이터를 리샘플링하지 않습니다). 모든 반복에서 동일한 데이터 세트가 사용되며 xval 및 확률 GBM의 임의성을 활용합니다.


2
실제로 신뢰 구간이 아닌 예측 구간을 원하는 경우 모형 예측의 변동이 아니라 모형에 대한 관측치 변동을 고려해야합니다.
Glen_b -Reinstate Monica

@Glen_b는 OP에 설명 된 접근법이나 부스트 버전으로 인해 신뢰 구간을 얻을 수 있습니까? 데이터에 대한 기본 분포를 지정하지 않으면 예측 간격이 불가능하다고 생각하기 시작하므로 다음에 질문을 바꿔야 할 수도 있습니다.
kevinykuo

당신은 그냥 당신이 질문에 설명하는 일을하면서 ... 예측 간격을 부트 스트랩 할 수 있습니다
Glen_b -Reinstate 모니카

@ Glen_b 당신은 대답에서 그렇게하는 방법을 설명 할 수 있습니까?
kevinykuo

1
나는 여기에 충분한 대답을 줄 수 없었다. 그러나 다중 회귀 및 GLM에 대한 장에서 Davison & Hinkley (1997)를 참조하면 필요할 수있는 일의 의미를 알 수 있습니다. 예를 들어 다중 회귀 분석의 경우, 예측 불확실성 (모수 불확실성으로 인한 예측 변동)의 부트 스트랩 추정을 얻기 위해 잔차가 재 샘플링되고 프로세스 변동을 처리하기 위해 다시 샘플링됩니다. 적절한 체계를 사용하면 첫 번째 단계에서 모델 사양 불확실성을 처리 할 수도 있지만 프로세스 변동성에 대한 두 번째 단계를 생략 할 수 없습니다.
Glen_b -Reinstate Monica

답변:


5

나에게 그것은 예측의 불확실성을 정량화하는 것만 큼 좋은 접근법으로 보인다. 모든 부트 스트랩 재 샘플에서 처음부터 모든 모델링 단계 (매개 변수 튜닝이되는 GBM의 경우)를 반복해야합니다. 순위의 불확실성을 정량화하기 위해 중요도 순위를 부트 스트랩하는 것도 가치가 있습니다.

간혹 간격이 실제 예측을 포함하지 않는 것으로 나타났습니다 (특히 확률을 추정 할 때). 각 터미널 노드에서 최소 관측 값을 늘리면 적어도 내가 작업 한 데이터에서이를 해결합니다.

컨 포멀 예측 은 새로운 데이터에 대한 예측의 신뢰도를 정량화하는 데 유용한 접근법으로 보입니다. 나는 지금까지 표면을 긁어 냈고 다른 사람들은 아마도 그것에 대한 의견을 제시하기에 더 적합 할 것입니다.

GBM 예측 간격을 찾는 것에 대한 이 게시물 에 대한 회신에는 약간의 조잡한 R 코드가 있습니다.

도움이 되었기를 바랍니다!


2

예측에 대한 불확실성을 '바이어스'와 '분산'항으로 나눌 수 있습니다. 바이어스 항은 모형의 잘못된 사양을 나타냅니다. 비선형 함수에 선형 모형을 적합하면 항상 약간의 오차가 발생합니다. '변이'항은 모형 모수 추정치의 오차를 나타냅니다. 편견을 추정 할 수는 없지만 불확실성의 분산 부분을 설명합니다.

@ErikL에 의해 제안 된 컨 포멀 예측은 부트 스트랩과 매우 유사한 아이디어를 채택하는 이론적으로 정당화 된 접근법입니다. 새로운 점을 사용하여 모델을 재구성하는 컨 포멀 예측은 바이어스와 분산을 모두 고려하지만 회귀에는 상당한 계산 리소스가 필요합니다. 비 규격 라이브러리를 사용하여 파이썬으로 시도해 볼 수 있습니다 .


1

아니요, 나쁜 생각 인 것 같습니다. 우선 Alexey가 지적했듯이 바이어스와 편차가 있습니다. 최상의 매개 변수를 선택하더라도 분산을 피할 수 없습니다. 당신의 방법은 그것을 해결하려고조차하지 않습니다. 또 다른 매우 중요한 문제가 있습니다. 모델 오류의 일부 또는 대부분이 모델의 고유 한 랜덤 성이 아니라 데이터에 있다는 것입니다. (평행 선형 회귀와 같은 일부 모델은 전혀 무작위가 아니며 임의 모델의 경우 임의의 정도는 모델마다 다릅니다.)

간단한 시뮬레이션 데이터와 아는 모델에서 접근 방식을 테스트하는 것이 좋습니다. 필자가 설명한 이유로 인해 추정 오류가 실제 오류보다 훨씬 작을 것입니다 (또는 분포가 훨씬 좁을 것입니다).

오차 분포를 추정하기 위해 오래된 교차 검증을 사용할 수 있습니다.


0

지금이 문제에 대해 생각하고 있습니다. 내 결과는 다음과 같습니다.

(1) 델타 방법
(2) 부트 스트랩 리샘플링
(3) 베이지안 방법
(4) 평균 편차 추정 (MVE)

이 아이디어는 예측 변수의 두 가지 원인, 모델 모수 추정치의 불확실성 및 복구 할 수없는 오차를 추정하려고합니다.

다음은 몇 가지 참조입니다.

모델 출력을위한 예측 간격 추정을위한 머신 러닝 접근법, Durga L. Shrestha, Dimitri P. Solomatine, 2006
신경망 모델에 대한 일부 오차 추정값 비교, Robert Tibshirani, 1995
신경망 기반 예측 간격에 대한 포괄적 검토 및 새로운 기능 진보, Abbas khosravi, Doug Creighton, 2011

이것이 도움이되고 위의 내용 중 하나가 부적절하다는 것을 알려주십시오. 다른 사람들의 의견을 더 듣고 싶습니다.


1
이 게시물이 원래 질문을 어떻게 다루는 지 설명해 주시겠습니까?
whuber

제목은 'PI for ML algorithms'이며 @kevinykuo는 'bootstraping'방식이 작동하는지 묻습니다. 신경망에 PI에 사용 된 일부 방법에 대한 몇 가지 참조를 가리키고 있습니다.
데모
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.