逻辑回归(logistic regression):
Logistic regression is a method for classifying data into discrete outcomes.(将数据分类为离散的结果输出,例如将分类邮件为垃圾邮件或非垃圾邮件)
首先,了解一下分类:
例如,给出一堆邮件,将其分为垃圾邮件和非垃圾邮件;又比如将肿瘤分类为良性和恶性两大类等
分类又有二元分类和多元分类(顾名思义,分成两类的则为二元分类,分为多类的则为多元分类)
二元分类:
对于二元分类问题,我们希望0<=
<=1,(y=0为一类,y=1为一类)
逻辑回归的计算结果
范围为:0<=
<=1
逻辑回归之假设函数表达式(Hypothesis Representation):
by the way:
解释输出(Interpretation of Hypothesis Output):
决策边界(decision bounary):
如何判定y=1还是y=0:
可以假设
- 当>=0.5时,y=1
- 当<=0.5时,y=0
如图1所示,当z>=0时,g(z)>=0.5(y=1),也就是
=
>=0.5有
>=0;同理,当z<=0时,g(z)<=0.5(y=0),也就是
=<
=0.5有
<=0
例如:
by the way,决策边界是一种假设属性,只要给定一组theta值就能得到相应的决策边界;而训练集数据则是用于确定theta的最优值。
代价函数(cost function):
代价函数用于求解theta值的最优解,由于二元分类问题,y总是要么是0要么是1(0,1为类别标签,当然也可以是1,2~~)
因此,cost function如下:
综上,得到cost function:
梯度下降算法(gradient descent):求解参数theta值
其实不难发现以上
外表看起来和线性回归的一样,但要注意此时
注意:和之前学习线性回归一样,也可以对cost function值和迭代步数作图,以确定是否收敛以及alpha值的选择,此外使用特征缩放以加快迭代收敛。
多元分类问题:
利用一对多的思想,使用一对多分类算法(one-vs-all):
假设将邮件分类为:
work(y=1)
friends(y=2)
others(y=3)
因为有y=(1,2,3)利用二元分类,分别取[
(y=1),(y=2,3)]、[
(y=2),(y=1,3)] 、[
(y=3),(y=1,2)] 各为一种分类
继而得到三个对应的分类器:
正规化逻辑回归(regularized logistic regression):