我有一个多标签数据,我使用MEKA (WEKA的多标签版本)使用不同的分类器进行了培训,并且MEKA给我的评估结果(例如准确性)与我从scikit的相同分类器获得的结果不同--请学习。
因为我的数据是多标签的,所以我使用的是二进制关联方法(在MEKA和scikit-multilearn中都有)。例如,我正在使用支持向量机,这是SMO在MEKA (和WEKA)和linearSVC在滑雪。
现在,在MEKA中,我从BR>SMO的10倍交叉验证中获得的精度大约是50%,其中我从BinaryRelevanvce>LinearSVC获得了一些20%的精度。其他评估指标(如F1评分、hamming损失等)也不要匹配。
我尝试给出在LinearSVC输入中可以找到的所有参数,与SMO的值相同,但是没有运气。我的Python代码如下所示:
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
方法。
所以我的问题是我错过了什么?如何从支持向量机在MEKA和scikit学习中获得相同的精度?
https://datascience.stackexchange.com/questions/28596
复制相似问题