当前位置: 首页 > news >正文

【速通版】吴恩达机器学习笔记Part3

目录

1.多元线性回归

a.特征缩放

 可行的缩放方式:

1.除以最大值:

 2.mean normalization:

 3.Z-score normalization

b.learning curve:

 c.learning rate:

2.多项式回归

3.classification

 logistics regression


1.多元线性回归

其意义很清晰了,多维更准确。很有意思也是我之前没关注的点是,一般下标表示分量、上标表示不同的inputs、又为了区分次数加了括号。

点乘是np.dot

用向量化的函数而不是分量循环,可以提高效率。

  讲真矢量化和parallel真的好酷呀……作为数学专业我理解是从notation的角度,很清晰很明确,但是从算法编程的角度也有其优势、而这样的优势是由底层代码包的编写者、底层(非judge义)工程师实现的。这也算是某种意义下的殊途同归吧。

a.特征缩放

 以房价为例,相关因素考虑大小和卧室数量,可以看到大小数值非常大,那么调整w的时候可能会很困难,因为w可能只是变了一点点,wx就变了非常大,因此考虑调整范围差不多

 

 可行的缩放方式:

1.除以最大值:

 2.mean normalization:

 3.Z-score normalization

 

霍,还需要多次缩放呢。。。。

b.learning curve:

标注了随着迭代次数的增加目标函数的变化,(比设置\epsilon更直观) 

 c.learning rate:

通常来说,在learning curve里可能出现随着迭代次数的增加,loss function震荡甚至上升,这可能由于 1.BUG 2.学习率过大,因此可调试中尝试设置很小的学习率,如果正常会下降的。但是,实际学习的过程中学习率不能太小,这样效率太低。 

大佬常用方法:先设置很小的学习率跑几个epoch,,然后3倍3倍增加,保证找到过小(下降很慢)和过大(震荡或者上升),然后在合适范围内找尽量大的。

 2.多项式回归

 简单来说,就是线性不合适啦,我们想自己选选用高次、乘积、开根等不同方法~不赘述

3.classification

 正如以下例子可以看到,拟合有时候很差:本来考虑左侧的四个negative class和positive class,设置阈值threshold为0.5,效果就很好了,但是当我们加入最右的例子,本来是一个一看就是positive sample的例子,但是却导致预测结果出现偏差。因此我们考虑classification。

 logistics regression

可以看出,非常满足的例子在逻辑斯蒂回归里尽量不重视,而在中间的样本更加强调。怎么强调呢,也就是说,当我们多发现中部模糊地带的样本,对threshold的影响很剧烈、也就是拟合函数中斜率很大。 

重述一下,我们在线性之外拟合一个逻辑斯蒂回归来做分类,就是为了防止【本来很明确分类的样本加进去反而会影响算法的输出结果】,让算法更关注于模糊地带的样本。f输出的可以理解为【样本特征为x的情况下,分类为1的概率】。

 

 可视化理解,略过 

logistics regression-Cost function:

在线性回归中 平方误差很好用(凸的,可以直接到达全局最优),但是逻辑斯蒂回归模型平方误差就是非凸了,因此我们考虑换一个cost。

 因此,转而用以下的函数:

值得注意的是,此处的函数是分类函数。那么目标函数转化为:

 利用梯度下降法:

 GD实现,逻辑斯蒂回归模型与线性回归函数不同但是trick类似

http://www.lryc.cn/news/1243.html

相关文章:

  • 【leetcode】跳跃游戏
  • 论文投稿指南——中文核心期刊推荐(冶金工业 2)
  • 【GPLT 二阶题目集】L2-044 大众情人
  • SpringBoot整合(二)MyBatisPlus技术详解
  • 导入importk8s集群,添加node节点,rancher agent,Rancher Agent设置选项
  • C++11--右值引用与移动语义
  • Python SQLAlchemy入门教程
  • 你是真的“C”——操作符详解【下篇】+整形提升+算术转换
  • 文本匹配SimCSE模型代码详解以及训练自己的中文数据集
  • Biotin-PEG-FITC 生物素聚乙二醇荧光素;FITC-PEG-Biotin 科研用生物试剂
  • FISCO BCOS 搭建区块链,在SpringBoot中调用合约
  • 面试官:int和Integer有什么区别?
  • MFC常用技巧
  • C++ —— 多态
  • java agent设计开发概要
  • node.js笔记-模块化(commonJS规范),包与npm(Node Package Manager)
  • Linux 磁盘坏块修复处理(错误:read error: Input/output error)
  • API 面试四连杀:接口如何设计?安全如何保证?签名如何实现?防重如何实现?
  • 操作系统题目收录(六)
  • 2023年十款开源测试开发工具推荐!
  • MySQL慢查询分析和性能优化
  • C++学习笔记(四)
  • 【4】深度学习之Pytorch——如何使用张量处理时间序列数据集(共享自行车数据集)
  • mulesoft MCIA 破釜沉舟备考 2023.02.10.01
  • 干货 | PCB拼板,那几条很讲究的规则!
  • 笔试题-2023-思远半导体-数字IC设计【纯净题目版】
  • canvas根据坐标点位画图形-canvas拖拽编辑单个图形形状
  • JavaEE 初阶 — 确认应答机制
  • 0207 事件
  • SpringBoot整合Swagger