繁体   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