2

Я выполняю задачу по классификации текста (7000 текстов, равномерно распределенных по 10 меток). И исследуя SVM и и логистическая регрессияКак ансамбль SVM и логистическая регрессия с python

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) 

я получил два, score1 точности и score2 я думаю, смогу ли я улучшить свою точность путем разработки ансамбля системы, объединяющей выходы двух классификаторов выше. Я знаю знания на ensemble сам, и я знаю, что есть bagging,boosting,and stacking. Однако я не знаю, как использовать оценки, предсказанные из моей SVM и логистической регрессии, в 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) 

Также имейте в виду, что классификаторы должны быть достаточно разнообразными, чтобы обеспечить хороший результат комбинации.

Если у вас было меньше функций, я бы сказал, что вы должны проверить некоторый выбор динамического классификатора/ансамбля (также предоставленный в варево), но поскольку у вас, вероятно, много функций, эвклидово расстояние, вероятно, не имеет смысла, чтобы получить область компетентности каждого классификатора. Лучше всего проверить вручную, какие типы меток каждый классификатор имеет тенденцию к правильному использованию на основе матрицы путаницы.

Смежные вопросы