scikit学习支持向量机中的尺度数据

2024-05-20 00:55:23 发布

您现在位置:Python中文网/ 问答频道 /正文

虽然libsvm提供了缩放数据的工具,但是使用Scikit Learn(它应该基于SVC分类器的libsvm),我找不到缩放数据的方法。

基本上我想使用4个特性,其中3个特性的范围从0到1,最后一个特性是一个“大”高度可变的数字。

如果我在libSVM中包含第四个特性(使用easy.py脚本自动缩放数据),我会得到一些非常好的结果(96%的准确率)。 如果我在Scikit Learn中包含第四个变量,则精度会下降到~78%,但如果排除它,则得到的结果与排除该特征时在libSVM中得到的结果相同。因此我很确定这是一个缺少缩放的问题。

如何以编程方式(即不调用svm scale)复制svm的缩放过程?


Tags: 工具数据方法py高度分类器easy数字
1条回答
网友
1楼 · 发布于 2024-05-20 00:55:23

您在^{}中具有此功能:

>>> from sklearn import preprocessing
>>> X = [[ 1., -1.,  2.],
...      [ 2.,  0.,  0.],
...      [ 0.,  1., -1.]]
>>> X_scaled = preprocessing.scale(X)

>>> X_scaled                                          
array([[ 0.  ..., -1.22...,  1.33...],
       [ 1.22...,  0.  ..., -0.26...],
       [-1.22...,  1.22..., -1.06...]])

然后数据的均值和单位方差为零。

相关问题 更多 >