专栏首页用户2133719的专栏CS229 课程笔记之一:线性回归

CS229 课程笔记之一:线性回归

1 算法简介

线性回归是一种监督学习算法,即给定一个训练集,去学习一个假设函数,用来尽量精确地预测每个样本对应的输出。从输出变量的离散程度来看,监督学习算法可以分为两类。线性回归属于回归算法,其输出变量连续;而另一类监督学习算法是分类算法,其输出变量离散。

2 求解方法

对于线性回归代价函数的求解,有两种可选方法:梯度下降正规方程

2.1 梯度下降

2.1.1 分类

梯度下降主要可以分为两类:批量梯度下降随机梯度下降

  • 批量梯度下降:每次计算梯度都需要遍历所有的样本点,当样本量很大时, 计算速度会⼗分缓慢
  • 随机梯度下降:每次只考虑一个样本点,⽽不是所有样本点,计算速度会提⾼, 但是收敛过程会⽐较曲折, 可能无法精确收敛⾄最优值

随机梯度下降的一种优化形式是⼩批量梯度下降,利⽤矩阵并行运算,一次处理小批量的样本点,有时可以⽐随机梯度下降速度更快。

2.1.2 梯度方向的选择

选择梯度⽅向的原因是它是使代价函数减小(下降)最⼤的⽅向,我们可以利用柯⻄不等式对这一结论进行证明:

4 局部加权线性回归

本节将介绍⼀种特殊的线性回归算法:局部加权线性回归

4.1 欠拟合与过拟合

对于传统的线性回归,特征的选择极为重要,对于下面三幅图,我们称第一幅图的模型是欠拟合,第三幅图的模型则是过拟合(之后的笔记中会详细介绍)。

可以看出,找到一个全局的线性模型去拟合整个训练集,并不是一件简单的事情,往往会引起欠拟合或是过拟合的发生。对于这种情况之后会给出解决方案,而这里我们提出了另外一种思路,即局部线性加权回归,这种方案可以使特征的选择的重要性降低。

4.3 参数学习与非参数学习

局部加权线性回归本质上是一种非参数学习算法,而传统的线性回归是一种参数学习算法

两者的区别在于:

  • 参数学习算法有一组有限的、固定的参数,一旦完成拟合,只需要保存下参数值做预测,而不需要保存完整的训练集;
  • 非参数学习算法由于参数不固定,所以需要保存完整的训练集来进行预测,而不仅仅是保存参数。

非参数学习导致的结果:为了表达假设 而保存的数据将随着训练集的大小而线性增长。

5 思维导图

本文分享自微信公众号 - 口仆(roito33),作者:口仆

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-12-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 《PRML》读书笔记之一:多项式曲线拟合

    模式识别简单来说就是使用计算机算法自动发现数据中隐藏的规律,并利用这些规律来处理数据,比如对数据进行分类。下面会以手写数字识别为例,介绍模式识别中的常见术语。

    口仆
  • 科学写作经验总结

    本篇文章旨在简单总结关于科学论文写作的一些经验,文中的大部分观点来源于下面两份参考资料:

    口仆
  • CS229 课程笔记之三:广义线性模型

    实际上这些模型都是一个更为广泛的模型族的特例,这个模型族被称为广义线性模型(Generalized Linear Models)。

    口仆
  • 秒懂“线性回归预测”

    线性回归是机器学习中的概念,线性回归预测算法一般用以解决“使用已知样本对未知公式参数的估计”类问题。

    架构师之路
  • Jhipster技术栈定制 - 基于UAA的微服务之间安全调用

    3个微服务都是通过Jhipster生成。 工程代码生成完之后,根据上一节启动的组件的实际情况,修改微服务配置文件中Eureka和database相关的配置。

    羽客
  • 吴恩达机器学习笔记

    (1)Field of study that gives computers the ability to learn without being explic...

    闪电gogogo
  • springBoot生成SQL文件-使用Hibernate5的SchemaExport实现01

    上一篇我们说了使用jpa配置属性直接生成SQL全量脚本文件的方式,想重新了解可以看:springBoot+jpa根据实体类注解生成SQL文件。 这一篇是根据H...

    汐楓
  • 14年,50%市场份额,一家中国公司何以在丹麦成功?

    丹麦,安徒生故乡,隶属北欧,毗邻西欧,人口575万,人均GDP 5万美元,虽然在欧洲只能排16,但也是全球最富足、最具市场购买力的国家之一。

    量子位
  • 在Spring下集成ActiveMQ

    环境 如何在spring环境下集成ActiveMQ。如果要在spring下集成ActiveMQ,那么就需要将如下jar包导入项目: ? 本文两个实例,项目结构如...

    java达人
  • Python 基础数据结构,今年学好 Python,工作效率涨一倍

    相信大家在工作中,会有一些头大的需求,特点是:一次性,稍微有点复杂,手工也能弄完。用 Java 写吧太笨重,代码多,不用 Java 写手工搞吧,痛不欲生。

    kk大数据

扫码关注云+社区

领取腾讯云代金券