使用线性SVM混合连续数据和二进制数据?


15

因此,我一直在使用SVM,我想知道这是否是一件好事:

我有一组连续特征(0到1)和一组分类特征,这些特征已转换为虚拟变量。在这种情况下,我将测量日期编码为一个虚拟变量:

我有3个期间的数据,并为它们保留了3个特征号:

20:21:22:

因此,根据数据来自哪个周期,将为不同的功能分配1;其他人将获得0。

SVM是否可以与此同时正常工作,或者这是一件坏事?

我使用SVMLight和线性内核。


这很好。
马克·克莱森

您所做的足够好。我这里给出一个稍微详细的解答- quora.com/Machine-Learning/...
TenaliRaman

@TenaliRaman请不要发布指向需要登录的站点的链接,然后才能真正阅读任何内容。
马克·克莱森

@MarcClaesen我已在下面复制了答案。
TenaliRaman 2014年

Answers:


8

只要您进行一些预处理,SVM就会处理二进制和连续变量:所有功能都应缩放或标准化。在这一步骤之后,从算法的角度来看,特征是连续的还是二进制的都没有关系:对于二进制文件,它会看到“相距很远”或非常相似的样本。对于连续的,也有介于两者之间的值。内核与变量类型无关。


1
最好的归一化技术是什么?
Shlomi Schwartz

23

http://www.quora.com/Machine-Learning/What-are-good-ways-to-handle-discrete-and-continuous-inputs-together/answer/Arun-Iyer-1复制我的答案

  • 重新调整为界连续特性:全部连续输入被有界的,他们重新缩放为通过X = 2 X - 最大-[1,1]x=2xmaxminmaxmin
  • μσx=xμσ
  • 对分类/离散特征进行二值化:对于所有分类特征,请将它们表示为多个布尔特征。例如,不具有3个布尔值功能,而是具有3个布尔值功能-已婚状态,单身,已婚状态,已婚和已婚,并将这些功能适当地设置为1或-1。如您所见,对于每个分类特征,您要添加k个二进制特征,其中k是分类特征所采用的值的数量。

Rn并开始使用现成的软件包进行分类/回归等。

Rn


好吧,这篇文章对于分类功能非常有趣。并不是说单编码是分类功能的最佳选择,这正是我要摆脱的。
displayname

1
这是一个很好的答案,我阅读了@displayname注释中的链接,这是一个有用的比较。从这篇文章看来,二进制编码是最好的(并且不是最简单的答案),而且非常简单。)从链接“ Binary:首先将类别编码为序数,然后将这些整数转换为二进制代码,然后将该二进制字符串中的数字分成几列。这将数据编码的维度更少,只有一角,但距离却有些失真。”
shelbypereira

@displayname给出的文章是不错的文章,但不应该看在表面上。首先要记住的是,几乎所有的ML方法都可以使用相似性或距离度量。编码方式的选择直接影响两点之间距离或相似度的测量方式。1热编码表示一个类别的对象仅与自身相似或等效,将所有类别彼此等距放置。但是,在某些情况下某些类别比其他类别更接近。在这种情况下,可以使用其他编码。
TenaliRaman
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.