簡體   English   中英

如何使用python集成SVM和Logistic回歸

[英]How to ensemble SVM and Logistic Regression with python

我正在執行文本分類任務(7000個文本由10個標簽均勻分布)。 通過探索SVM和Logistic回歸

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回歸預測中的得分ensemble 誰能給我一些想法或給我看一些示例代碼?

您可以乘以概率,或使用其他組合規則。

為了以更通用的方式做到這一點(嘗試幾個規則),可以使用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)

另外,請記住,分類器應足夠多樣以給出良好的組合結果。

如果您的功能較少,我會說您應該檢查一些動態分類器/集合選擇(也在brew中提供),但是由於您可能具有許多功能,因此歐幾里德距離對於獲取每個分類器的功能范圍可能沒有意義。 最好的辦法是根據混淆矩陣手動檢查每個分類器傾向於正確使用哪種標簽。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM