Multivariate Linear Regression的参数估计
来源:互联网 发布:非农就业数据原因 编辑:程序博客网 时间:2024/04/29 16:47
多元线性回归的表现形式是
其中
其中
令:
(2)式可简记为(3)式:
例如下表,我们要根据房屋属性预测房屋价格。那么在该例中,一共有4个属性,分别是Size, Number of bedrooms, Number of floors, Age of home,表示为
上表中有很多行,每一行称为一个训练样本(training example/sample). 为方便描述,定义以下符号:
从(3)式可知,如果我们知道了参数矩阵
代价函数及其参数的估计
多元线性回归方程的代价函数定义如下:
其中
梯度下降法估计参数
估计
梯度下降法的过程描述:
Repeat:
以上过程要同时求出所有的
迭代终止的条件是:
达到指定的迭代的次数,或者
新的
正规方程求解参数
正规方程(Normal Equation)求解参数是解析法求解,不需要迭代过程。
过程參考正规方程推导(我不想輸公式了)
代价函数的概率解释与推导
上面给出了代价函数的定义与参数估计的过程。代价函数的定义如(4)式,直觉上很好理解,但为何代价函数要定义成这个样子?下面给出一个概率上的解释。
文章最开始给出了线性回归模型的表现形式,如(1)式。更准确的写法应该是:
多出来的
1. 数学上处理的便利
2. 根据中心极限定理,独立的随机变量的和,即多种随机误差的累积,其总的影响是接近正态分布的。实际应用中,诸多独立随机变量的分布是服从正态分布的。
因此,对于每一个训练样本,其误差
再由(1’)式和(3)式,改写成机器学习中常见的条件概率形式,有:
简记为:
上式表示,若给定参数
注意到
对(9)式两边取对数,将连乘化为求和:
显然,要使得
线性回归的规范化
拿到training data,提取属性后,构造(4)式作为代价函数,通过梯度下降或正规方程可以得到回归方程的参数,将参数代入(2)式即可预测未知数据。但是如果数据的属性很多,例如一个语料库(corpus)用了2000个不同的单词,将这些单词全部作为线性回归方程的输入,那么属性数量
通常规范化(regularization)为了解决以下问题:
1. 相对于训练样本数量,属性数量太多,容易造成过度拟合(over-fitting)
2. 属性数量太多且属性矩阵是个稀疏矩阵
线性回归的主要任务是计算代价函数的最小值得到参数。线性方程的规范化(Regularized Linear Regression)就从改造代价函数开始。
如下图,若要根据房屋面积预测房价,根据图中的训练样本分布(那些叉叉),一个二次多项式足够了。
但是如果用更高次的多项式呢?如下图,可以将训练样本拟合得更加好;然而此时用下圖预测,结果肯定惨不忍睹。
注意到两个方程之间只差了
其中
规范化后的梯度下降过程
略加推导,规范化后的线性回归梯度下降估计参数过程变为:
Repeat:
规范化后的正规方程
规范化后的正规方程形式如下(我也不知道怎么推导):
其中A是对角线上除了第一个元素为0的对角方阵:
Reference
以上例子、公式、圖片來源於Coursera Machine Learning在線課程。
回归模型的代价函数的推导过程参考:回归模型的概率解释。
- Multivariate Linear Regression的参数估计
- Multivariate Linear Regression
- Multivariate Linear Regression Exercise
- Exercise 3: Multivariate Linear Regression
- 多变量线性回归 Multivariate Linear Regression
- [机器学习实验2]Multivariate Linear Regression
- Multivariate Linear Regression代码-Andrew NG Machine Learning Ex3
- 【机器学习笔记4】Stanford公开课Exercise 3——Multivariate Linear Regression
- 机器学习课程 Multivariate Linear Regression(多变量线性回归)
- 机器学习&深度学习实践(Python版)----Multivariate Linear Regression(多元线性回归)
- 【机器学习笔记4】Stanford公开课Exercise 3——Multivariate Linear Regression
- #“Machine Learning”(Andrew Ng)#Week 2_1:Multivariate Linear Regression
- Linear Regression & Ridge Regression的matlab实现
- Linear regression
- linear regression
- linear regression
- linear regression
- Linear Regression
- 聊聊Linux中的线程本地存储(1)——什么是TLS
- Android Studio的no debuggable applications问题
- android studio 2.1去标题栏方法
- ci框架url传递参数出现:The URI you submitted has disallowed characters
- Leetcode 345. Reverse Vowels of a String (Easy) (cpp)
- Multivariate Linear Regression的参数估计
- ci框架修改默认控制器
- 根据动态规划和递归写出10万以内的由素数拼接而成的素数(Java语言)
- Python 学习(一)
- Leetcode no. 179
- 《我的世界》检测不到java怎么办?
- Spark Rpc通信源码分析
- 【NOIP2016提高A组模拟7.17】寻找
- ci框架关闭notice消息提示方法