Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Machine learning 不同的标度方法对SVM回归性能影响太大_Machine Learning_Scikit Learn_Svm_Normalization_Scaling - Fatal编程技术网

Machine learning 不同的标度方法对SVM回归性能影响太大

Machine learning 不同的标度方法对SVM回归性能影响太大,machine-learning,scikit-learn,svm,normalization,scaling,Machine Learning,Scikit Learn,Svm,Normalization,Scaling,我有一个1000行8列的数据集。我正在使用支持向量机进行回归,使用scikit的SVM.SVR。然后我对一些参数进行交叉验证的网格搜索。 我的网格如下所示: grid=[{'C':[.1,1,10,501005001000],'kernel':['linear']}, {'C':[1,1,10,501005001000],'gamma':[0.001,0.0001,'auto'], 'kernel':['rbf']},{'C':[.1,1,10,501005001000],'gamma': [0

我有一个1000行8列的数据集。我正在使用支持向量机进行回归,使用scikit的SVM.SVR。然后我对一些参数进行交叉验证的网格搜索。 我的网格如下所示:

grid=[{'C':[.1,1,10,501005001000],'kernel':['linear']},
{'C':[1,1,10,501005001000],'gamma':[0.001,0.0001,'auto'], 'kernel':['rbf']},{'C':[.1,1,10,501005001000],'gamma': [0.001,0.0001,'auto'],'kernel':['sigmoid']},{'C': [1,1,10,501005001000],“gamma”:[0.001,0.0001,‘自动’,“内核”: ['poly'],'degree':[2,3,4]}]

我知道这个网格看起来很大,但我认为用SVM尝试不同的内核很重要

当我将数据缩放为0均值和单位方差时,两个特征仍然有点偏斜,最小值在-14左右。因此,它可能不是我的数据的最佳缩放方法

然而,如果我使用scikit的MinMaxScaler,数据会停留在-1和+1之间;对于这两个扭曲的特征,直方图看起来也很正常

当我使用最小-最大缩放数据运行网格搜索时,我会在几秒钟内得到结果

当我使用标准缩放数据运行网格时,交叉验证永远不会结束,我需要停止执行。我想我跑了最长的一个半小时


我知道,内核技巧通过将整个数据集映射到更高维空间来工作,支持向量机通过计算这些数据点之间的距离来工作,并且找到边界也很困难。但是为什么这个小小的差异会导致性能上的巨大差异

我问了这个问题后就明白了。c参数太高,因此在使用StandardScaler对数据进行预处理时,优化问题变得无法解决。