您的位置:首页 > 其它

跟着Andrew Ng挑战Machine Learning(第三周)Part 1:逻辑回归简介

2017-06-05 17:53 267 查看
注意:

  我发现当我在阅读其他大神&前辈们发表的文章时,往往只有前二十分钟能够集中注意力。之后就慢慢的会有些懈怠了,而往往他们付出的心血可能主要就集中在中后半部分⊙﹏⊙‖∣° 。

  有鉴于此,我决定以后发的博文尽可能的短。呵呵呵呵呵呵……

  建议有条件的童鞋去Coursera上学习,不仅免费还精心准备了很多联系帮助理解,以下是链接(看视频需要翻墙):

  https://www.coursera.org/learn/machine-learning/

逻辑回归(Logic Regression)其实解决的是分类问题

  虽然叫逻辑回归,但确实是一个分类问题,引用Coursera的原话“少年们,请不要在这里迷茫!”(好吧这绝对不是原话)

什么是分类问题咧?

 

  举个栗子:“分辨各位电子邮箱中的邮件是否是垃圾邮件”就是一个分类问题,结果只有是或者不是,或者说结果不是零就是一,即 y∈{0,1}。

  

  再举一个栗子:“辨别肿瘤是否为恶性肿瘤”也是一个分类问题。如果我们用前面两章讲的回归方法来预测就有点不讲理了,请看下图。

  

  


本章所述的逻辑回归要怎样解决这类问题呢?

 

  我们先从最简单的问题说起,仅讨论前面举得例子这种只用分两类的问题(不是0就是1),即二分类问题(Binary Classification)

  

  这类问题中输出的值 y∈{0,1},与回归问题一样我们还需要一个拟合函数 h(x⃗ )。

  

  hθ(x⃗ ) 与线性回归所用的是有差别的。我们需要让 hθ(x⃗ )∈(0,1),这样就可做如下定义了:

y={1, hθ(x⃗ )≥0.50, hθ(x⃗ )≤0.5

  所以,从新定义 h(x⃗ ) 的形式(别问我为什么要这样定义 O__O” ,我只知其然不知其所以然):

z=θ0x0+θ1x1+⋯+θnxng(z)=11+e−zhθ(x⃗ )=g(z)

  为了方便记录,让公式更简洁,后文中我会用向量的形式表示 z,即 z=θ⃗ Tx⃗ 。

  g(z) 坐标图如下:

  

  


  

  那么,接下来要做的事情就很容易理解了。和线性回归一样,我们接下来要做的事情就是找到一组最佳的特征系数 θ⃗ =(θ0,θ1,⋯,θn) 来进行分类预测。

  就上述的判断肿瘤是良性还是恶性的例子,假设我们已经找到了一组最佳的特征系数 θ⃗ =(θ0,θ1), 现在我们要判断一个特征值为 x⃗ 的案例是可能为恶性还是可能为良性。很简单,只用把 x⃗ 带入拟合函数中判断就行。

  假如 hθ(x⃗ )≥0.5 我们就预测“y=1,即是恶性肿瘤”,反之,hθ(x⃗ )≤0.5 我们就预测“y=1,即是良性肿瘤”。根据上图,我们还可以按下面所述的方法进行判断。

  

  假如 θ⃗ Tx⃗ ≥0 我们就预测“y=1,即是恶性肿瘤”,反之,θ⃗ Tx⃗ ≤0 我们就预测“y=1,即是良性肿瘤”。

用一对多的方法解决多重分类的问题

  一对多是一种非常简单的方法,其核心就是不断的使用Part1、Part2介绍的二分类问题,然后在多个二分类机的预测结果中选择可能性最大的那一个。

  如下图所示,将左边的多重分类问题,分解成右边的三个二分类问题:

 



 

  用训练集 X 分别训练每一个类对应的拟合函数 h(i)θ(x⃗ ),例如上图中,Class 1 对应的拟合函数为 h(1)θ(x⃗ ),Class 2 对应的拟合函数为 h(2)θ(x⃗ ), Class 3 对应的拟合函数为 h(3)θ(x⃗ )。

  最后,我们用这 3 个分类分别计算测试用例 x⃗ test 对应的概率,取其最大者为对应的 ytest。即

  ytest=maxih(i)θ(x⃗ test)

小结

  简介部分就到这里,下一章介绍逻辑回归算法中的代价函数,以及如何得到特征向量 θ⃗ 的最优解。送一个定心丸,如果觉得前面所讲的线性回归难度不大,那么下一章将同样没有多大难度(☆_☆)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息