所以我一直在玩 SVM,我想知道这是否是一件好事:
我有一组连续特征(0 到 1)和一组转换为虚拟变量的分类特征。在这种特殊情况下,我将测量日期编码为一个虚拟变量:
我有 3 个时期的数据,我为它们保留了 3 个特征编号:
20:21:22:
因此,根据数据来自哪个时期,不同的特征将被分配 1;其他人将得到 0。
SVM 是否可以正常工作,或者这是一件坏事?
我使用 SVMLight 和线性内核。
所以我一直在玩 SVM,我想知道这是否是一件好事:
我有一组连续特征(0 到 1)和一组转换为虚拟变量的分类特征。在这种特殊情况下,我将测量日期编码为一个虚拟变量:
我有 3 个时期的数据,我为它们保留了 3 个特征编号:
20:21:22:
因此,根据数据来自哪个时期,不同的特征将被分配 1;其他人将得到 0。
SVM 是否可以正常工作,或者这是一件坏事?
我使用 SVMLight 和线性内核。
从http://www.quora.com/Machine-Learning/What-are-good-ways-to-handle-discrete-and-continuous-inputs-together/answer/Arun-Iyer-1复制我的答案
现在,您可以在单个向量中表示所有特征,我们可以假设这些特征嵌入在中,并开始使用现成的包进行分类/回归等。
附录:如果您使用基于内核的方法,您可以避免这种显式嵌入到并专注于为您的特征向量设计自定义内核。您甚至可以将内核拆分为多个内核,并使用 MKL 模型来学习它们的权重。但是,您可能希望确保内核的半正定性,以便求解器没有任何问题。但是,如果您不确定是否可以设计自定义内核,您可以按照早期的嵌入方法。
只要您进行一些预处理,SVM 就会同时处理二进制和连续变量:所有特征都应该被缩放或标准化。在那一步之后,从算法的角度来看,特征是连续的还是二元的并不重要:对于二元,它看到的样本要么“远”,要么非常相似;对于连续值,也有中间值。内核与变量的类型无关。