cs229 斯坦福机器学习笔记(一)-- 入门与LR模型
版权声明:本文为博主原创文章,转载请注明出处。
https://blog.csdn.net/Dinosoft/article/details/34960693
前言
!= 好入门的资料,Andrew Ng在coursera有另外一个机器学习课程,更适合入门。
课程有video,review questions和programing exercises,视频尽管没有中文字幕,只是看演示的讲义还是非常好理解的(假设当初大学里的课有这么好。我也不至于毕业后成为文盲。。)。最重要的就是里面的programing
exercises,得理解透才完毕得来的,毕竟不是简单点点鼠标的选择题。
只是coursera的课程屏蔽非常一些比較难的内容,假设认为课程不够过瘾。能够再看看cs229的。这篇笔记主要是參照cs229的课程。但也会穿插coursera的一些内容。
线性回归 linear regression
那假设如今要你来评估一套二手房的价格(或者更直接点。你就是一个卖房子的黑中介,嘿嘿),假设你对房价一无所知(比方说房子是在非洲),那你肯定估算不准。最好就能提供同小区其它房子的报价。没有的话。旁边小区也行;再没有的话,所在区的房子均价也行;还是没有的话,所在城市房子均价也行(在北京有套房和在余杭有套房能一样么),由于你知道,这些信息是有“參考价值”的。其次,估算的时候我们肯定希望提供的信息能尽量详细,由于我们知道房子的朝向。装修好坏,位置(靠近马路还是小区中心)是会影响房子价格的。
有了这些数据。人脑能够“学习”出房价的一个大体情况。由于我们知道同一小区的同一户型,一般价格是几乎相同的(特征相近。目标值-房价也是相近的。不然就没法预測了);房价我们一般按平方算,平方数和房价有“近似”线性的关系。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
这里有一个问题,假设真实模型不是线性的怎么办?所以套用线性回归的时候是须要预判的。不然训练出来的效果肯定不行。这里不必过于深究,后面也会介绍怎么通过预处理数据处理非线性的情况。
除了后者是凸函数,好求解,所以就用平方和? 不是的,单独一个样本纵向比較确实一样,但别漏了式子前面另一个求和符号,这两者的差异体如今样本横向比較的时候,比方如今有两组差值,每组两个样本,第一组绝对值差是1,3,第二组是2,2,绝对值差求和是一样,4=4。
算平方差就不一样了,10 > 8。事实上,x^2求导是2x,这里的意思就是惩处随偏差值线性增大,终于的效果从图上看就是尽可能让直线靠近全部点)
曾经初中、高中课本也有提到怎么求解回归方程,都是按计算器。难怪我一点印象都没有。囧。
。
还以为失忆了
1.gradient descent (梯度下降)a.batch gradient descentb.stochastic gradient descent (上面的变形)2.the normal equations3.Newton method(Fisher scoring)
1.gradient descent algorithm
显然步子不能太大,不然easy扯着蛋(跨一大步之后反而到了更高的点)
2.the normal equations。
(在线性代数的复习课件cs229-linalg会说明。这个式子事实上是把y投影到X)
3.牛顿法
逻辑回归logistic regression
y ∈ {0, 1}. (那h(x)在[0,1]又代表什么呢?呵呵)
注意,这个函数输出值代表“y为1的概率”,再回过头看看,前面y用1和0来表示正反也是有讲究的(讲svn的时候又换成+1。-1),直观上看sigmoid越接近1表示1的概率大,接近0表示0的概率大,另一个好处就是以下算likelihood的时候用式子好表示。
p(x,y) = p(x)* p(y)。
machine learning in practice
这里记录一下关键点。
1.coursera的cost function多除了一个m
2.batch gradient descent和stochastic gradient descent的区别
for iter = 1:num_iters
A = ( X * theta - y )';
theta = theta - 1/m * alpha * ( A * X )';
end
for iter = 1:num_iters
A = ( X * theta - y )';
for j = 1:m
theta = theta - alpha * ( A(1, j) * X(j, :) )';
end
end
。
3.feature scaling的作用是啥?
)假设每一个样本的feature j 乘以10,那算出来的θj除以10不就结果跟原来一样了?我猜不会影响。看一下我们迭代时候的式子
会发现缩放一个feature后,收敛非常困难啊,我仅仅乘以2,原来的代码就输出NaN了。
。我把alpha平方一下 alpha^2。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
改下ex1_muliti.m
X2 = X;
X2(:,2) = X2(:, 2)* 2;
theta2 = pinv(X2' * X2) * X2' * y;
theta2
theta
theta2 =
8.9598e+004
6.9605e+001
-8.7380e+003
theta =
8.9598e+004
1.3921e+002
-8.7380e+003
前面是linear regression,对logistic regression能够改ex2.m也验证下
X2(:,2)= X2(:,2)*2;
[theta2, cost] = fminunc(@(t)(costFunction(t, X2, y)), initial_theta, options);
theta2
theta:
-25.161272
0.206233
0.201470
theta2 =
-25.16127
0.10312
0.20147
附录
cost function的概率解释
cs229 斯坦福机器学习笔记(一)-- 入门与LR模型的更多相关文章
- 【机器学习笔记之五】用ARIMA模型做需求预测用ARIMA模型做需求预测
本文结构: 时间序列分析? 什么是ARIMA? ARIMA数学模型? input,output 是什么? 怎么用?-代码实例 常见问题? 时间序列分析? 时间序列,就是按时间顺序排列的,随时间变化的数 ...
- CS229 斯坦福大学机器学习复习材料(数学基础) - 线性代数
CS229 斯坦福大学机器学习复习材料(数学基础) - 线性代数 线性代数回顾与参考 1 基本概念和符号 1.1 基本符号 2 矩阵乘法 2.1 向量-向量乘法 2.2 矩阵-向量乘法 2.3 矩阵- ...
- 斯坦福机器学习视频笔记 Week1 Linear Regression and Gradient Descent
最近开始学习Coursera上的斯坦福机器学习视频,我是刚刚接触机器学习,对此比较感兴趣:准备将我的学习笔记写下来, 作为我每天学习的签到吧,也希望和各位朋友交流学习. 这一系列的博客,我会不定期的更 ...
- 斯坦福大学Andrew Ng - 机器学习笔记(8) -- 推荐系统 & 大规模机器学习 & 图片文字识别
大概用了一个月,Andrew Ng老师的机器学习视频断断续续看完了,以下是个人学习笔记,入门级别,权当总结.笔记难免有遗漏和误解,欢迎讨论. 鸣谢:中国海洋大学黄海广博士提供课程视频和个人笔记,在此深 ...
- 斯坦福大学Andrew Ng - 机器学习笔记(7) -- 异常检测
大概用了一个月,Andrew Ng老师的机器学习视频断断续续看完了,以下是个人学习笔记,入门级别,权当总结.笔记难免有遗漏和误解,欢迎讨论. 鸣谢:中国海洋大学黄海广博士提供课程视频和个人笔记,在此深 ...
- 斯坦福大学Andrew Ng - 机器学习笔记(6) -- 聚类 & 降维
大概用了一个月,Andrew Ng老师的机器学习视频断断续续看完了,以下是个人学习笔记,入门级别,权当总结.笔记难免有遗漏和误解,欢迎讨论. 鸣谢:中国海洋大学黄海广博士提供课程视频和个人笔记,在此深 ...
- 斯坦福大学Andrew Ng - 机器学习笔记(5) -- 支持向量机(SVM)
大概用了一个月,Andrew Ng老师的机器学习视频断断续续看完了,以下是个人学习笔记,入门级别,权当总结.笔记难免有遗漏和误解,欢迎讨论. 鸣谢:中国海洋大学黄海广博士提供课程视频和个人笔记,在此深 ...
- 斯坦福大学Andrew Ng - 机器学习笔记(4) -- 机器学习算法的选择与评估
大概用了一个月,Andrew Ng老师的机器学习视频断断续续看完了,以下是个人学习笔记,入门级别,权当总结.笔记难免有遗漏和误解,欢迎讨论. 鸣谢:中国海洋大学黄海广博士提供课程视频和个人笔记,在此深 ...
- 斯坦福大学Andrew Ng - 机器学习笔记(3) -- 神经网络模型
大概用了一个月,Andrew Ng老师的机器学习视频断断续续看完了,以下是个人学习笔记,入门级别,权当总结.笔记难免有遗漏和误解,欢迎讨论. 鸣谢:中国海洋大学黄海广博士提供课程视频和个人笔记,在此深 ...
随机推荐
- 采用MQTT协议实现android消息推送(2)MQTT服务端与客户端软件对比、android客户端示列表
1.服务端软件对比 https://github.com/mqtt/mqtt.github.io/wiki/servers 名称(点名进官网) 特性 简介 收费 支持的客户端语言 IBM MQ 完整的 ...
- 信号和槽:Qt中最差劲的创造
不要被这个标题唬住了,实际上我是非常认可Qt的.在C++实现的开源产品中没有哪一个的API风格比得上Qt,拥有高度一致性,符合常识,符合直觉,几乎不用学就可以直接上手.或许是由于我们摆脱不了马太效应的 ...
- 字典表+委托替代switch解决思路
参考:http://www.jianshu.com/p/8887b3b3e8ba 代码 namespace 解决Switch { class Program { delegate string fun ...
- jquery通过submit()和serialize()提交表单
<script type="text/javascript"> $(function() { $('#form1').submit(function() { //当提交 ...
- windows环境下MySQL-5.7.12-winx64下载安装与配置
系统:64位Win-7 官网压缩包:mysql-5.7.12-winx64.zip 前后花了一些时间,以前都是下载软件直接安装在本地,现在这个不一样,下载压缩包后要解压缩到安装目录,然后在控制台下配置 ...
- 【linux】基础操作命令
1.查找文件或者程序位置 root@ROUTER:~# which is hostapd/sbin/hostapd
- 项目搭建系列之四:SpringMVC框架下使用UrlRewrite实现地址重写
简单记录一下UrlRewrite实现地址重写功能. 1.pom.xml 在pom.xml增加配置UrlRewrite jar <!-- URL Rewrite --> <depend ...
- HIVE的sql语句操作
Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在hadoop 分布式文件系统中的数据,可以将结构 化的数据文件映射为一张数据库表,并提供完整的SQL查 ...
- 超级简单的jQuery纯手写五星评分效果
超级简单的评分功能,分为四个步骤轻松搞定: 第一步: 引入jquery文件:这里我用百度CDN的jquery: <script src="http://apps.bdimg.com/l ...
- Zepto结合Swiper的选项卡
我们昨天说了关于Angular的选项卡,那今天就说一下Swiper的选项卡吧! 今天的选项卡是Zepto结合Swiper的选项卡,咱么明天再说纯纯的Swiper的吧! 既然是关于Zepto和Swipe ...