问题标签 [multiclass-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 投票
0 回答
567 浏览

tensorflow - 使用神经网络的多类分类

我有大约 200 个面 3D 网格,我想仅基于两个参数(高斯和平均曲率)对其顶点进行分类。我决定为此目的使用 TensorFlow 神经网络。

我在所有脸上标记了 18 个突出的顶点——即鼻尖、下巴、眼角等。通过查看高斯和平均曲率的热图,所有这些点都很容易识别。所以我决定在这些点上制作这些参数的直方图(不同尺度 - 6 mm、4 mm、2 mm),并将其用作我的神经网络的输入。输入是 608 个特征的向量(6 个直方图的每一个有 101 个整数,点的均值和高斯曲率有 2 个浮点数)。输出应该是描述顶点属于哪个类的向量。

这是 10 个面的 6 毫米比例的可视化直方图(每列描述一个突出点;每行一个面;有 18 列但只有 11 个类,因为例如内眼角 - 第 5 列和第 6 列 - 是对称的,所以两者列属于同一类)在此处输入图像描述

我修改了这个例子。首先,我尝试制作一个二元分类器。由此产生的网络可以很好地识别鼻尖与剩余点或下巴与剩余点,准确率约为 98%。我让神经网络对网格的所有顶点进行分类。令我惊讶的是,输出向量总是 [1.0, 0.0] 或 [0.0, 1.0] - 我猜有时它不应该是确定的,所以它应该返回例如 [0.5, 0.5]。1. 问题 - 为什么?

现在我想创建一个单一的神经网络,它告诉我:“这个点的鼻尖概率为 0.2,下巴为 0.7,内眼角为 0.05,......”。但是通过向输出层添加更多类,准确性会变得更差。所以 11 类的准确率只有 30% 左右。2. 问题 - 为什么以及如何解决它?具有概率的输出向量仍然只有一个 1 和十个 0。

我将不胜感激任何帮助。

这是训练测试数据。这是我的代码:

0 投票
0 回答
576 浏览

python - 如何在机器学习模型python中获得每个预测的置信度度量

我有以下数据框:

我正在使用 scikitSVC来预测 Labels 'High''Mod''Low'. 我这样做如下:

我有两个问题:

1.) 对于分类报告,我得到如下输出:

为什么标签 0 和 2 的精度为 0.00?这可能是因为阶级不平衡吗?大约有 80893 个高标签、11798 个 Mod 标签和 279608 个低标签。或者 SVm 不是一个很好的模型吗?

2.) 我想获得每个预测的置信度分数。我google了一下,发现如下:

