特征缩放

引子

在前一章节中,对房屋售价进行预测时,我们的特征仅有房屋面积一项,但是,在实际生活中,卧室数目也一定程度上影响了房屋售价。下面,我们有这样一组训练样本:

注意到,房屋面积及卧室数量两个特征在数值上差异巨大,如果直接将该样本送入训练,则代价函数的轮廓会是“扁长的”,在找到最优解前,梯度下降的过程不仅是曲折的,也是非常耗时的:

缩放

该问题的出现是因为我们没有同等程度的看待各个特征,即我们没有将各个特征量化到统一的区间。量化的方式有如下两种:

Standardization

Standardization 又称为 Z-score normalization,量化后的特征将服从标准正态分布:
z=xi−μδz=\frac{x_i−μ}δz=δxi​−μ​

其中, μμμ , δδδ 分别为对应特征 xix_ixi​ 的均值和标准差。量化后的特征将分布在 [−1,1] 区间。

Min-Max Scaling

Min-Max Scaling 又称为 normalization,特征量化的公式为:
z=xi−min(xi)max(xi)−min(xi)z=\frac {x_i−min(x_i)}{max(x_i)−min(x_i)}z=max(xi​)−min(xi​)xi​−min(xi​)​

量化后的特征将分布在 [0,1] 区间。

大多数机器学习算法中,会选择 Standardization 来进行特征缩放,但是,Min-Max Scaling 也并非会被弃置一地。在数字图像处理中,像素强度通常就会被量化到 [0,1] 区间,在一般的神经网络算法中,也会要求特征被量化到 [0,1] 区间。

进行了特征缩放以后,代价函数的轮廓会是“偏圆”的,梯度下降过程更加笔直,性能因此也得到提升:

代码实现

regression.py 中,我们添加了 Standardization 和 Normalization 的实现:

# linear_regression/regression.py# ...
def standardize(X):"""特征标准化处理Args:X: 样本集Returns:标准后的样本集"""m, n = X.shape# 归一化每一个特征for j in range(n):features = X[:,j]meanVal = features.mean(axis=0)std = features.std(axis=0)if std != 0:X[:, j] = (features-meanVal)/stdelseX[:, j] = 0return Xdef normalize(X):"""特征归一化处理Args:X: 样本集Returns:归一化后的样本集"""m, n = X.shape# 归一化每一个特征for j in range(n):features = X[:,j]minVal = features.min(axis=0)maxVal = features.max(axis=0)diff = maxVal - minValif diff != 0:X[:,j] = (features-minVal)/diffelse:X[:,j] = 0return X
# ...

参考文献

  • About Feature Scaling and Normalization
  • Wiki–Feature scaling

1.5 特征缩放-机器学习笔记-斯坦福吴恩达教授相关推荐

  1. 4.4 机器学习系统设计--垃圾邮件分类-机器学习笔记-斯坦福吴恩达教授

    机器学习系统设计–垃圾邮件分类 假定我们现有一封邮件,其内容如下: From: cheapsales@buystufffromme.com To: ang@cs.stanford.edu Subjec ...

  2. 5.4 SVM的使用建议-机器学习笔记-斯坦福吴恩达教授

    SVM的使用建议 使用流行库 作为当今最为流行的分类算法之一,SVM 已经拥有了不少优秀的实现库,如 libsvm 等,因此,我们不再需要自己手动实现 SVM(要知道,一个能用于生产环境的 SVM 模 ...

  3. 5.3 核函数-机器学习笔记-斯坦福吴恩达教授

    核函数 在逻辑回归中,我们会通过多项式扩展来处理非线性分类问题: hθ(x)=θ0+θ1x1+θ2x2+θ3x1x2+θ4x12+θ5x22+⋯h_θ(x)=θ_0+θ_1x_1+θ_2x_2+θ_3 ...

  4. 1.9 程序示例--局部加权线性回归-机器学习笔记-斯坦福吴恩达教授

    程序示例–局部加权线性回归 现在,我们在回归中又添加了 JLwr() 方法用于计算预测代价,以及 lwr() 方法用于完成局部加权线性回归: # coding: utf-8 # linear_regr ...

  5. 1.7 程序示例--多项式回归-机器学习笔记-斯坦福吴恩达教授

    程序示例–多项式回归 下面,我们有一组温度(temperature)和实验产出量(yield)训练样本,该数据由博客 Polynomial Regression Examples 所提供: tempe ...

  6. 8.1 概述-机器学习笔记-斯坦福吴恩达教授

    概述 异常检测(Anomaly Detection)是机器学习里面的一个常见应用,机器通过训练,将知道什么样的样本是正常样本,从而具备识别异常样本的能力. 飞机制造商在飞机引擎从生产线上流入市场前,会 ...

  7. 5.5 SVM补充-机器学习笔记-斯坦福吴恩达教授

    SVM补充 决策边界 Coursera 上 ML 的课程对 SVM 介绍有限,参看了周志华教授的<机器学习>一书后,补充了当中对于 SVM 的介绍. 首先,我们考虑用更传统的权值定义式来描 ...

  8. 4.6 大数据集-机器学习笔记-斯坦福吴恩达教授

    大数据集 在机器学习领域,流传着这样一句话: It's not who has the best algorithm that wins. It's who has the most data. 所以 ...

  9. 4.3 偏差与方差-机器学习笔记-斯坦福吴恩达教授

    偏差与方差 在机器学习中,偏差(bias) 反映了模型无法描述数据规律,而 方差(variance) 反映了模型对训练集过度敏感,而丢失了数据规律,高偏差和高方差都会造成新数据到来时,模型给出错误的预 ...

最新文章

  1. 获取当前脚本目录路径问题汇总
  2. 【camera-radar】相机-毫米波雷达联合标定方案介绍+实现
  3. 【BZOJ2115】[Wc2011] Xor 高斯消元求线性基+DFS
  4. xmind可以画流程图吗_新娘妆可以自己画吗?临夏化妆学校告诉你答案!
  5. linux中top工具,Linux命令工具 top详解
  6. 没有主清单属性_梦幻西游电脑版:神威组第一大唐?大佬两天更新200W硬件,这身属性难被超越!太狠了...
  7. kuboard使用mysql_基于 Kubernetes 的微服务图形化管理界面 Kuboard
  8. 任务四十七:王牌特工 准备工作(二)
  9. 计算机基础技能应用查询中心,计算机基础应用教程
  10. 数据结构与算法笔记-------选择排序
  11. Veritas Backup Exec 21.4 Multilingual (Windows) 下载
  12. matlab势场动态栅格路径规划,融栅格法和人工势场法的机器人三维路径规划
  13. Oracle 定时任务执行存储过程
  14. unity 接 steam,获取steamID ,username
  15. 生命的编码-业余玩家怎么读懂AlphaFold的重要意义
  16. 网络工程师之网络规划
  17. Oracle系列:start with connect by prior 使用方法
  18. 图像处理用什么神经网络,神经网络图像处理
  19. 网络工程师----成长之路
  20. Luogu P2751 [USACO4.2]工序安排Job Processing

热门文章

  1. 初学者的困惑:OOP与一般编程的区别
  2. 6kyu Persistent Bugger
  3. bzoj 1007 : [HNOI2008]水平可见直线 计算几何
  4. Spring MVC 3 深入总结
  5. OA项目14:权限管理功能分析
  6. 关于C#调用Excel的资源占用问题
  7. List Tuple Dictionary 区别
  8. opengl纹理示例
  9. Spring Boot 面试,一个问题就干趴下了!
  10. 二级联动,三级联动,初学者,纯javascript,不含jQuery