Andrew Ng机器学习算法入门(八):正规方程
正规方程
在先学习正规方程之前,先来复习一下之前学过的常规的回归方程的解法。
假设存在如果的代价函数,

,解法也十分的简答。
但是有时候遇到的情况或许会变得相当的复杂。

的数,如果是按照常规的方式进行求解,那么按照之前的求解方式,就需要对每一个theta进行微分,然后综合求最小值,这样的运算结果可能最后是相当的复杂。
那么这个时候正规方程就非常有用了。
正规方程对于theat的求解非常的简单,如下:

如何求解theta,
还是房价的例子,在房价中,假设房价与房屋面积,房间数量,房间位于的楼层,房间的年限有关,最终得到的训练数据如下:

最后求得的theta的结果为:

当的简单
正规方程与梯度下降算法的比较
由于使用markdwon不是很好画图,这里就直接使用列表的方式来显示了。
梯度下降算法的优缺点
- 需要选择学习率a
- 需要进行多次迭代
- 当特征(n)非常多时,算法效果很好
- 适用于各种类型的模型
正规方程算法的优缺点
- 不需要学习率
- 不需要进行迭代
- 需要计算转置、逆矩阵等算法
- 不适用于n比较大的情况,当n<10000时,还可以接受
- 仅仅适用于线性模型,不适合逻辑回归等其他的分类模型
总体来说,当特征数量不是很大的时候(小于10000),标准方程是一个很好的计算参数theta的替代方法。
其他
有一点需要注意的时候,在使用正规方程的时候,需要计算

么就是否意味着无法进行下去了?
在Octave中,正规方程的写法是:

inv()方法还是能够处理。当然这种处理方式其实上还是借助于第三方的计算工具解决问题。
如果在计算机中真的出现了不可逆的举证,有可能是一下两种情况:
- 重复的特征,例如在房价的例子中,存在两个房屋面积的特征x1和x2。x1的单位是英尺,x2的单位是平方米。英尺和米是可以相互转换的,这样就导致这两个特征有一个是重复多余,这样就有可能导致不可逆。处理方法也很简单,直接去掉一个即可。
- 过多的特征,特征的数量n大于样本数量m。例如样本数量只有10个,但是特征数量有100个,这样也有可能会导致不可逆。处理的方式也很简单,删除一些特征或者是使用正规化的线性代数的方法。
为了了能到远方,脚下的每一步都不能少
Andrew Ng机器学习算法入门(八):正规方程的更多相关文章
- Andrew Ng机器学习算法入门(一):简介
简介 最近在参加一个利用机器学习来解决安全问题的算法比赛,但是对机器学习的算法一直不了解,所以先了解一下机器学习相关的算法. Andrew Ng就是前段时间从百度离职的吴恩达.关于吴恩达是谁,相信程序 ...
- Andrew Ng机器学习算法入门(二):机器学习分类
机器学习的定义 Arthur Samuel给出的定义,Field of Study that gives computers the ability to learn without being ex ...
- Andrew Ng机器学习算法入门(九):逻辑回归
逻辑回归 先前所讲的线性回归主要是一个预测问题,根据已知的数据去预测接下来的情况.线性回归中的房价的例子就很好地说明了这个问题. 然后在现实世界中,很多问题不是预测问题而是一个分类问题. 如邮件是否为 ...
- Andrew Ng机器学习算法入门(三):线性回归算法
线性回归 线性回归,就是能够用一个直线较为精确地描述数据之间的关系.这样当出现新的数据的时候,就能够预测出一个简单的值. 线性回归中最常见的就是房价的问题.一直存在很多房屋面积和房价的数据,如下图所示 ...
- Andrew Ng机器学习算法入门(十):过拟合问题解决方法
在使用机器学习对训练数据进行学习和分类的时候,会出现欠拟合和过拟合的问题.那么什么是欠拟合和过拟合问题呢?
- Andrew Ng机器学习算法入门((七):特征选择和多项式回归
特征选择 还是回归到房价的问题.在最开始的问题中,我们假设房价与房屋面积有关,那么最开始对房价预测的时候,回归方程可能如下所示: 其中frontage表示的房子的长,depth表示的是房子的宽. 但长 ...
- Andrew Ng机器学习算法入门((六):多变量线性回归方程求解
多变量线性回归 之前讨论的都是单变量的情况.例如房价与房屋面积之前的关系,但是实际上,房价除了房屋面积之外,还要房间数,楼层等因素相关.那么此时就变成了一个多变量线性回归的问题.在实际问题中,多变量的 ...
- Andrew Ng机器学习算法入门(四):阶梯下降算法
梯度降级算法简介 之前如果需要求出最佳的线性回归模型,就需要求出代价函数的最小值.在上一篇文章中,求解的问题比较简单,只有一个简单的参数.梯度降级算法就可以用来求出代价函数最小值. 梯度降级算法的在维 ...
- Andrew Ng机器学习算法入门((五):矩阵和向量
矩阵定义 数学上,一个m×n的矩阵是一个由m行n列元素排列成的矩形阵列 使用Aij来获取矩阵中第i行j列的数据 向量的定义 向量就是n行1列的特殊矩阵 由于向量仅仅只有1行,那么通过一个变量i来指定获 ...
随机推荐
- PHP配置 2. 日志相关配置
例如,在disable_functions,定义禁用phpinfo函数, # vim /usr/local/php/etc/php.ini disable_functions=phpinfo,eval ...
- sitemesh简单介绍
SiteMesh 是一个网页布局和修饰的框架,利用它可以将网页的内容和页面结构分离,以达到页面结构共享的目的. Sitemesh是由一个基于Web页面布局.装饰以及与现存Web应用整合的框架. 它能帮 ...
- LZZY高级语言程序设计之169页**5.17
import java.util.Scanner;public class MQ3 { public static void main(String[] args) { Scanner sc = ne ...
- HDU_5414 CRB and String 【字符串】
一.题目 CRB and String 二.分析 对于这题,读懂题意非常重要. 题目的意思是在$s$的基础上,按题目中所描述的步骤,即在$s$中任意选择一个字符$c$,在这个字符后面添加一个不等于$c ...
- Java并发编程之同步/并发集合
同步集合 Java中同步集合如下: Vector:基于数组的线程安全集合,扩容默认增加1倍(ArrayList50%) Stack:继承于Vector,基于动态数组实现的一个线程安全的栈 Hashta ...
- C# 调用HTTP接口两种方式
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net ...
- 14、MyBatis教程之全部(包括所有章节)
MyBatis 3.5.5 教程 1.环境准备 jdk 8 + MySQL 5.7.19 maven-3.6.1 IDEA 学习前需要掌握: JDBC MySQL Java 基础 Maven Juni ...
- 【Linux学习笔记1】-centos6.9部署django
一,centos6.9部署django 部署套件:centos6.9+nginx+mysql+uwsgi+python3+django 首先还是要明白这几个部分之间的关系(自己也是初学者,希望 ...
- OpenCV图像处理中“找圆技术”的使用
一.为什么"找圆" 圆是基本图形的一种,更为重要的是,自然情况下采集的图像,很少大量存在"圆":但凡存在的,大都是人工的,那么就必然代表特定的意义,从而 ...
- Centos7下安装JDK详细过程记录
1.查询系统是否安装了java: [root@bogon ~]# java -version 根据上图显示,系统默认安装了Openjdk,它和我们使用的java jdk有些区别(具体的可度娘),所以需 ...