机器学习笔记3:逻辑回归
Andrew Ng机器学习课程学习笔记3
逻辑回归就是分类问题,比如把邮件标示为垃圾邮件和正常邮件,判断肿瘤是良性的还是恶性的.
Sigmoid function
线性回归方程中,hθ(x) 的取值y是连续的,而逻辑回归中输出则是离散的。以两个类别为例,结果消极时y的取值为0,结果积极时y的取值为1。一般来说y不可能小于0,也不会大于1。为了适应这种特点,逻辑回归的方程是在线性回归方程hθ(x)的基础上增加了一个阈值函数Sigmoid function,将变量映射到0,1之间。
Sigmoid function,也可以说是Logistic function,其表达式为
在实数范围内时,其图像如下,是一个单调递增的S型函数。
回归方程:
由于g(z)是单调递增的,且g(0)=0.5。故θTX大于零时,回归方程的输出y=1, θTX小于零时,回归方程的输出y=0。预测y的取值(为0或1)等价于判断θTX与0之间的大小关系,θTX = 0 所代表的线就是Decision Boundary(决策边界)边界的一边是积极结果1,另一边是消极结果1。
另外,θTX = 0 可能是直线,也可能是曲线,这个取决于输入参数X的情况。
cost function:
对于线性回归而言,代价函数是
。如果仍然用这个表达式作为逻辑回归的代价函数,那么代价函数将不再是covex(凸函数),而是non-covex(非凸函数)。由于非凸函数,在使用梯度下降算法求解时,很容易得到局部解,不利于问题的解决,故逻辑回归的的代价函数是:
即,
目标:
目标就是让代价函数最小。
Gradient descent
梯度下降法,最小化代价函数的一种方法。
具体的实现如下:
repeat until convergence{
} (simultaneously update all θ_j)
将式子中的微分项替换掉即
repeat until convergence{
} (simultaneously update all θ_j)
Optimization algorithms
—Gradient descent
— Conjugate gradient
—BFGS
—L-BFGS
多个输出的逻辑回归
分类问题不一定是有两个类别,很多时候是有多个类别的。
这种情况下,将多类别的问题分化为多个二元问题即可。假设有三个输出a,b,c。这个时候,先将a视为一类,将b和c视为一类,得到hθa(x),计算是a概率;然后将b视为一类,将a和c视为一类,得到hθb(x),计算是b的概率;最后c视为一类,将a和b视为一类,得到hθc(x),计算是c的概率;综合三个结果的概率就可以得知最可能的预测结果。