但我收到错误:raise ValueError("{0} format is not supported".format(y_typeValueError: multiclass format is not supported

如何获得每个预测的置信度度量,然后也对其进行解释?非常感谢!!

0 投票
1 回答
98 浏览

java - 我应该如何让程序停止并等待某些东西?JAVA

在这里遇到问题,目前正在尝试创建数据库系统的登录名。我必须上课:UserLogManagerMainWindow 和 DatabaseConnectionFrame。我的程序是关于日志管理的。我想建立一个数据库连接:

UserLogManagerMainWindow 类有一个按钮“连接到数据库”,点击 DatabaseConnectionFrame 初始化并使用 jlabels 和 jtextfields 建立一个框架,在我输入我需要的所有内容后,我按下“登录”按钮,之后我希望我的 UserLogManagerMainWindow 类继续从连接的数据库中按下日志。

我写了一些关于它的外观的代码:“关于我想说什么的逻辑”

但如果声明不起作用,我知道为什么。这就是为什么我要问如何使它工作?更有可能的是,线程是关键,但目前并不擅长。没有线程的任何提示?如果线程是唯一的方法,我可以得到一些帮助吗?

在下面提供 DatabaseConnectionFrame 类:

0 投票
0 回答
266 浏览

python - Spark 的 MultiClass 性能比 scikit-learn 差

目前我有文本数据,我正在尝试预测一个类。就我而言,我有 60 个课程可供选择。当我使用 scikit-learn 在随机森林中部署模型时,我得到了 78% 的 f1 分数。

但是,我尝试在 pyspark 中设置模型,但只得到 30%。太低了!到底是怎么回事?也许我没有正确设置它。此外,使用 pyspark,随机森林只能预测多达 12 个标签,而在我的情况下,我有 60 个。

Sci-kit学习代码:

pySpark 代码

0 投票
1 回答
11048 浏览

machine-learning - 在多类分类问题中,为什么二进制精度会给出高准确率,而分类精度会给出低准确率?

我正在使用 Keras 解决多类分类问题,并且我使用二进制精度和分类精度作为指标。当我评估我的模型时,我得到了一个非常高的二进制精度值和一个相当低的分类精度值。我试图在自己的代码中重新创建二进制精度指标,但运气不佳。我的理解是,这是我需要重新创建的过程:

这是我的代码:

但这给出的值比二进制精度给出的值低得多。二进制精度甚至是用于多类问题的适当指标吗?如果是这样,有人知道我哪里出错了吗?

0 投票
0 回答
590 浏览

r - 插入符号中多类分类的替代性能度量

我确实想调整使用caret. 由于我的数据集高度不平衡,根据这篇文章,默认Accuracy选项似乎没有太大帮助: https ://stats.stackexchange.com/questions/68702/r-caret-difference-between-roc-curve- and-accuracy-for-classificationcaret

在我的具体情况下,我想确定mtry预测概率的随机森林的最佳参数。我确实有 3 个班级和 98.7% - 0.45% - 0.85% 的平分率。一个可重现的例子——遗憾的是没有不平衡的数据集——由下式给出:

所以我的两个问题基本上是:

  1. Accuracy除了我还有什么替代的汇总指标?(使用 multiROC 不是我最喜欢的,因为:https ://stats.stackexchange.com/questions/68702/r-caret-difference-between-roc-curve-and-accuracy-for-classification 。我想到了某事。像布赖尔分数)
  2. 我如何实施它们?

非常感谢!

0 投票
1 回答
82 浏览

machine-learning - LogisticRegression 预测概率

我目前在多类分类问题中使用来自 scikit-learn 的 LogisticRegression。我决定使用 LogisticRegression 是因为我已经阅读了几篇文章,将其描述为就其返回的预测概率而言经过良好校准的算法。

对于分类器的每个结果,我检查其预测概率以及分类观察与训练集中具有相同决策类的其余示例之间的距离。

令我惊讶的是,即使某个类的预测置信度超过 90%,余弦相似性度量表明给定示例平均与训练中具有相同类的示例集几乎正交放。

有人可以提供一些线索,说明为什么会观察到这种差异吗?

我希望对于与同一类的其他观察结果相距甚远的示例,LogisticRegression 算法将返回低预测概率。

0 投票
1 回答
564 浏览

pandas - 使用文本和数字数据进行多类预测

我正在尝试为包含数字和文本特征的数据集创建预测模型(或分类)使用 Tf-IdfVectorizer,我设法将文本列转换为列表,因此文本列中的每个单元格都是浮点数列表,例如 [0.0 0.3567 0.0 0.0](不带逗号)。我的目标功能是一组类。每行可以有多个值,例如

问题是如何预处理目标变量,以便我的模型进行分类预测?我尝试了标签编码,但它为每一行创建了新的编码,因此相同的整数被编码为不同行的不同类。

我计划接受超过某个阈值的每一行的所有预测。是否有模型也支持这一点?提前谢谢了

0 投票
1 回答
1252 浏览

keras - 多类 KerasClassifier 的 GridSearch

我正在尝试使用 Keras 对多类分类进行网格搜索。下面是一段代码:

数据的一些属性如下:

还有模特...

这是错误:

该代码用于二进制模型,但我希望针对多类数据集对其进行修改。请协助。谢谢!

0 投票
1 回答
5278 浏览

tensorflow - 使用 one-hot 代码的 TensorFlow 混淆矩阵

我使用 RNN 进行多类分类,这是我的 RNN 主要代码:

我必须将所有输入分类为 6 个类,每个类都由一个热代码标签组成,如下所示:

问题是我无法使用tf.confusion_matrix()函数打印混淆矩阵。

有没有办法使用这些标签打印混淆矩阵?

如果没有,只有在需要打印混淆矩阵时,如何将单热代码转换为整数索引?