应用mod操作进行分类

问题描述 投票:0回答:1

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

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

现在我们可以使用threshold = 5进行分类而没有错误。

关于这种mod&shift分类算法,有没有正式的算法?

machine-learning classification linear-regression
1个回答
0
投票

注意:我在这方面有些生疏。

一些初步想法:

  • Kernels隐式地执行类似的操作。

  • 径向基函数内核RBF是我可以考虑的一件事。或者只是Polynomial Kernel

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

我分叉了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。

© www.soinside.com 2019 - 2024. All rights reserved.