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中的距离计算是正确的,并且特征的权重估计是正确的。跨行的标准化将给出不明确的结果。