machine-learning - 应用 mod 操作进行分类
问题描述
我有一组数据。对于简单的情况:
value: 0, 3, 6, 8, 10, 13, 14
type: o, o, x, x, x, o, o
计划是使用一个简单的“阈值”进行分类。这个想法是应用 mod + shift 来更好地分类:ex, 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 分类算法的正式算法?
解决方案
警告:我在这方面有点生疏。
一些初步的想法:
有些内核隐含地做类似的事情。
模数不能作为内核工作,因为它必须是对偶的(--> 内核技巧)并且必须是双射函数。但是模数会丢失信息并且不能“撤消”。
我分叉了 Karpathy 的SVM-JS 演示,并将数据更改为上面的示例数据。这提供了一个非常简单的可视化,在您的示例中,到以 8 为中心的 (1D-) 圆的径向距离将是一个很好的分类器。
但是考虑到您想要表示模数,并且可能您在 (6+12=) 18、20 或 22 处也有“x”值,这让我想起了一个周期性信号。对于周期性信号,您只需将输入数据转换为“傅立叶空间”并对其进行分类。我把它放在引号中,因为近似值可能就可以了。
因此,让我们尝试将 Kernel 函数设为 (Modulus, Remainder) 映射。(大致类似于幅度和相位)。(旁注:谷歌搜索“傅立叶变换内核机器学习”表明这可能是一件事。)
Phi(x) = (x mod N, x rem N)
.
据我所知,这是一个有效的特征映射函数。然后你可以将它应用到 SVM 上。
推荐阅读
- c# - 将字符串转换为具有前导零的日期时间 C#
- jquery - UI 布局初始化错误-center-pane 元素不存在,center-pane 是必需元素
- isabelle - 如何使用 Isar 证明消除规则?
- algorithm - 比较两个名称以查看它们是否相似/相同的算法
- javascript - 如何在剑道中获取包含单击事件复选框的行
- rest - 在 docker run 中将 URL 作为环境变量传递
- npm - 根据 package-lock.json 更新 package.json 的依赖
- asp.net - BMC Remedy 解决asp net中的票证状态更改错误
- java - 有没有办法在 Android Studio 中自动完成活动?
- php - 无法使用 wp_cache_flush() 清除 Wordpress 中的缓存