기계 학습 모델 결합


20

나는 데이터 마이닝 / 기계 학습 등을 처음 사용합니다. 예측을 개선하기 위해 여러 모델과 동일한 모델의 런을 결합하는 몇 가지 방법에 대해 읽었습니다.

몇 가지 논문 (이론과 그리스 문자는 흥미롭고 훌륭하지만 코드와 실제 예제는 짧음)을 읽은 것에 대한 나의 인상은 다음과 같이 가야한다는 것입니다.

모델 ( knn, RF등)을 가져 와서 0과 1 사이의 분류 자 ​​목록을 얻습니다. 내 질문은 이러한 분류 자 ​​목록 각각을 결합하는 방법입니다. 최종 모델에 들어가는 열의 수가 같거나 다른 트릭이 있도록 훈련 세트에서 동일한 모델을 실행합니까?

제안 / 예에 R 코드가 포함되어 있으면 좋을 것입니다.

참고 : 훈련 세트에 100k 라인, 테스트 세트에 70k 및 10 개의 열이있는 데이터 세트를위한 것입니다.

답변:


21

실제로는 "3B"기술 중 하나 인 자루에 넣기, 부스팅 또는 블렌딩으로 요약됩니다.

배깅에서는 객체의 다른 하위 집합에 대해 많은 분류자를 훈련시키고 분류에 대한 회귀 및 투표에 대한 답변을 평균으로 결합합니다 (더 복잡한 상황에는 다른 옵션이 있지만 생략하겠습니다). 투표 분류 / 분산은 개별 분류자가 일반적으로 독립된 것으로 간주되므로 오류 근사치로 해석 될 수 있습니다. RF는 실제로 배깅 앙상블입니다.

부스팅은 더 넓은 방법의 방법이지만, 주된 요점은 전자의 잔차에 대해 다음 분류기를 작성한다는 것입니다. 따라서 예측은 일반적으로 x에 대한 Taylor 계열의 요소 값을 합하여 x의 함수 값을 계산하는 것과 같이 합산하여 결합됩니다.
가장 인기있는 버전은 (Stochastic) Gradient Boosting (수학적 기초가 훌륭함)과 AdaBoost (실제로는 GB의 특정 사례)입니다. 전체적인 관점에서 의사 결정 트리는 사소한 피벗 분류기의 향상입니다.

블렌딩은 분류기의 중첩, 즉 다른 분류기의 예측으로 구성된 정보 시스템에서 하나의 분류기를 실행하는 아이디어입니다. 따라서 매우 가변적 인 방법이며 정의 된 알고리즘은 아닙니다. 많은 객체가 필요할 수 있습니다 (대부분의 경우 "블렌더"분류기는 과도하게 적합하지 않도록 부분 분류기를 작성하는 데 사용되지 않은 일련의 객체에 대해 훈련해야합니다).
부분 분류기의 예측은 블렌더에 의해 예측되는 정보 시스템으로 이들을 통합함으로써 분명히 결합됩니다.


7

"모델 결합"이라는 표현은 모호하지만 제 생각에는 앙상블 학습 방법에 대해 묻는 것입니다. 그들에 대해 배울 수있는 가장 좋은 참고 자료는 아마도 Rich Caruana의 논문 일 것입니다.

http://www.cs.cornell.edu/~caruana/ctp/ct.papers/caruana.icml04.icdm06long.pdf

이 백서에는 실제 코드가 없지만 알고리즘이 명확하게 설명되어 있으므로 원하는 언어로 코딩하는 데 아무런 문제가 없습니다.


2

위의 답변을 사용하여 조금 둘러 본 후 내 문제가 무엇인지 깨달았습니다. 다른 모델의 예측을 동일한 모델에서 예측에 사용했던 것과 동일한 모델로 사용하려고했습니다. 즉, kNN모델을 실행할 때 5 개의 변수가있는 경우 모델 예측으로 새 변수를 추가 kNN하고 임의의 Forest 모델을 실행할 때 6 개의 변수로 모델을 만듭니다. 대신 모델의 결과가 분할되어 별도의 모델로 실행되어야한다는 것을 알았습니다. 나는 다양한 모델 (에서 예측을 만들 것입니다 그래서 knn, RF, svd, 등)를 예측하는 것만큼이나 변수로 예측과 분류를 사용하여 별도의 조합 / 혼합 / 스태킹 모델을 실행합니다.

내 문제 중 일부는 예측을 다른 변수와 결합 할 때 과적 합 또는 다중 공선 성이 있었지만 확실하지 않다고 생각했습니다. 다른 사람이 내가 잘못한 일을 더 잘 이해할 수 있습니다. 어쨌든 모두의 도움에 감사드립니다.

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