首页 > 其他 > 详细

机器学习知识体系 - 逻辑回归

时间:2017-02-09 00:58:25      阅读:358      评论:0      收藏:0      [点我收藏+]

这是机器学习知识体系中的逻辑回归内容,完整的知识体系可以查看这里

 

技术分享

分类问题和逻辑回归

不同于线性回归,逻辑回归是用于解决离散型的输出结果的问题(分类问题)。典型的分类问题例如:

- 判断是否垃圾邮件

- 判断肿瘤良恶性

- 判断是否存在恶意的在线交易 

 

对于分类问题,y的输出等于 0 或者 1。逻辑回归函数式输出,它的输出范围是: 技术分享,以0.5作为临界值(Threshhold),y的取值如下:

如果 技术分享,y = 1

如果技术分享, y = 0

 

函数式表达

逻辑回归的函数表达如下:

技术分享

 

其中

技术分享

被称为logistic function 或者 sigmoid function。这个函数图形如下:

技术分享

在这里我们不去研究如何得出这个函数,但可以仔细观察这个函数的几点特性:

1. g(z)是一个输出值在[0,1]的函数,并且当z >= 0, g(z) >= 0.5,z < 0, g(z) < 0.5,所以从这点来说非常符合我们对逻辑回归函数的期望。

2. 这个函数在z=0附近曲率非常陡峭,所以输出值很有很大的区分度。举个例子,一旦z > 0,那么g(z)往往会比0.5大较多。

 

代价函数

逻辑回归的代价函数如下:

技术分享

 

代价函数的图形如下:

技术分享  技术分享

可以看出:

当y=1时: h(x) -> 1, cost(h(x), y) -> 0, h(x) -> 0, cost(h(x),y) -> 技术分享 

当y=0时: h(x) -> 0, cost(h(x), y) -> 0, h(x) -> 1, cost(h(x),y) -> 技术分享 

所以这个函数很好的表达了我们的意愿,h(x)和y越是接近,代价函数越小,反之则越大,并且这个函数是个凹函数始终存在最优解。

 

将y=1和y=0的代价函数合并,可以得到如下函数

技术分享

 

整个代价函数表示如下:

技术分享

 

梯度下降算法

梯度下降算法基本方式如下:

技术分享

所以关键是推导出技术分享对于技术分享的偏导数如下:

技术分享

 

"Conjugate gradient", "BFGS", 和 "L-BFGS" 算法可以比梯度下降算法更好的计算出技术分享,所以建议可以直接使用Octave或者matlab里面自带的方法。

1. 首先需要计算出技术分享 和技术分享

function [jVal, gradient] = costFunction(theta)
jVal = [...code to compute J(theta)...];
gradient = [...code to compute derivative of J(theta)...];
end

2. 使用“fminunc()”方法计算出技术分享

options = optimset(GradObj, on, MaxIter, 100);
initialTheta = zeros(2,1);
   [optTheta, functionVal, exitFlag] = fminunc(@costFunction, initialTheta, options);

 

多分类问题

多分类问题指的是分类存在多种情况:

技术分享

对于多分类问题,我们通常将其转化成Binary Classification问题,例如:

技术分享

 

我们把Class 1(三角形)标记为一种类型,然后把其他几种类型都当成另一种类型,然后训练出 技术分享,h(x) 代表 y = i的概率情况。于是每个分类,我们都可以得出对应的h(x)。

所以将来对于一个测试数据x,我们需要找到那个 i (某个分类)可以最大化 技术分享, 于是那个 i 就是测试数据x对应的分类值。

 

机器学习知识体系 - 逻辑回归

原文:http://www.cnblogs.com/wdsunny/p/6369916.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!