Linear Regression总结2
Linear Regression总结
作者:洞庭之子
微博:洞庭之子-Bing
(2013年11月)
关于linear regression,Andrew Ng老师的课程中介绍了两种方法:gradient descent(梯度下降法)和normal equation,《机器学习实战》中直接使用的normal equation及其改进方法,本文记录对着两种方法的学习笔记。
第一部分,Gradient Descent方法
上一篇博客总结的是logistic regression(http://blog.csdn.net/dongtingzhizi/article/details/15962797),这一篇反过来总结linear regression,实际上这篇应该写在前面的。由于在上一篇中对regression问题的步骤、递归下降方法、向量化(vectorization)等都做了很详细的说明,在这一篇中将不再重复,需要的话可以回过头去看上一篇。
上一篇中介绍的regression问题的常规步骤为:1,寻找h函数(即hypothesis);2,构造J函数(损失函数);3,想办法是的J函数最小并求得回归参数(θ),下面一次看看这些步骤。
(一)h函数
每个训练样本有n个特征,例如Andrew Ng老师的课程中给的房价预测的例子,影响房价的因素有n个,如下图:
一般表示格式按如下约定,第i条样本的输入x(i):
所有训练样本的输入表示为x,输出表示为y:
θ就是我们要求的回归参数,因为是线性回归,所以为没个特征x(i)添加一个参数θ(i),所以h函数的形式如下:
为了公式表示方便,将x0设定为1,同时将所有θ表示成向量:
则有:
.
(二)J函数
linear regression中一般将J函数取成如下形式:
至于为什么取成该式,这里不进行深入的分析和推导,网上有一篇文章《Standford机器学习+线性回归CostFunction和Normal+equation的推导》进行了推导,可供参考。
(三)gradient descent
对于上面给出的J(θ),有:
所以θ的迭代公式为:
(四)其他问题
1. Feature scaling
2. vectorization
3. 关于学习率α
第二部分,Normal equation方法
因为gradient descent方法需要迭代很多次是的J(θ)达到最小值求得θ,自然而然的会有一种疑问:能不能不迭代,一次求得所需的θ呢?答案是肯定的,normal equation就是这样一种方法。关于normal equation,Andrew ng老师的课程中介绍的非常简单,几乎是直接给出了下面的公式。《机器学习实战》中也没有讲具体的推导,也是给出了该公式(P138页)。但是,二者都提到一个基本的数学原理,那就是当J(θ)对所有θj的偏导等于0时,J(θ)取最小值(高等数学中有当导数等于0时函数达到极值)。
(1)关于non-invertibility
总结
Linear Regression总结2相关推荐
- 【cs229-Lecture2】Linear Regression with One Variable (Week 1)(含测试数据和源码)
从Ⅱ到Ⅳ都在讲的是线性回归,其中第Ⅱ章讲得是简单线性回归(simple linear regression, SLR)(单变量),第Ⅲ章讲的是线代基础,第Ⅳ章讲的是多元回归(大于一个自变量). 本文的 ...
- Linear Regression(一)——
Linear Regression(一)-- 机器学习 回归 定义 回归的定义 在平面上存在这些点我希望能用一条直线尽可能经过它们. 于是我们画了下面的一条直线 这样的过程就叫做回归. 这个过程中我们 ...
- R语言使用lm函数拟合多元线性回归模型、假定预测变量没有交互作用(Multiple linear regression)
R语言使用lm函数拟合多元线性回归模型.假定预测变量没有交互作用(Multiple linear regression) 目录
- Python使用sklearn和statsmodels构建多元线性回归模型(Multiple Linear Regression)并解读
Python使用sklearn和statsmodels构建多元线性回归模型(Multiple Linear Regression)并解读 #仿真数据集(预测股票指数) 这里的目标是根据两个宏观经济变量 ...
- R语言可视化包ggplot2绘制线性回归模型曲线实战( Linear Regression Line)
R语言可视化包ggplot2绘制线性回归模型曲线实战( Linear Regression Line) 目录 R语言可视化包ggplot2绘制线性回归模型曲线实战( Linear Regression ...
- R语言基于线性回归(Linear Regression)进行特征筛选(feature selection)
R语言基于线性回归(Linear Regression)进行特征筛选(feature selection) 对一个学习任务来说,给定属性集,有些属性很有用,另一些则可能没什么用.这里的属性即称为&qu ...
- 局部加权线性回归(Local Weighted Linear Regression)+局部加权回归+局部线性回归
局部加权线性回归(Local Weighted Linear Regression)+局部加权回归+局部线性回归 locally weighted scatterplot smoothing,LOWE ...
- python中的linearregression_【python+机器学习(2)】python实现Linear Regression
欢迎关注哈希大数据微信公众号[哈希大数据] python实现多元线性回归算法(lr) 想必大家在很早之前就接触过函数的概念,即寻找自变量和因变量之间的对应关系,一元一次.多元一次.一元二次等等,表示的 ...
- Linear regression with one variable算法实例讲解(绘制图像,cost_Function ,Gradient Desent, 拟合曲线, 轮廓图绘制)_矩阵操作...
%测试数据 'ex1data1.txt', 第一列为 population of City in 10,000s, 第二列为 Profit in $10,000s 1 6.1101,17.592 2 ...
- 机器学习之线性回归(Linear Regression)
线性学习中最基础的回归之一,本文从线性回归的数学假设,公式推导,模型算法以及实际代码运行几方面对这一回归进行全面的剖析~ 一:线性回归的数学假设 1.假设输入的X和Y是线性关系,预测的y与X通过线性方 ...
最新文章
- 23岁一无所有怎么办_我搬到国外去创业,然后一无所有。
- 微服务配置中心是干啥的_配置中心微服务器配置
- Qcom LK阶段如何使用ADC介绍
- 并发测试工具_软件测试工程师都在用哪些测试工具?
- C++标准转换运算符static_cast
- 72年属鼠48岁有一灾2020_李半仙推算:1972年虚岁48岁属鼠人,2020年干什么最能发财??...
- Java 判断密码是否是大小写字母、数字、特殊字符中的至少三种
- linux脚本大全,shell大全
- 分布式事务方案这么多,到底应该如何选型?
- mysql数据库工程师考证题_100道MySQL常见面试题总结
- C++编程语言的应用方向有哪些?
- Atitit 提升扩展性指标与方法总结 目录 1. 扩展性常见指标	1 1.1. 代码简洁,应业务变动调整修改少	1 1.2. 免编译	1 1.3. 是否支持热部署	2 2. 常见的方法策略	2
- 简单谈一谈git小乌龟操作
- EP100伺服电机驱动全套资料,STM32平台FOC控制
- 分销商城系统源码开发
- wlan协议—802.11n—802.11ac 5G和2.4G
- 百度新闻爬虫搜索引擎实战---爬虫篇(2)
- 2021华数杯数学建模选题建议
- 解析复杂深度学习项目构建
- C# BBP公式计算π
热门文章
- matlab地图掩膜,要素轮廓线掩膜
- linux限制pptp连接数_性能调优,让你的服务器更强大!增加TCP连接最大限制
- 西工大与东北大学计算机,国内世界高水平大学排名:西北工业大学位居第一,东北大学排第二...
- Java:封装的概念,UML类图,构造方法,this关键字,static关键字,方法重载,包package
- java对一个无序列表进行分组
- java post 打开新页面_JAVA后台POST/GET访问方法
- 文巾解题 77. 组合
- tableau实战系列(三十八)-Tableau Server 端口耗竭的具体表象及如何避免端口耗竭
- 从C语言的角度重构数据结构系列(七)-数据结构堆知识求解数据流中的第K大元素
- 一文深度解析线性表的前世今生!!!