如何解决带有BaggingClassifier的SVC提供了可能性0、1 / 3、2 / 3、1
我遇到了多标签文本分类问题,我尝试用SVM分类实现二进制相关性方法。但是,这花了很长时间训练,所以我使用了BaggingClassifier。 我具有大量功能,训练集的形状是(3564,23893)。 只能有3个标签。
为减少培训时间,我在很多事情上都做出了让步:对于参数调整,我仅使用2倍CV而不是5(对于Naive Bayes和Logistic Regression来说效果很好),对于BaggingClassifier,我设置了数字估计数到3。
我使用了以下代码:
pg_SV = {'classifier': [BaggingClassifier(SVC())],'classifier__base_estimator': [SVC()],'classifier__n_estimators': [3],'classifier__n_jobs': [-1],'classifier__verbose': [50],'classifier__base_estimator__kernel': ['linear'],'classifier__base_estimator__C': [1,100,1000],'classifier__base_estimator__verbose': [50]}
cl_SV = GridSearchCV(BinaryRelevance(),pg_SV,verbose=50,cv=2,n_jobs=-1)
cl_SV.fit(X_train,Y_train)
Y_score_SV = cl_SV.predict_proba(X_test).toarray()
并将此输出作为预测概率:
Y_score_SV
array([[0.,1.,0.33333333],[1.,0.66666667,0. ],...,[0.,0.,0. ]])
例如我的ROC曲线对于标签来说是很详细的:
roc_curve(Y_test_C[:,1],Y_score_SV[:,1])
(array([0.,0.114,0.262,0.502,1. ]),array([0.,0.3887468,0.60613811,0.7826087,1. ]),array([2.,0.33333333,0. ]))
也许我对参数太过刻苦,并且没有为模型提供足够的“空间”,这就是为什么概率如此简单的原因?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。