我正在为具有33个标签的数据集执行多标签分类任务。
我想预测不同标签组合实例的概率。 我运行来自 scikit-multilearn 程序包的相关的 Label Powerset (http://scikit.ml/api/skmultilearn.problem_transform.lp.html)和 RakelD (http://scikit.ml/api/skmultilearn.ensemble.rakeld.html)模型完成这类任务。
我得到了一个稀疏矩阵的输出,其大小为测试集样本的数量X标签的数量,因此看来我得到的预测得分是每个标签而不是每个标签组合。 我不确定自己在做什么错-我误解了吗?还是我用错了?
这是相关的代码行:
classifier = RakelD(
base_classifier=GaussianNB(),
base_classifier_require_dense=[True, True],
labelset_size=4
)
classifier.fit(X_train, y_train)
predictions = classifier.predict_proba(X_test)
还有
classifier = LabelPowerset(LogisticRegression(max_iter=1000))
classifier.fit(X_train, y_train)
predictions = classifier.predict_proba(X_test)
这只是输出的部分(1727是测试集样本的数量,而33是标签的数量)。
(1727, 24) 4.448848136222317e-17
(1727, 25) 0.9999999999999716
(1727, 26) 8.88216696887196e-23
(1727, 27) 9.592208368406972e-23
(1727, 28) 0.9997353073474586
(1727, 29) 2.9735581432191686e-12
(1727, 30) 2.445564006803013e-40
(1727, 31) 8.208621013012522e-33
(1727, 32) 0.9999999993735122
任何帮助将不胜感激!