normal equation(正规方程)
normal equation(正规方程)
- 正规方程是通过求解下面的方程来找出使得代价函数最小的参数的:
\]
- 假设我们的训练集特征矩阵为 \(X\)(包含了\(x_0=1\))并且我们的训练集结果为向量 \(y\),则利用正规方程解出向量:
\]
- 梯度下降与正规方程的比较:
- 梯度下降:需要选择学习率\(\alpha\);需要多次迭代;当特征数量n大时也能较好适用,适用于各种类型的模型;
- 正规方程:不需要选择学习率\(\alpha\);不需要迭代,一次运算就可以得出\(\theta\)的最优解;需要计算\({\left( {X^T} X \right)}^{-1}\);如果特征数量n较大则运算代价大,因为矩阵逆的计算时间复杂度为\(O(n^3)\),通常来说当n小于10000时还是可以接受的,只适用于线性模型,不适合逻辑回归模型等其他模型。
编程实现
在编程作业1.1:单变量线性回归的基础上实现:
# 正规方程
def normalEqn(X, y):
theta = np.linalg.inv(X.T@X)@X.T@y #X.T@X等价于X.T.dot(X);np.linalg.inv():矩阵求逆
return theta
final_theta2=normalEqn(X, y)#感觉和批量梯度下降的theta的值有点差距
final_theta2

在之前运行完梯度下降算法之后,我们输出\(\theta\)的值如下:

可以看出两种方法求出的\(\theta\)值基本相似。
normal equation(正规方程)的更多相关文章
- Linear regression with multiple variables(多特征的线型回归)算法实例_梯度下降解法(Gradient DesentMulti)以及正规方程解法(Normal Equation)
,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, , ...
- 正规方程 Normal Equation
正规方程 Normal Equation 前几篇博客介绍了一些梯度下降的有用技巧,特征缩放(详见http://blog.csdn.net/u012328159/article/details/5103 ...
- Normal Equation Algorithm
和梯度下降法一样,Normal Equation(正规方程法)算法也是一种线性回归算法(Linear Regression Algorithm).与梯度下降法通过一步步计算来逐步靠近最佳θ值不同,No ...
- coursera机器学习笔记-多元线性回归,normal equation
#对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...
- (三)用Normal Equation拟合Liner Regression模型
继续考虑Liner Regression的问题,把它写成如下的矩阵形式,然后即可得到θ的Normal Equation. Normal Equation: θ=(XTX)-1XTy 当X可逆时,(XT ...
- 【转】Derivation of the Normal Equation for linear regression
I was going through the Coursera "Machine Learning" course, and in the section on multivar ...
- 5种方法推导Normal Equation
引言: Normal Equation 是最基础的最小二乘方法.在Andrew Ng的课程中给出了矩阵推到形式,本文将重点提供几种推导方式以便于全方位帮助Machine Learning用户学习. N ...
- 机器学习入门:Linear Regression与Normal Equation -2017年8月23日22:11:50
本文会讲到: (1)另一种线性回归方法:Normal Equation: (2)Gradient Descent与Normal Equation的优缺点: 前面我们通过Gradient Desce ...
- Normal Equation
一.Normal Equation 我们知道梯度下降在求解最优参数\(\theta\)过程中需要合适的\(\alpha\),并且需要进行多次迭代,那么有没有经过简单的数学计算就得到参数\(\theta ...
随机推荐
- 剑指offer - 顺时针打印矩阵 - JavaScript
题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下 4 X 4 矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印 ...
- 【WPF学习】第二十四章 基于范围的控件
WPF提供了三个使用范围概念的控件.这些控件使用在特定最小值和最大值之间的数值.这些控件——ScrollBar.ProgressBar以及Slider——都继承自RangeBase类(该类又继承自Co ...
- 开源DDD设计模式框架YMNNetCoreFrameWork第五篇-Swagger增加权限认证
配置文件services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Version = " ...
- Oozie笔记
简介 Oozie 是用于 Hadoop 平台的开源的工作流调度引擎. 用于管理 Hadoop 属于web应用程序, 由 Oozie client 和 Oozie Server 两个组件构成. Oozi ...
- C# Process类详解
C# Process类详解 Process[] processes = Process.GetProcessesByName(current.ProcessName); 根据进程名字找到所有进程,返回 ...
- Ubuntu18安装LAMP环境详细步骤
Ubuntu18安装Lamp环境 1.su root 切换root账号(root账户权限高不用总输入sudo) 更新源 阿里源网址:https://opsx.alibaba.com/mirror 更 ...
- POJ 2187:Beauty Contest 求给定一些点集里最远的两个点距离
Beauty Contest Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 31414 Accepted: 9749 D ...
- hadoop yarn 实战错误汇总
1.hadoop yarn 运行wordcount时执行完成,但是返回错误 错误信息如下: // :: INFO mapreduce.Job: Job job_1441395011668_0001 f ...
- content编码
1.content有5种属性 a.content:“” //为空 b.content:attr(TItle) //可以获取当前选中标签的属性值 eg: ...
- linux提交代码到github
1.首先你得注册个github账户 .... 2.新建项目(可以选择私有或者公开的) 3.上述github代码仓库建立好了 ,就回到自己的linux服务器 3.1 在自己的项目目录里 qi 3.1. ...