Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.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
Python 在SVM中,归一化轴是否会对预测产生影响?_Python_Machine Learning_Scikit Learn_Normalization - Fatal编程技术网

Python 在SVM中,归一化轴是否会对预测产生影响?

Python 在SVM中,归一化轴是否会对预测产生影响?,python,machine-learning,scikit-learn,normalization,Python,Machine Learning,Scikit Learn,Normalization,假设我有两个值,如下所示: x1 x2 x3 y 1 40 0.9 1 0.9 80 0.5 1 0.6 50 0.6 0 0.4 30 0.7 0 使值看起来像: x1 x2 x3 y 1 0.5

假设我有两个值,如下所示:

x1       x2         x3            y
1        40         0.9           1
0.9      80         0.5           1
0.6      50         0.6           0
0.4      30         0.7           0
使值看起来像:

x1       x2         x3           y
1        0.5       0.9           1
0.9      1         0.5           1
0.6      0.7       0.6           0
0.4      0.8       0.7           0
列y是输出。如果我沿着列x2(轴=0)而不是沿着行(轴=1)进行标准化,会有不同吗

预测会有所不同吗


有人能解释它背后的数学吗?

预测会有所不同。此外,建议对数据进行缩放,以便更好地预测。 SVM使用特征向量之间的距离函数(如欧氏距离)。如果特征具有不同的值范围,则可能会产生不必要的高效果

考虑以下示例:我们有3个实例:A=(0,80,0)、B=(1,40,0.9)和C=(0.1,50,0)。如果我们期望所有特征都得到同等对待,那么我们希望A和C之间的距离比B和C小。然而,距离函数会导致B和C之间的距离变小

摘自:

支持向量机算法不是尺度不变的,所以它是 强烈建议您扩展数据。例如,缩放每个 将输入向量X上的属性设置为[0,1]或[-1,+1],或将其标准化 平均值为0,方差为1。请注意,必须使用相同的缩放比例 应用于测试向量以获得有意义的结果。见第节 预处理数据,了解有关缩放和规范化的更多详细信息


第二个值表示什么?(以下“使值看起来像:”)x1、x2、x3等表示特征。特征可以是不同的尺寸(米、厘米、秒等单位)和比例。因此,如果沿着行对其进行归一化,则没有任何意义。它们应该按列进行规范化,这样才有意义。@Jibin Yes Vivek Kumar说得对,跨行的规范化没有任何意义。跨列(或要素)进行规范化,以便所有要素都在同一范围内。这样做是为了使SVM中的距离计算是正确的,并且特征的权重估计是正确的。跨行的标准化将给出不明确的结果。