为什么要缩放?

 u44093631 发布于 2022-12-18 10:44

我发现SVM(支持向量机)问题的扩展确实提高了它的性能......我已经读过这样的解释:

"缩放的主要优点是避免在较大数值范围内的属性占主导地位较小数值范围内的属性."

不幸的是,这对我没有帮助......有人可以给我一个更好的解释吗?先感谢您!

2 个回答
  • 特征缩放是应用于优化问题的一般技巧(不仅仅是SVM).求解SVM优化问题的下划线算法是梯度下降.安德鲁·吴在他coursera影片的最佳解释这里.

    我将在这里阐述核心思想(我借用安德鲁的幻灯片).假设您只有两个参数,其中一个参数可以采用相对较大的值范围.然后,成本函数的轮廓看起来像非常高和椭圆形的椭圆形(见下面的蓝色椭圆形).您的渐变(渐变路径以红色绘制)可能需要很长时间并来回寻找最佳解决方案.
    在此输入图像描述

    相反,如果您缩放了您的特征,则成本函数的轮廓可能看起来像圆圈; 那么渐变可以采用更直的路径并更快地实现最佳点. 在此输入图像描述

    2022-12-18 10:48 回答
  • 在SVM中缩放特征背后的真正原因是,该分类器不是仿射变换不变的.换句话说,如果将一个特征乘以1000而不是SVM给出的解决方案将完全不同.它与基础优化技术几乎没有任何关系(尽管它们受到这些尺度问题的影响,它们仍然应该收敛到全局最优).

    考虑一个例子:你有男人和女人,按性别和身高(两个特征)编码.让我们假设一个非常简单的例子:

    0人,1人

    1 150

    1 160

    1 170

    0 180

    0 190

    0 200

    让我们做一些愚蠢的事情.训练它来预测人的性别,所以我们试图学习f(x,y)= x(忽略第二个参数).

    很容易看出,对于这样的数据,最大边距分类器将在高度"175"附近水平"切割"平面,因此一旦我们得到新样本"0 178"(身高178cm的女性),我们得到她的分类是个男人.

    但是,如果我们将所有内容缩小到[0,1],我们会得到类似的结果

    0 0.0

    0 0.2

    0 0.4

    1 0.6

    1 0.8

    1 1.0

    现在最大的边际分类器几乎垂直地"切割"飞机(正如预期的那样),所以给定新的样本"0 178",它也缩放到"0 0.56"左右,我们得到它是一个女人(正确!)

    所以一般来说 - 缩放确保只是因为某些功能很大,所以不会导致将它们用作主要预测器.

    2022-12-18 10:48 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有