로지스틱 회귀 모델 강화


11

Adaboost는 많은 약한 학습자를 결합하여 강력한 학습자를 형성하는 앙상블 방법입니다. 내가 읽은 adaboost의 모든 예는 약한 학습자로 사용 의사 결정 그루터기 / 트리를 읽었습니다. 다른 약한 학습자를 adaboost에서 사용할 수 있습니까? 예를 들어, 로지스틱 회귀 모델을 높이기 위해 adaboost (일반적으로 boosting)를 구현하는 방법은 무엇입니까?

분류 트리와 로지스틱 회귀 분석의 한 가지 주요 차이점은 전자가 클래스 (-1,1)를 출력하는 반면 로지스틱 회귀 분석은 프로브를 출력한다는 것입니다. 한 가지 아이디어는 기능 세트에서 최상의 기능 X를 선택하고 임계 값 (0.5?)을 선택하여 프로브를 클래스로 변환 한 다음 가중 로지스틱 회귀 분석을 사용하여 다음 기능 등을 찾는 것입니다.

그러나 확률을 산출하는 의사 결정 그루터기와 다른 약한 학습자를 향상시키는 일반적인 알고리즘이 있다고 생각합니다. 나는 Logitboost가 내 질문에 대한 답이라고 믿었지만 "Additive Logistic Regression"논문을 읽으려고 노력하고 중간에 갇혔습니다.

답변:


7

예측 변수 (기본 학습자 (예 : 그루터기 등)를 통한 처리)와 부스팅의 손실 함수 처리를 혼동하지 마십시오. AdaBoost는 오 분류 오류를 최소화하기 위해 기본 학습자의 조합을 찾는 것으로 생각할 수 있지만 인용 한 "Additive Logistic Regression" 논문은 지수 손실 함수를 최소화하기 위해 공식화 할 수 있음을 보여줍니다. 이러한 통찰력은 그래디언트 부스팅을 통해 차별화 가능한 손실 기능을 최소화하는 광범위한 기계 학습 문제에 대한 부스팅 접근 방식을 열었습니다 . 각 단계에 맞는 잔차 는 손실 함수의 기울기에서 계산 된 의사 잔차 입니다. 예측 변수가 이진 스텀프로 모델링 되더라도 모형의 출력이 이진 선택 일 필요는 없습니다.

또 다른 대답에서 알 수 있듯이 선형 기본 학습자는 부스팅에는 효과가 없지만 선형 기본 학습자는 표준 또는 로지스틱 의미에서 "부스트 회귀"에 필요하지 않습니다. 결정적으로 비선형 그루터기를 느린 기본 학습자로 결합하여 적절한 손실 기능을 최소화 할 수 있습니다. 예측 변수의 계수에서 선형 인 표준 회귀 모델과는 거리가 멀지 만 여전히 "부스트 회귀"라고합니다. 손실 함수는 선형 모델 및 스텀프 또는 트리가 예측 변수 인 "부스트 회귀"모델에 대해 기능적으로 동일 할 수 있습니다. ISLR의 8 장 에서이 점을 분명히 알 수 있습니다.

따라서 부스트 회귀에 해당하는 로지스틱 회귀를 원한다면 기본 학습자보다는 손실 함수에 중점을 두십시오. 그것이 인용 한 논문의 LogitBoost 접근 방식은 인접 해있는 암시적인 지수 손실보다는 로그 손실을 최소화하는 것입니다. Wikipedia AdaBoost 페이지 는이 차이점을 설명합니다.

이 사이트의 많은 참가자들은 로그-홀수 / 확률 기반 예측이 엄격한 예 / 아니오 분류 예측보다 매우 바람직하다고 주장합니다. 전자는 일반적으로 가양 성 예측과가 음성 예측의 추가 비용 사이에 다른 상충 관계를 허용하므로 더 그렇습니다. . 관련 질문에 대한 답변에서 알 수 있듯이 AdaBoost에서 파생 된 강력한 분류기에서 예상 확률을 얻을 수 있지만 LogitBoost는 더 나은 성능을 제공 할 수 있습니다.

분류를위한 그래디언트 부스팅 구현은 기본 확률에 대한 정보를 제공 할 수 있습니다. 예를 들어, 그라디언트 부스팅 에 대한이 페이지 는 sklearn코드가 로지스틱 회귀에 대한 이탈 손실과 AdaBoost에 대한 지수 손실 사이에서 선택 하는 방법 과 그라디언트 부스팅 모델의 확률을 예측하는 함수를 문서화 하는 방법을 보여줍니다 .


대답 해 주셔서 감사합니다. 부스팅의 맥락에서 로지스틱 회귀의 기능을 달성하기 위해 올바르게 이해한다면, 로스트 손실 함수와 약한 학습자 분류 트리와 함께 그라디언트 부스트 알고리즘을 사용하는 것입니까? 그러나 분류 트리는 {-1,1}을 출력하고 로지스틱 회귀는 확률을 출력합니다. 또한 분류 트리는 로지스틱 손실 대신 gini 인덱스를 최소화하려고합니다. 나는 근본적인 것을 놓친다. 물류 손실을 어디로 둘 것인가? 모델에서 프로브를 출력하는 방법은 무엇입니까?
gnikol

회귀 트리가 선형 회귀와 동일한 손실 함수 인 mse를 최소화하기 때문에 y가 연속적인 개념을 이해합니다. 따라서 회귀 트리를 잔차에 반복적으로 맞 춥니 다. 그러나 분류의 맥락에서 분류 트리는 gini 지수 또는 이와 유사한 것을 최소화합니다. 그것은 로지스틱 회귀 또는 로지스틱 회귀의 손실 함수와 어떻게 관련되어 있습니까?
gnikol

@gnikol 나는 당신과 다른 독자 모두에게 이것을 분명히하기 위해 내 대답을 수정했습니다. 그래디언트 부스팅에 적합한 잔차는 손실 함수의 그래디언트로부터 계산 된 의사 잔차입니다. 손실 기능의 선택은 AdaBoost와 LogitBoost를 구별하는 것입니다. 어떤 경우 든 강력한 학습자로부터 확률을 얻을 수 있습니다. 마지막 단락에서 구현의 한 예에 대한 링크를 제공했습니다.
EdM

5

사실 우리는 회귀 사건에 대해 매우 비슷한 질문을합니다. 그리고 우리는 @Matthew Drury의 매우 좋은 답변을 받았습니다

선형 회귀에 대한 그라디언트 부스팅-왜 작동하지 않습니까?

로지스틱 회귀와 같은 선형 모형은 부스팅에 적합하지 않습니다. 두 개의 선형 모델을 함께 추가하면 다른 선형 모델이 생성되기 때문입니다. 반면에 두 개의 의사 결정 그루터기 나 나무를 추가하면 더 이상 나무가 아닌 더 복잡하고 흥미로운 모델이됩니다.

자세한 내용은이 게시물에서 확인할 수 있습니다. 이 링크에서 두 개의 선형 모델을 추가하는 것이 흥미롭지 않은 이유를 찾았습니다. 그리고 반복에 의한 의사 결정 그루터기 반복에 대한 강화 효과를 보여줍니다.

선형 기본 학습자는 부스팅에서 어떻게 작동합니까? 그리고 xgboost 라이브러리에서 어떻게 작동합니까?

의사 결정 트리 / 스텀프는 로지스틱 회귀와 유사한 "선형 모델"이 아닙니다.

자세한 내용은이 게시물을 참조하십시오

의사 결정이 선형 모델입니까?

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.