cs229 斯坦福机器学习笔记(一)-- 入门与LR模型

前言

说到机器学习,很多人推荐的学习资料就是斯坦福Andrew Ng的cs229,有相关的 视频讲义。不过好的资料 != 好入门的资料,Andrew Ng在coursera有另外一个 机器学习课程,更适合入门。课程有video,review questions和programing exercises,视频虽然没有中文字幕,不过看演示的讲义还是很好理解的(如果当初大学里的课有这么好,我也不至于毕业后成为文盲。。)。最重要的就是里面的programing exercises,得理解透才完成得来的,毕竟不是简单点点鼠标的选择题。不过coursera的课程屏蔽很一些比较难的内容,如果觉得课程不够过瘾,可以再看看cs229的。这篇笔记主要是参照cs229的课程,但也会穿插coursera的一些内容。
接触完机器学习,会发现有两门课很重要,一个是概率统计,另外一个是线性代数。因为机器学习使用的数据,可以看成概率统计里的样本,而机器学习建模之后,你会发现剩下的就是线性代数求解问题。
至于学习资料,周志华最新的《机器学习》西瓜书已经出了,肯定是首选!以前的话我推荐《机器学习实战》,能解决你对机器学习怎么落地的困惑。李航的《统计学习方法》可以当提纲参考。cs229除了lecture notes,还有session notes(简直是雪中送炭,夏天送风扇,lecture notes里那些让你觉得有必要再深入了解的点这里可以找到),和problem sets,如果仔细读,资料也够多了。

线性回归 linear regression

  通过现实生活中的例子,可以帮助理解和体会线性回归。比如某日,某屌丝同事说买了房子,那一般大家关心的就是房子在哪,哪个小区,多少钱一平方这些信息,因为我们知道,这些信息是"关键信息”(机器学习里的黑话叫“feature”)。那假设现在要你来评估一套二手房的价格(或者更直接点,你就是一个卖房子的黑中介,嘿嘿),如果你对房价一无所知(比如说房子是在非洲),那你肯定估算不准,最好就能提供同小区其他房子的报价;没有的话,旁边小区也行;再没有的话,所在区的房子均价也行;还是没有的话,所在城市房子均价也行(在北京有套房和在余杭有套房能一样么),因为你知道,这些信息是有“参考价值”的。其次,估算的时候我们肯定希望提供的信息能尽量详细,因为我们知道房子的朝向,装修好坏,位置(靠近马路还是小区中心)是会影响房子价格的。
    其实我们人脑在估算的过程,就类似一个“机器学习”的过程。
a)首先我们需要“训练数据”,也就是相关的房价数据,当然,数据太少肯定不行,要尽量丰富。有了这些数据,人脑可以“学习”出房价的一个大体情况。因为我们知道同一小区的同一户型,一般价格是差不多的(特征相近,目标值-房价也是相近的,不然就没法预测了);房价我们一般按平方算,平方数和房价有“近似”线性的关系。
b)而“训练数据”里面要有啥信息?只给你房子照片肯定不行,肯定是要小区地点,房子大小等等这些关键“特征”
c)一般我们人肉估算的时候,比较随意,也就估个大概,不会算到小数点后几位;而估算的时候,我们会参照现有数据,不会让估算跟“训练数据”差得离谱(也就是下面要讲的让损失函数尽量小),不然还要“训练数据”干嘛。 计算机擅长处理数值计算,把房价估算问题完全可以用数学方法来做。把这里的“人肉估算”数学形式化,也就是“线性回归”。

1.我们定义线性回归函数(linear regression)为: 


然后用h(x) 来预测y

最简单的例子,一个特征size,y是Price,把训练数据画在图上,如下图。(举最简单的例子只是帮助理解,当特征只有一维的时候,画出来是一条直线,多维的时候就是超平面了)

这里有一个问题,如果真实模型不是线性的怎么办?所以套用线性回归的时候是需要预判的,不然训练出来的效果肯定不行。这里不必过于深究,后面也会介绍怎么通过预处理数据处理非线性的情况。

2.目标就是画一条直线尽量靠近这些点,用数学语言来描述就是cost function尽量小。

为什么是平方和? 直接相减取一下绝对值不行么, | h(x)-y |  ? (后面的Probabilistic interpretation会解释,这样求出来的是likelihood最大。另外一个问题, | h(x)-y |大的时候 ( h(x)-y )^2 不也是一样增大,看上去好像也一样?! 除了后者是凸函数,好求解,所以就用平方和? 不是的,单独一个样本纵向比较确实一样,但别漏了式子前面还有一个求和符号,这两者的差异体现在样本横向比较的时候,比如现在有两组差值,每组两个样本,第一组绝对值差是1,3,第二组是2,2,绝对值差求和是一样,4=4, 算平方差就不一样了,10 > 8。其实,x^2求导是2x,这里的意思就是惩罚随偏差值线性增大,最终的效果从图上看就是尽可能让直线靠近所有点)

3 然后就是怎么求解了。 如果h(x)=y那就是初中时候的多元一次方程组了,现在不是,所以要用高端一点的方法。以前初中、高中课本也有提到怎么求解回归方程,都是按计算器,难怪我一点印象都没有,囧。。还以为失忆了
notes 1里面介绍3种方法
1.gradient descent (梯度下降)
a.batch gradient descent
b.stochastic gradient descent (上面的变形)
  • 16
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值