带有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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...