线性回归算法中,我们看到,在training set中,输入矩阵X与向量y的值都是连续的。所以在二维空间中,我们可以用一条直线去模拟X与y的变化关系,寻找参数向量theta的取值。如根据房屋面积预测房价,根据日期、纬度来预测温度等等,我们称此类问题为回归(Regression)。

而本文,我们开始研究另外一种情况下的机器学习,即y值的变化为不连续的(categorical)。例如,y的取值只有0和1,我们用来表征类似:考试通过与否(pass/fail)、比赛输赢(win/lose)、是否患病(healthy/sick)等问题。这种y的取值只有2种的情形,称为2分类,当然也存在3分类、4分类、多分类的情况,但我们总要从最简单的情况开始。这样X连续变化,y值为categorical的机器学习问题,我们称为分类Classification。

其实很明显,我们不是在寻找X与y的变化关系了,而是在寻找一个决策边界(Decision Boundary),超过这个边界,我们认为取值为1的概率要大一些,反之我们会取0。

我们将Logistic Function定义为如下形式,我们可以看出,在x连续变化时,估计值h(x)始终在0,1之间。当x趋于无穷大时,h(x)=1;h(0)=1/2;x趋于负无穷时,h(x)=0。

其图形为:

由于Logistic Function的选择,使我们有了求解theta最关键的一步:将h(x)视作一种概率,从而利用最大似然估计(Maximum Likelihood Estimation)求解该问题。我们可以将h(x)的公式看做y=1的概率,则原公式可以写为:

由于y的值只可能取0或1,所以我们根据概率性质可知:

同样的,我们可以将以上两个公式合二为一成为如下形式:

接下来,我们来做参数拟合(Parameter Fitting),极大似然函数为:

对L求log得:

在数理统计中,我们在此对上式求偏导数,然后置零解方程,即可得出令似然函数最大的theta值。而在我们的Logistic Regression Algorithm中,我们需要拿到这个偏导数值(在当前theta值情况下,斜度最陡翘的方向),然后来做梯度上升(从结果上看似乎是梯度下降,但其实在我们定义J的时候加了个负号,将其隐藏了)操作。我们定义Cost Function J为:

对J of theta求导,见手稿:

带入梯度下降算法我们得到,对于每一个theta

若用向量表示,则为:

最新文章

  1. 读书笔记 --TCP :传输控制协议(一)
  2. php gettext 注释
  3. poj 3264
  4. 从nib文件里加载collectionViewCell
  5. Android相关sdk使用
  6. Linux常用指令---系统负载
  7. HDU 3949 XOR(高斯消元)
  8. Docker Machine, Compose, and Swarm: How They Work Together
  9. hdu 4280 最大流
  10. 点击itemView选中checkbox
  11. salesforce零基础学习(七十四)apex:actionRegion以及apex:actionSupport浅谈
  12. GCD之死锁体会
  13. 将java项目打包成docker镜像
  14. 数据对象转json与md5加密注意事项
  15. Tomcat不需要输入项目名便可访问项目(直接用域名或者ip)
  16. EXCEL上传POI
  17. putty 默认颜色样式修改 for windows
  18. numpy知识点
  19. jmeter元件执行顺序及简介
  20. netty 在线教程

热门文章

  1. Excel VBA获取当文件下级子目录或目录中文件
  2. OtterTune配置记录
  3. 本地局域网MySQL数据库连接方法(Navcat权限设置)
  4. vue-fiters过滤器的使用
  5. 微信小程序点击保存图片到相册
  6. eclipse codeFormatter 和 codeTemplates 模板
  7. 认知redis
  8. ZYNQ系列
  9. ln 硬链接与软链接
  10. java中的Excel导出功能