首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不同的结果与梅卡对Scikit-学习!

不同的结果与梅卡对Scikit-学习!
EN

Data Science用户
提问于 2018-03-04 09:53:59
回答 1查看 557关注 0票数 1

我有一个多标签数据,我使用MEKA (WEKA的多标签版本)使用不同的分类器进行了培训,并且MEKA给我的评估结果(例如准确性)与我从scikit的相同分类器获得的结果不同--请学习

因为我的数据是多标签的,所以我使用的是二进制关联方法(在MEKA和scikit-multilearn中都有)。例如,我正在使用支持向量机,这是SMO在MEKA (和WEKA)和linearSVC在滑雪。

现在,在MEKA中,我从BR>SMO的10倍交叉验证中获得的精度大约是50%,其中我从BinaryRelevanvce>LinearSVC获得了一些20%的精度。其他评估指标(如F1评分、hamming损失等)也不要匹配。

我尝试给出在LinearSVC输入中可以找到的所有参数,与SMO的值相同,但是没有运气。我的Python代码如下所示:

代码语言:javascript
运行
复制
from skmultilearn.problem_transform import BinaryRelevance
from sklearn.svm import LinearSVC

my_classifier = BinaryRelevance(
                classifier=LinearSVC(C=1, random_state=1, tol=0.001, max_iter=10000, dual=False),
                require_dense=[True, True])

我必须补充一点,在MEKA中使用BR>SMO来训练和评估模型将花费我的数据几乎an小时,但是sklearn的linearSVC (与skmultilern的BinaryRelevance一起使用)比对相同数据的10 minutes所需的时间要少(因此精度较低)。

顺便说一下,为了提高精度,我在sklearn.metrics中使用了D2方法。

所以我的问题是我错过了什么?如何从支持向量机MEKAscikit学习中获得相同的精度?

EN

回答 1

Data Science用户

发布于 2018-03-04 13:35:13

根据这个问题

LinearSVC不是线性支持向量机,不用它就不用了。

此外,

LinearSVC是sklearn开发人员的错误之一。

在这张照片里从问题中可以观察到它是如何不准确的,甚至与kernel=linear的SVC相比。

进一步的差异可以用SMO和带有线性内核的SVC的实现方式的不同来解释。

这个职位将两者进行比较,答案是SMO应该是最快的,否则您的数据集可能不适合它。

我会用线性内核测试SVC,看看是否会发生变化。

票数 2
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/28596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档