machine-learning - 应用 mod 运算进行分类

标签 machine-learning classification linear-regression

我有一组数据。 对于简单的情况:

value:  0,  3, 6, 8, 10, 13, 14
type:   o,  o, x, x,  x,  o,  o

计划是使用一个简单的“阈值”来分类。 这个想法是应用 mod + shift 来更好地分类: 例如,x = x mod 12 那么该对的集合就变成了

(value) % 12:      0, 1(13), 2(14), 3, 6, 8, 10

type:              o, o,     o,     o, x, x,  x

现在我们可以使用阈值 = 5 进行分类而不会出现错误。

这种 mod & shift 分类算法有正式的算法吗?

最佳答案

警告:我在这方面有点生疏。

一些初步想法:

  • Kernels隐含地做类似的事情。

  • 径向基函数内核 RBF是我能想到的一件事。或者也许只是一个Polynomial Kernel .

  • 模数不能作为内核使用,因为它必须是对偶(-->内核技巧)并且必须是双射函数。但模数会丢失信息并且无法“撤消”。

我 fork 了 Karpathy 的 SVM-JS demo并将数据更改为上面的示例数据。这提供了一个非常简单的可视化,在您的示例中,到以 8 为中心的 (1D-) 圆的径向距离将成为一个很好的分类器。

A hacky version of 1D data in Karpathy's tool

但是考虑到您想要表示模数,并且由于您可能还有 (6+12=) 18、20 或 22 处的“x”值,这让我想起了周期信号。对于周期性信号,您只需将输入数据转换到“傅里叶空间”并对其进行分类。我将其放在引号中,因为近似值可能就可以了。

所以,让我们尝试将核函数设为(模数,余数)映射。 (大约类似于幅度和相位)。 (旁注:谷歌搜索“傅立叶变换核机器学习”表明这可能是一件事。)

Phi(x) = (x mod N, x rem N)

据我所知,这是一个有效的特征映射函数。然后您可以将其应用到 SVM 上。

关于machine-learning - 应用 mod 运算进行分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59940958/

相关文章:

machine-learning - Tensorflow对象检测API中的模型配置参数是什么?

tensorflow - 在一对一样本上训练 Keras 模型并绘制验证曲线

perl - List::Util 'shuffle' 实际上是如何工作的?

scikit-learn - 多标签问题中的 RandomForestClassifier - 它是如何工作的?

r - R中拟合对数曲线

python - 没有提供任何参数时,LassoCV 中的参数选择如何工作?

python - CNN 返回相同的分类结果(keras)

python - TensorFlow:变量初始化中的 "Attempting to use uninitialized value"

python - 如何在pytorch中使用SGD成功训练简单的线性回归模型?

python - 培训不起作用。 "Skipping training since max_steps has already saved"