svmlib扩展与pyml规范化,缩放和转换

时间:2011-05-06 22:23:30

标签: scale svm libsvm normalize pyml

规范化在线性核SVM中使用的特征向量的正确方法是什么?

看看LIBSVM,看起来只需将每个功能重新调整为单个标准的上/下范围即可。但是,PyML似乎并没有提供一种以这种方式扩展数据的方法。相反,有一些选项可以按照长度标准化矢量,将每个特征值按平均值移动,同时按标准偏差重新调整等等。

我正在处理大多数功能都是二进制的情况,除了一些是数字的。

1 个答案:

答案 0 :(得分:0)

我不是这方面的专家,但我相信通过减去其平均值来对中和缩放每个特征向量,然后将其除以标准偏差是标准化用于SVM的特征向量的典型方法。在R中,这可以通过缩放功能来完成。

另一种方法是将每个特征向量转换为[0,1]范围:

(x - min(x)) / (max(x) - min(x))

如果分布非常松散,也许某些功能可以从日志转换中受益,但这也会改变分布的形状,而不仅仅是“移动”它。

我不确定你在SVM设置中获得了什么,通过它们的L1或L2规范对向量进行归一化,就像PyML用它的normalize方法做的那样。我猜二进制特征(0或1)不需要标准化。