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来指定获 ...
随机推荐
- JSP, EL, JSTL的使用
JSP基础指令和语法 回顾 在Jsp页面: 只要是Java代码就会原封不动的输出, 如果是html代码,就会转义为 out.write("<html>\r\n") 这样 ...
- Java线程安全问题
线程安全问题是一个老生常谈的问题,那么多线程环境下究竟有那些问题呢?这么说吧,问题的形式多种多样的,归根结底的说是共享资源问题,无非可见性与有序性问题. 1. 可见性 可见性是对于内存中的共享资源来说 ...
- centos /bin /sbin /usr/bin /usr/sbin 目录的说明
在linux下我们经常用到的四个应用程序的目录是/bin./sbin./usr/bin./usr/sbin .而四者存放的文件一般如下: bin目录: bin为binary的简写主要放置一些系 ...
- Spring MVC获取请求参数的其中两张方式
1 @RequestParam 从请求地址获取参数 例如 username=xxxx 2 @PathVariable 从请求路径获取参数 例如 /req/{123}
- 【linux】Linux删除文件后磁盘依旧占用空间的问题
转自https://blog.51cto.com/2483526/798379 感谢 1.用df 检查发现/根目录可用空间为0 [root@/]#df -h 2.用du检查发现各目录占用的空间都很少, ...
- 【关系抽取-R-BERT】加载数据集
认识数据集 Component-Whole(e2,e1) The system as described above has its greatest application in an arraye ...
- $.ajax data向后台传递参数失败 contentType: "application/json"
在ajax方法设置中若不添加 contentType: "application/json" 则data可以是对象: $.ajax({ url: actionurl, type: ...
- Linux Shell 统计一(行\列)数值的总和及行、列转换
(对一列数字求和) 在日常工作当中需要对文本过滤出来的数字进行求和运算,例如想统计一个MySQL分区表现在有多大 # ls -lsh AdPlateform#P#p*.ibd |grep G 2.6 ...
- Java 多线程 | 并发知识问答总结
写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...
- vue中常见的问题以及解决方法
有一些问题不限于 Vue,还适应于其他类型的 SPA 项目. 1. 页面权限控制和登陆验证 页面权限控制 页面权限控制是什么意思呢? 就是一个网站有不同的角色,比如管理员和普通用户,要求不同的角色能访 ...