2

텍스트 분류 작업 (10 개의 레이블로 균등하게 분배 된 7000 개의 텍스트)을 수행하고 있습니다. 그리고에 의해 SVM을 탐구하고 및 로지스틱 회귀파이썬으로 SVM과 로지스틱 회귀를 앙상블하는 방법

clf1 = svm.LinearSVC() 
clf1.fit(X, y) 
clf1.predict(X_test) 
score1 = clf1.score(X_test,y_true) 

clf2 = linear_model.LogisticRegression() 
clf2.fit(X, y) 
clf2.predict(X_test) 
score2 = clf2.score(X_test,y_true) 

내가 가지고 두 정확도, score1score2 나는 위의 두 분류의 출력을 결합 앙상블 시스템을 개발하여 내 정확성을 향상시킬 수 있는지 생각한다. 나는 ensemble에 대한 지식을 배웠고 bagging,boosting,and stacking이 있다는 것을 알고 있습니다. 그러나 SVM 및 Logistic Regression에서 예측 한 점수를 사용하는 방법을 모르겠다 (ensemble). 누구든지 내게 아이디어를 주거나 예제 코드를 보여줄 수 있습니까?

답변

0

확률을 곱하거나 다른 조합 규칙을 사용할 수 있습니다.

좀 더 일반적인 방법으로 (여러 가지 규칙을 시도하십시오) brew을 사용할 수 있습니다.

from brew.base import Ensemble 
from brew.base import EnsembleClassifier 
from brew.combination.combiner import Combiner 

# create your Ensemble 
clfs = [clf1, clf2] 
ens = Ensemble(classifiers=clfs) 

# Since you have only 2 classifiers 'majority_vote' is note an option, 
# rule = ['mean', 'majority_vote', 'max', 'min', 'median'] 
comb = Combiner(rule='mean') 

# now create your ensemble classifier 
ensemble_clf = EnsembleClassifier(ensemble=ens, combiner=comb) 
ensemble_clf.predict(X) 

또한 분류기는 좋은 조합 결과를 제공 할 정도로 다양해야합니다.

기능 수가 적 으면 동적 분류기/앙상블 선택 (브루 잉에서도 제공됨)을 체크 아웃해야하지만 많은 기능을 가지고 있기 때문에 유클리드 거리가 아마 각 분류 자의 능력. 가장 좋은 방법은 각 분류 기호가 혼동 행렬을 기반으로 올바른 경향이있는 레이블을 손으로 체크 아웃하는 것입니다.

관련 문제