程序员的数学基础课
黄申
LinkedIn 资深数据科学家
83374 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 58 讲
导读 (1讲)
基础思想篇 (18讲)
程序员的数学基础课
15
15
1.0x
00:00/00:00
登录|注册

29 | 归一化和标准化:各种特征如何综合才是最合理的?

标准化对回归后系数的影响
实现标准化的方法
z分数标准化
标准正态分布
归一化对回归后系数的影响
实现归一化的方法
变换函数
线性回归模型
多重回归分析
连续的预测值
离散的分类标签
如何使用标准化进行转换?
如何使用归一化进行特征值转换?
为什么有时候需要转换特征值?
标准化
归一化
因变量连续回归分析
监督式学习算法
思考题
总结
两种常见的特征变换方法
为什么需要特征变换?
归一化和标准化

该思维导图由 AI 生成,仅供参考

你好,我是黄申,今天我来说说特征值的变换。
上一节我讲了如何在众多的特征中,选取更有价值的特征,以提升模型的效率。特征选择是特征工程中的重要步骤,但不是全部。今天,我来说说特征工程中的另一块内容,数值变换。也就是说,我们可以使用统计中的数据分布,对连续型的数值特征进行转换,让多个特征的结合更有效。具体怎么理解呢?我下面就来详细讲一讲。

为什么需要特征变换?

我们在很多机器学习算法中都会使用特征变换。我使用其中一种算法线性回归作为例子,来解释为什么要进行数值型特征的变换。
我们之前介绍的监督式学习会根据某个样本的一系列特征,最后判定它应该属于哪个分类,并给出一个离散的分类标签。除此之外,还有一类监督式学习算法,会根据一系列的特征输入,给出连续的预测值。
举个例子,房地产市场可以根据销售的历史数据,预估待售楼盘在未来的销售情况。如果只是预估卖得“好”还是“不好”,那么这个粒度明显就太粗了。如果我们能做到预估这些房屋的售价,那么这个事情就变得有价值了。想要达成这个预测目的的过程,就需要最基本的因变量连续回归分析
因变量连续回归的训练和预测,和分类的相应流程大体类似,不过具体采用的技术有一些不同。它采用的是研究一个或多个随机变量 ,…, 与另一些变量 ,…, 之间关系的统计方法,又称多重回归分析
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

