吴恩达机器学习笔记(二)

视频课简记:

4、多变量线性回归

4.1  多维特征

        之前给的数据集只知道一个size特征,现在要开始引入多种特征啦。

4种特征的数据

        我们可以列出函数h的表达式:

h的表达式

        简单从表达式层面上理解一下,theta0是不会被变量影响的参数,而theta1、2、3...n分别代表了不同特征对房价影响的权重。比如说theta1=0.00000001,那x1就可能是售楼小姐有多美这种因素了吧哈哈哈,and,若是theta2=10000, 那怕不是就是风水好不好啊这种挺多人比较看重的因素了。(题外话,这里的函数和之前我看的投资组合的概念有点像啊,那里的\beta 系数就是这里的\theta ,大小取决于每个股票对市场波动的反应,好的投资组合可以降低非系统性风险,而\theta_0代表的就是系统性风险,最好就是最后后面的全部抵消,剩下一个\theta _0(非系统性风险),是不能被消除的。不过机器学习的研究好像不是这个方向?后面好像还要选择对预测有帮助的特征?反正数学真是无处不在)

        然后我们根据线代常识可以把上式写成向量内积的形式:h_{\theta}(x)=\theta^TX,就简洁美观很多啦!

4.2  多变量梯度下降

        和单变量线性回归一样,我们在多变量线性回归中也给他构建一个代价函数,这个代价函数是所有建模误差的平方和:

多变量线性回归中的代价函数

        我们在这里的目标也是找出使得J function最小的一组\theta ,公式也和之前大同小异

多变量线性回归的批量梯度下降算法

        开始随机选择一系列的参数值,计算所有的预测结果后,再给所有的参数一个新的值,如此循环直到收敛。附计算代价函数的python代码:

代价函数计算py代码

4.3  梯度下降法实践 1-特征缩放

        在面对多特征问题时,若特征之间的尺度相差太大,要让他们具有相似的尺度才行(应该可以理解为他们的单位不同要化成差不多的单位吧)为什么要呢?因为加快梯度下降法的收敛速度。比如有两个特征,房屋尺寸和房间数,一个的范围是0-2000平方,一个是0-5间,差距太大导致绘制出来的椭圆形又长又扁

代价函数等高线

        可以看到在执行梯度下降算法的时候,算法并不能有效得直接去最低点,并且路线十分曲折(贪心思想所致),因此在特征缩放之后,两个特征的尺度都控制在相似的范围内,图形几乎能成一个圆形

特征尺度缩放之后

        缩放大概到什么程度的参考:

特征缩放程度参考范围

        可以看到相似的特征尺度可以让梯度下降算法前往下一条等高线,效率更高。最简单的缩放是x_n=\frac{x_n-\mu _n}{s_n}其中\mu_n是平均值,s_n是标准差

椭圆太扁为什么梯度下降路线会曲折的原因参考

4.4  梯度下降法实践 2-学习率

        现在围绕之前提到过的学习率\alpha 展开讨论。为了判断梯度下降算法是否收敛,可以画出J(θ)随迭代步数变化的曲线,用来判断梯度下降算法是否收敛,直观,简单粗暴:

代价函数与迭代次数的关系

        之前提到过学习率过大过小都可能导致梯度下降算法最终发散,下面是三种学习率过大的情况

\alpha 过大导致的情况

        出现这些情况就要适当减小学习率了,不过也有可能是代码bug。

        学习率α太小,可能导致梯度下降算法收敛的非常慢;学习率α太大,可能导致梯度下降算法在某几次迭代时不下降,反而增加,甚至不能收敛。为了弄清到底发生了什么,可以画出J(θ)随迭代步数变化的曲线。一般是先用小值比如0.0001试一下,再逐渐增大,当找到一个\alpha 的可行的最小值和一个最大值,就取比最大值小一点的数值。

