问题标签 [multilabel-classification]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
16918 浏览

python - 如何使用 sklearn 的 SGDClassifier 获得 Top 3 或 Top N 预测

在上面的代码中,仅打印列表 Xclf.predict()中样本的 1 个最佳预测。我对列表 X中特定样本的前 3 个预测感兴趣,我知道该函数/返回列表 Y中每个特征的所有概率的列表,但它必须先排序,然后与列表 Y 中的特征关联,然后才能获得前3 名的结果。有没有直接有效的方法?predict_probapredict_log_proba

0 投票
1 回答
5285 浏览

machine-learning - scikit-learn:在管道中使用 SelectKBest 时获取选定的功能

我正在尝试在多标签场景中将特征选择作为 scikit-learn 管道的一部分。我的目的是为一些给定的 k 选择最好的 K 个特征。

这可能很简单,但我不明白如何在这种情况下获取选定的特征索引。

在常规情况下,我可以做这样的事情:

但是在多标签场景中,我的标签尺寸是 #samples X #unique_labels 所以 fit 和 fit_transform 产生以下异常: ValueError: bad input shape

这是有道理的,因为它需要维度 [#samples] 的标签

在多标签场景中,这样做是有意义的:

但是我得到的对象是 sklearn.multiclass.OneVsRestClassifier 类型,它没有 get_support 函数。在管道期间使用经过训练的 SelectKBest 模型时,如何获得它?

0 投票
1 回答
279 浏览

output - 运行多个 Meka (Weka) 分类器 - 将错误加载到文件/表对象

对于那些不熟悉 Meka 的人 - 它是 Weka 对多标签分类器的扩展。然而,Meka 和 Weka 非常相似,因此 Weka 用户也可以回答这个问题。

基本上,我想要我运行各种分类器的结果,并且我希望它们都在一个表中,这样我就可以快速(动态/自动)进行模型选择,而不必为各种评估指标对每个分类器的值进行硬编码。 .

是否有一种万无一失、有效的方法来运行多个分类器实验——比如使用交叉验证——并获得如下表:

0 投票
3 回答
15958 浏览

neural-network - 带有多标签图像的咖啡

我有一个包含多个标签的图像数据集;数据集中有 100 个类,每个图像有 1 到 5 个与之关联的标签。

我正在按照以下 URL 中的说明进行操作:

https://github.com/BVLC/caffe/issues/550

它说我需要生成一个列出图像及其标签的文本文件,如

在我的情况下,由于我有多标签图像,是否可以像下面这样简单地添加标签?

我有一种感觉,它可能不会那么简单,如果我是对的,在设置 Caffe 的过程中,我应该在哪一步以及如何整合数据集的多标签性?

0 投票
1 回答
543 浏览

python - 使用 Vowpal Wabbit 获得大量 NaN 预测进行分类

我是 Vowpal Wabbit 的新手,我可能在这里遗漏了一些非常明显的东西。

我有 CSV 格式的训练数据,我将其分成 80% 用于训练和 20% 用于测试。它包含 62 个特征 (x0-x61),总共定义了 7 个类 (0-6)。

我已使用 phraug2/csv2vw.py 将 CSV 转换为 Vowpal 格式 转换后的数据如下所示:

然后我正在尝试进行多类分类,One Against All 来建立一个模型:

但是,我对 NAN 预测有很多迷失:

平均损失表明该模型无法真正预测任何事情

我究竟做错了什么?

0 投票
0 回答
1212 浏览

machine-learning - 多标签交叉熵

这里的答案之一存在交叉熵:nolearn for multi-label classification,即:

为什么这是专门的多标签?它看起来很像单变量(单类)分类的对数损失。我在文献http://arxiv.org/pdf/1312.5419v3.pdf中找到了这一点。

0 投票
1 回答
1116 浏览

machine-learning - 如何预处理此浮点数据以与 scikit 一起使用 - 机器学习

我有 4000 个特征和 35 个样本的数据集。所有特征都是 1 到 3 之间的浮点数。例如:2.68244527684596。

我正在努力让任何分类器处理这些数据。我使用过 knn、svm(带有线性、rbf、poly)。然后我了解了标准化。不过,这对我来说有点复杂,我无法让这段代码正常工作并给我正确的预测。

我用来规范化数据的代码是:

我试图分类的代码是:

我是机器学习的新手,我正在努力学习更多关于所有概念的知识。我想有人可能会指出我正确的方向。

注意:我只有 35 个样本,这是作业的一部分。我无法获得更多数据:(

0 投票
0 回答
390 浏览

scikit-learn - GridSearchCV(OneVsRestClassifier(clf, ...)):所有 N 个分类器的 1 个最佳超参数集与每个分类器的 1 个最佳超参数集

背景

比方说,我们有L标签来预测多类(或多标签)问题。使用OneVsRestClassifierL正在构建分类器。假设,我们使用LogisticRegression单个分类器。

GridSearchCV当使用(resp. )搜索最优超参数时RandomizedSearchCV,我们运行:

问题

通过运行GridSearchCV上面的命令,我们将获得一组最佳超参数,用于训练(resp. refit)所有L分类器。因此,例如,我们将获得 的最佳值,并且该C=10值将用于重新拟合所有L分类器。

我的问题是为什么GridSearchCV不为每个L分类器返回一组不同的最佳超参数。例如label0,一个最优的C=10label1将得到一个最优的C=0.01,...?为什么决定返回一组超参数,而不是为每个分类器返回一组?

以往的经验

我之所以这样问,是因为这种行为与我“手动”训练每个标签分类器时通常得到的行为不同。例如,对于某些任务,我有数千个标签要预测,我单独训练每个标签分类器(分布在许多机器上),因此我肯定会为每个标签分类器获得不同的超参数值。

0 投票
1 回答
1149 浏览

r - 如何使用 R 中的 xgboost 包解释多类分类的输出?

我是 XGBOOST 包的新手,我想用它来解决多类分类问题。

我现在有 30 个类(或标签),我已将它们转换为整数(0 - 29)。然后我在数据集上运行 XGBOOST 包中的 xgboost() 方法。建立模型后,我使用 predict() 方法来预测新的测试数据。最后,我得到了一个数字向量作为最终输出。顺便说一句,所有数字都在 0 和 1 之间。

那么现在我该如何解释输出呢?是这个概率吗?但是我怎么知道应该与哪个类相关呢?

谢谢

0 投票
3 回答
3788 浏览

python - Sklearn:评估 GridSearchCV 中 OneVsRestClassifier 的每个分类器的性能

我正在使用 和 处理多标签OneVsRestClassifier分类SVC

第一个问题

数字0.85代表什么?它是分类器中最好的L还是平均的?同样,这组参数是否代表分类器中得分最高的L

第二个问题

基于这样一个事实,如果我是对的,从OneVsRestClassifier字面上L为每个标签构建分类器,人们可以期望访问或观察每个标签的性能。但是,在上面的示例中,如何L从对象中获取分数GridSearchCV

编辑

为了简化问题并帮助自己更多地了解OneVsRestClassifier,在调整模型之前,

可以证明gp.T[0]==fpgp.T[1]==spgp.T[2]==tp因此,“全局”预测只是“连续”的L个体预测,而第二个问题就解决了。

但是让我感到困惑的是,如果一个元分类器OneVsRestClassifier包含L分类器,那么GridSearchCV对于OneVsRestClassifier具有L

看到任何评论将不胜感激。