特征值的变换在机器学习中扮演着重要角色。本文介绍了特征变换的必要性,以及针对连续型数值特征的两种常见变换方法:归一化和标准化。文章以线性回归算法为例,解释了为什么需要对数值型特征进行变换。作者通过使用Boston Housing数据集进行回归分析,展示了线性回归模型的拟合效果,并强调了不同字段数据的可比性问题。文章详细介绍了多元线性回归的基本形式,并通过代码演示了模型拟合和系数输出。最后,作者介绍了归一化和标准化这两种常见的特征变换方法,以解决不同类型特征值不可比性的问题。通过具体案例和技术原理,深入浅出地介绍了特征变换的重要性和常见方法,对于读者快速了解特征工程中的数值变换具有很高的参考价值。 文章首先介绍了归一化和标准化两种特征变换方法,分别通过最大最小值和标准正态分布来进行数值转换。作者通过Python代码演示了这两种方法对线性回归模型系数的影响,强调了标准化方法相对于归一化的优势。此外,文章还总结了特征值转换的必要性,以及归一化和标准化的优缺点,为读者提供了清晰的技术指导和实践建议。 总的来说,本文通过具体案例和技术原理,深入浅出地介绍了特征变换的重要性和常见方法,对于读者快速了解特征工程中的数值变换具有很高的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《程序员的数学基础课》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(16)

  • 最新
  • 精选
  • 拉欧
    标准化和归一化未必能提高模型的准确度,但是会提高可解释性,是不是这个意思?

    作者回复: 是的。因为有些机器学习算法内部会根据输入数据自动调整值,所以对于算法效果而言,标准化和归一化不一定是必须的。

    2019-02-20
    9
  • Joe
    之前做机器学习算法的时候,采用特征缩放处理特征,能有效提高学习收敛效果。公式:x’=(x-x_mean)/(xmax-xmin)。不是单纯的归一,也保留了不同类别x之间的权重。

    作者回复: 也是一种可尝试的方法👍

    2019-02-27
    2
    7
  • 灰太狼
    归一化和标准化在使用中分别适合什么场景呢

    作者回复: 这是个好问题,最主要是和数据分布有关系。如果数据采样的分布接近于正态分布,建议Z分数标准化,让不同的数据组可比,否则建议归一化,将不同的数据统一到同样的区间便于处理

    2020-03-28
    2
    5
  • 骑行的掌柜J
    黄老师终于讲了理论后 上代码了 😂不过黄老师 我还了解到有种叫PCA降维的方法 他跟标准化之间有联系吗?是需要先标准话再PCA降维?谢谢

    作者回复: 巧了,我们之后会讲解PCA。虽然标准化不是PCA的必备预处理,但是通常我们还是会先进行标准化,再进行PCA降维。这是为了让不同的特征具有可比性,同时加速算法求解时的收敛速度

    2020-06-11
    3
  • 追梦
    老师,这如果是部署到线上模型,这些预处理应该怎么变化呢

    作者回复: 好问题,我想你说的线上模型是指某些机器学习中的predict或者叫scoring,就是指针对新的数据,进行分类或者回归的预测。可以根据线下训练数据的平均值和标准差来,如果新的数据远远超出了训练数据的均值和标准,可以看做outlier,根据合理的数值限制其范围

    2020-01-12
    3
  • 大熊
    以前用归一的时候都没考虑噪音的影响,今天get到了,nice

    作者回复: 很高兴对你有帮助

    2019-05-23
    3
  • qinggeouye
    思考题: """ 测试数据集 test.csv 测试数据的目标值 submission_example.csv """ df_test = pd.read_csv("/Users/qinggeouye/Desktop/GeekTime/MathematicProgrammer/29_featureTrans/test.csv") expected_test = pd.read_csv("/Users/qinggeouye/Desktop/GeekTime/MathematicProgrammer/29_featureTrans" "/submission_example.csv")['medv'] # 归一化 预测结果 minMaxScaler_test = MinMaxScaler() df_test_normalized = minMaxScaler_test.fit_transform(df_test.astype(dtype=float)) df_test_features_normalized = df_test_normalized[:, :] predicted_normalized = regression_normalized.predict(df_test_features_normalized) print("归一化预测结果与实际值的均方根误差:%s" % np.sqrt(np.mean((predicted_normalized - expected_test) ** 2))) # 标准化 预测结果 standardScaler_test = StandardScaler() standardScaler_test.fit(df_test.astype(dtype=float)) df_test_standardized = standardScaler_test.transform(df_test.astype(dtype=float)) df_test_features_standardized = df_test_standardized[:, :] predicted_standardized = regression_standardized.predict(df_test_features_standardized) print("标准化预测结果与实际值的均方根误差:%s" % np.sqrt(np.mean((predicted_standardized - expected_test) ** 2))) # 预测结果,两种特征转换预测结果相差无几,但与实际值相差较大 归一化预测结果与实际值的均方根误差:22.40003520184502 标准化预测结果与实际值的均方根误差:22.785218713879576

    作者回复: 确实,线性拟合程度不太好

    2019-03-10
    3
  • 阿信
    特征值处理,能加快收敛速度、降噪、标准化输出,这种好理解。但为什么会影响分析结果

    作者回复: 这要看具体的处理方式和模型,从处理方式的角度来看,有的时候特征工程可能会去掉一些不重要的特征,就会提升或者降低准确度。从模型的角度而言,有些比如线性回归模型需要量化地解释每个特征的重要程度,那么需要把不同特征统一化

    2019-07-05
    2
  • Geek_a50e46
    老师,那是不是标准化就没有缺点了?是不是可以完全用标准化替代归一化了呢?

    作者回复: 也不一定,如果样本量小的时候,可能归一化就够了。

    2020-02-07
    1
  • 春节十二响
    我对特征标准化的理解是,初始的特征数据不是纯数字,而是有量纲的,直接进行运算会搞出类似5m+6kg这样逻辑意义错误的操作。所以特征标准化实现的第一个效果是去量纲,把特征变成纯数字;第二个效果就是把不同特征投射到相近的数量级上,好做比较,也避免一些算法需要计算距离时,某个特征占得权重过大

    作者回复: 对,量纲的转换也是必要的

    2021-04-07
收起评论
显示
设置
留言
16
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部