4.5  特征和多项式回归

        在特征的选择上,回到房价预测的例子,我们一开始用的特征是size,那么现在我们用两个特征,一个是房屋的长,一个是房屋的宽那么我们的假设函数h就变成了                                                                    h_\theta (x)=\theta_0+\theta_1*length+\theta_2*width

          其实size=length*width的话,我们就可以把上面两个特征用之前的size一个特征来表示,这是一种选特征的思路要记住。

        还有一个概念是多项式回归:

房价假设

        对于这样的数据集,我们第一眼看上去就觉得二次函数模型可以很好的拟合,但是二次函数在后面是会下降的,显然随着房屋面积的增大房价下降不是很合理呀!那我们也可以用三次函数,就是图中绿色的线,来拟合看上去也不错。其实在这里三次项和二次项都可以换成size的三次方和二次方,从一个特征变成三到两个特征也是可以的,但是要记得特征缩放!

4.6  正规方程

        除了前面的梯度下降算法,现在学习一个叫正规方程的方法去求解\theta 的最优解。其提供了一种解析解法,等于是一步就可以求出最优值而不需要像梯度下降算法那样多次迭代,举个栗子,比如只有一个特征,那么他的代价函数J可以表示为J(\theta)=a\theta^2+b\theta+c,其中\theta 实一个数而不是之前多特征时候的向量了。而这个函数很明显我们只需要设它对\theta 求导的值等于0,求出满足条件的\theta 就好啦。

一个特征时的代价函数

        若\theta 是个n+1维的参数向量,换句话说就是数据集有多个特征时要怎么做?视频课直接给了一个公式:\theta=(X^TX)^{-1}X^Ty,其中X是数据集的特征的一个m*(n+1)的矩阵,y是m维向量,在这里是价格(数据的标签)

矩阵X和向量y的来源

        那个求\theta 得公式不太懂,要多看这个参考:

                                        正规方程推导过程 - guang_mang的博客 - CSDN博客

        看了几遍基本理解,但是矩阵求导的一些东西还不太熟练,所以只能算模棱两可。

        至于什么时候用梯度下降算法,什么时候用正规方程法,我们先看一下他们的比较:

两种算法的比较

        所以在线性回归算法中,特征数量少于一万用正规方程,大于一万开始考虑梯度下降算法。然鹅后面学的一些更复杂的算法,正规方程法是派不上用场滴,而梯度下降就还是效率蛮高的,所以要重视这个算法。下面展示一下python简单实现正规方程的计算:

正规方程的python实现代码

4.6 正规方程的不可逆性

        通过线代可以知道行列式为零的矩阵是不可逆的,所以公式\theta=(X^TX)^{-1}X^Ty中的X^TX有没有可能不可逆呢?当然是有滴,视频说了两种情况,第一,若是有多余的特征,用线代的话说就是一组特征向量可以被另一组线性表示,那他们就是线性相关的,导致了矩阵行列式为0即矩阵不可逆。所以要确保特征向量之间都是线性无关滴(上半年学的线代还是有用的hahhhh)第二种情况是数据太少特征太多,这时候也会导致这个问题。

        但是这种事情很少出现,或者代码是可以计算不可逆矩阵的(调用伪逆函数),所以在这里先了解一下。

小总结:

        这周的内容还是蛮多的,也比之前难理解多了。就像正规方程这个概念,用它?OK没问题,什么情况下用它什么情况下不用?ok也是知道的,但是那个计算公式直接摆出来,就很难去理解它背后的意义。上面也附上了公式的推导过程,里面运用到了许多矩阵的性质,以及矩阵求导等等,理解起来还是比较费劲,但是除了自己动手推导一遍外,也理解的差不多了。

        好像线性回归算法到此为止了?接触了机器学习内的入门算法,希望未来的学习顺利。小作业的python代码在jupyter notebook按照下面链接实现了一次。

吴恩达机器学习作业Python实现(一):线性回归 - Cowry - CSDN博客

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容