问题标签 [ordinal-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 投票
1 回答
760 浏览

python - 使用 Keras 理解 WeightedKappaLoss

我正在使用 Keras 尝试使用一系列事件来预测分数向量 (0-1)。

例如,X是一个由 3 个向量组成的序列,每个向量包含 6 个特征,而y是一个包含 3 个分数的向量:

我想将这个问题作为序数分类来解决,所以如果实际值是[0.5,0.5,0.5]预测值,那么预测[0.49,0.49,0.49]会更好[0.3,0.3,0.3]。我最初的解决方案是sigmoid在我的最后一层使用激活并mse作为损失函数,因此每个输出神经元的输出范围在 0-1 之间:

我的目标是了解WeightedKappaLoss的用法并在我的实际数据上实现它。我创建了这个 Colab来摆弄这个想法。在 Colab 中,我的数据是一个序列形状(5000,3,3),我的目标形状(5000, 4)代表 4 个可能的类中的 1 个。

我希望模型了解它需要修剪 X 的浮点以预测正确的 y 类:

新型号代码:

拟合模型时,我可以在 TensorBoard 上看到以下指标: 在此处输入图像描述在此处输入图像描述

我不确定以下几点,希望得到澄清:

  • 我用对了吗?
  • 在我最初的问题中,我预测 3 个分数,而不是 Colab 示例,我预测只有 1 个。如果我使用的是 WeightedKappaLoss,这是否意味着我需要将每个分数转换为一个向量100 个 one-hot 编码?
  • 有没有办法在原始浮点分数上使用 WeightedKappaLoss 而无需转换为分类问题?
0 投票
1 回答
446 浏览

python - 如何使用序数分类器?

我正在尝试在训练练习中实现一个序数分类器并且遇到了一些麻烦。我不能使用一个与所有分类器,因为我的类是序数的。序数分类器没有功能,所以我在互联网上找到了下面的代码。(来源: https ://towardsdatascience.com/simple-trick-to-train-an-ordinal-regression-with-any-classifier-6911183d2a3c )。

我对我应该如何使用它感到困惑......我有一个训练和测试数据集......但我如何整合这些?例如,对于逻辑回归,我知道你会有这样的代码:

但我该如何使用这段代码?以及如何获得概率?

来自网站的代码:

0 投票
0 回答
51 浏览

python - 序数回归算法似乎将预测转移了一类

对于具有 3 个类别(1、2、3)的序数回归问题,我正在运行以下算法:

我通过给它一个 clf 来调用它:

并通过调用 fit 来训练它:

最后我通过调用得到预测:

我相信这个算法应该像我想要的那样工作。然而,在使用不同的超参数集运行模型时,这些类似乎以某种方式混淆了。对于几乎所有的超参数集,我发现了相同的模式。

  1. 被预测为第 1 类的类占实际第 2 类的百分比最大
  2. 被预测为第 2 类的类在实际第 3 类中所占的百分比最大
  3. 被预测为第 3 类的类占实际第 1 类的百分比最大

我觉得实际上似乎可以找到正确序数的一两个超参数组合更多是由运气引起的,而不是实际上导致了一个好的模型。总之,我的算法似乎确实在数据中找到了序数关系,但这些关系不正确/解码不正确。

问题:我的模型有问题吗?我应该只选择在验证集上按预期执行的超参数的确切组合吗?或者我应该将我的预测解码为第 3 类 => 第 1 类、第 1 类 => 第 2 类、第 2 类 => 第 3 类?

在此先感谢您的帮助!

编辑:对于任何感兴趣的人,我的 LGBM 模型开始以正确顺序看到模式的参数是当学习率变得非常高(接近或等于 1)而 l1 正则化的参数 >0 时。

0 投票
0 回答
52 浏览

r - polr 的预测值仅生成一小部分响应值

我想为一些值从 0 到 10 的有序分类响应数据创建一个模型,其中有 3 个预测变量是分类和数字。因此,除其他外,我正在使用该功能MASS::polr。这是一个虚拟示例:

问题是,当我使用“类”类型的预测函数并将预测数据与实际结果进行比较时,模型似乎只考虑了响应变量中的一些值,尤其是最常见的值从培训:

我有点迷茫,因为我看到这些是概率最高的结果,但我看不出这种预测有什么用处。我在设置预测数据的方式上遗漏了什么吗?

0 投票
0 回答
22 浏览

r - R中序数预测的等级比较AUC

我有序数预测(来自外部来源):1、2、3 连续结果:0-36。

我不知道预测的阈值在哪里,但我想根据排名准确性来评估它们。1的结果应该大于2,2的结果应该大于3。

直观地说,我基本上会计算排名错误,我已经在二进制分类的 AUC 上下文中看到了这一点。

是否有任何既定的方法可以在 R 中进行序数预测?

0 投票
1 回答
26 浏览

statistics - 在 proc 逻辑模型方程中指示“等坡”时出现语法错误

我一直在尝试使用序数结果运行 proc 逻辑逐步回归模型。因为我试图解释比例赔率的假设,所以我的几个变量的斜率不均匀。因此,在我的代码中,我同时指示了等坡和不等坡,但是我继续收到此语法错误。

我确信我输入的代码是正确的,即使我没有为 equalslopes 选项和 unequalslopes 选项说明任何特定变量,我仍会继续收到相同的消息。下面是我的代码。