逻辑回归Logistic Regression
1.分类问题Classification
首先将一个东西分类,比如这个文件是垃圾文件 ?非垃圾文件
比如谈论金融交易这场交易是欺骗?非欺骗的?
比如这个肿瘤,是良性的?还是恶性的?
其实仔细观察上面的问题,有点类似于“非黑即白”,比如肿瘤只有良性和恶性两种。
阈值h(x)=0.5
如果h(x)≥0.5,则预测“y = 1”
如果h(x)<0.5,则预测“y = 0”
所以总结分类问题就是最后y=0或者1
但是也有一些特殊情况h(x)可以大于1或者小于0,这些是对于线性回归的问题。
逻辑回归函数:0≤h(x)<1
ps:逻辑回归算法 是一种分类算法,这个算法的性质就是输出值永远在0到1之间,它适用于标签为y取值离散的时候,如:1001
2.假设函数Hypothesis Representation
逻辑回归的目的是目的:0 ≤ h(x) < 1
那么什么样的函数符合这样的要求呢?通常我们在h(x)加上一个函数来控制g(x)范围:
这个叫做Sigmoid function(s形函数)
也叫做Logistic function(逻辑函数)
h函数的图像
下面举一些例子:
如果 x = { x0,x 1} = {1,肿瘤型号}
h(x) = 0.7
表示超过70%的可能性y为正向类,相应的y的负向类几率为1-0.7=0.3。表示有70%可能性这个肿瘤是恶性。
h(x)的作用就是给定的输入变量,根据选择的参数计算输出的变量=1的可能性,
即h(x)=p(y=1|x;θ)
3.判断边界Decision Boundary
决策边界问题:边界是什么?边界的两边是什么?
逻辑函数模型:
g(x)图像:
根据g(x)图像可以看出:
而z=0是他的临界点,因此我们的输出只有1或者0,所以当:
当我们输入z的时候意味着:
即输入与输出的关系:
*小贴士这个模型有点类似于高中的二次求导
举个例子:
假设 θ0=3,θ1=1,θ2=1
预测y = 1,则3+x1+x2 >0
例子2:
假设我们已经知道了5个参数: θ0=1,θ1=0,θ2=0,θ3=1,θ4=1 。
那么我们的决策边界就是: -1+x12+x22=0 。在圆外面的都会预测为 y=1 ,圆里面的则为 y=0
4.代价函数
在逻辑回归模型中,代价函数和梯度下降如何表示呢?
因为我们这里的假设函数,是一个看起来很复杂的非线性函数,会造成“非凸性”
我们可以看到左图 J(θ) 图像有波浪形,这就导致我们运行梯度下降函数的时候,容易卡在某个波浪的最小值,而不是全局的最小值。
所以找到一个全新的代价函数就不会产生非凸性
简化代价函数:
这个公式是重点
5.梯度下降
那么怎么找到我们的参数 θ 呢?自然就是我们的梯度下降函数了:
用向量表示:
在我们之前的线性回归使用的特征缩放可以加快梯度下降,在这里的逻辑回归也同样适用。
优化算法:
还有三种算法可以计算J(θ)和
例如:
Conjugate gradient(共轭梯度法)
BFGS
L - BFGS
这三种算法的好处就是不需要手动去选择学习速率 α ,而且比梯度下降的运算速率快很多。当然缺点是比梯度下降复杂很多。
多类别逻辑回归问题
多元问题:
左图为之前我们讨论的二元分类,而右图则为我们的多元分类。
将三个种类分为三个二元分类问题,分别得出三个拟合函数
做的很次 见谅