我正在一个必须实施SVM机器学习算法的项目中。我正在尝试预测前臂运动的意图。我正在使用加速度计(连接到我的前臂)来测量x,y,z轴的角度变化。我以前从未使用过机器。我遇到的问题是我不完全知道如何构造训练集。我知道每个轴的角度都发生变化,并且我知道例如我执行的x=45
度数,y = 65
度数,z=30
度数手势是否为屈曲。我想实现3个手势,所以我拥有的数据是:
x y z Target
20 60 90 flexion
100 63 23 internal rotation
89 23 74 twist
。。。。
我有一个包含大约2000个条目的文件。我知道,我必须归一化训练集,以便按比例缩放数据。我想按比例缩放它们,使其处于范围内[0.9, 0.1]
。问题是我不知道如何在我的训练集中代表目标。我可以只将随机数用作1来表示屈曲,将2用作内部旋转,将3表示扭曲吗?
同样,一旦训练完成,我可以仅基于x,y,z的值进行预测吗?无需提供目标值。我的理解正确吗?
首先,我建议您不要扩展或编码数据。将其保留为易于阅读的形式。而是编写前端例程来执行这些任务,并编写后端例程来逆转该过程。还具有内部例程,可以以内部形式显示数据。预先进行这些操作将极大地增强您以后的调试。
是的,您可能希望将分类编码为1、2、3。另一种可能性是使用“单次热”有序三元组:(1,0,0)或(0,1,0)或(0, 0,1)。但是,大多数SVM算法都是为标量输出设置的。另外,请注意,多类算法的典型处理方法是运行三个单独的SVM计算,“一个反对所有”。对于每个类别,您将该类别视为“正”数据,而将所有其他类别视为“负”数据。
标度数据对于回归收敛很重要。如果要通过对支持向量的直接完整计算来构建SVM,则无需缩放诸如此类的兼容范围内的数字。如果您通过某种迭代逼近来进行此操作,则对于此数据仍将不需要它-但请记住以备将来使用。
是的,预测仅提供输入:x,y,z。它将返回目标分类。这就是监督学习的目的:总结经验以对未来进行分类。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句