2015-01-17 3 views
2

나는 scikit-learn RandomForestClassifier를 사용하여 주어진 사전 예제의 확률을 물론 사전 훈련 후에 클래스 세트에 속하게하려고합니다.전체 훈련 예제를 사용하여 sklearn의 클래스 확률을 계산하는 방법 RandomForest

내가 그

로를 계산, 나는 predict_proba 방법을 사용하여 클래스의 확률을 얻을 수 있습니다 알고 [...] 평균은 숲에서 나무의 클래스 확률을 예측했다. this question에서

이 언급된다. 하나의 나무에 의해 반환

확률은 잎의 히스토그램 샘플 토지에 정규화 된 클래스에게 있습니다

을 지금, 나는 ' 확률 추정에 관한 몇 가지 논문을 읽었으며 사소한 해결책이 없다는 것을 깨달았습니다. Estimating Class Probabilities in Random Forests (Böstrom)에 따르면

을 모두 나무의 성장 및 확률을 추정하기 위해 동일한 예를 사용하여, [...] 필연적으로 순수한 (따라서 소) 추정을 초래할 것이다하는 설정

그리고 이것은 나쁘다. 이 솔루션은 트리를 성장시키는 데 사용 된 부트 스트랩 샘플의 예제 만 사용하는 대신 교육 세트의 모든 예제를 사용하는 것으로 나타납니다.

Scikit-learn은 각 클래스의 확률 계산을 계산하기 위해 각 트리에 대한 부트 스트랩 샘플 만 사용합니다. 맞습니까? 누군가가 클래스 확률을 RandomForest의 전체 트레이닝 세트에서 얻는 방법을 진행하는 방법에 대한 지침이 있습니까?

하위 클래스에 클래스 확률을 할당하지 않은 서브 클래 싱이 필요하다고 가정하고 전체 트레이닝 세트를 사용하여 RandomForest 분류 자에서 할당 할 프로 시저를 가정합니다.

답변

2

Scikit-learn은 각 클래스의 확률 추정치를 계산하기 위해 각 트리에 대한 부트 스트랩 샘플 만 사용합니다. 맞습니까?

아니요, 샘플 내 부품 만 사용하므로 매우 교정 된 확률 출력 (이 문서에서 제안한 것 같습니다)을 제공하지 않습니다.

샘플 밖의 추정치를 사용하면 더 나은 확률 추정치를 얻을 수 있으며 현재 코드 기반에서도 쉽게 수행 할 수 있습니다. 어쩌면 교정 방법을 사후 처리 (가방 외부 샘플 사용)로 사용하는 것이 더 나을 것입니다.

아무튼, 원하는 것은 달성하려는 것입니다.

관련 문제