机器学习笔记3:逻辑回归

机器学习笔记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,其表达式为
g ( z ) = 1 1 + e z g(z) = \dfrac{1}{1+e^{-z}}
在实数范围内时,其图像如下,是一个单调递增的S型函数。
Sigmoid function函数

回归方程:
h θ ( x ) = g ( θ T X ) h_θ(x) = g(θ^TX)
g ( z ) = 1 1 + e z g(z) = \dfrac{1}{1+e^{-z}}
由于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:
  对于线性回归而言,代价函数是 J ( θ ) = 1 2 m i = 1 m ( h θ ( x ( i ) ) y ( i ) ) 2 J(θ) = \dfrac{1}{2m} \sum_{i=1}^{m}(h_θ(x^{(i)})-y^{(i)})^{2} 。如果仍然用这个表达式作为逻辑回归的代价函数,那么代价函数将不再是covex(凸函数),而是non-covex(非凸函数)。由于非凸函数,在使用梯度下降算法求解时,很容易得到局部解,不利于问题的解决,故逻辑回归的的代价函数是:
J ( θ ) = 1 m i = 1 m C o s t ( h θ ( x ( i ) ) , y ( i ) ) ) J(θ) = \dfrac{1}{m} \sum_{i=1}^{m}Cost(h_θ(x^{(i)}),y^{(i)}))
C o s t ( h θ ( x ) , y ) = { l o g ( h θ ( x ) )   i f y = 1 l o g ( 1 h θ ( x ) )   i f y = 0 Cost(h_θ(x),y) =\left\{ \begin{aligned} -log(h_θ(x)) \ \quad if \quad y = 1 \\ -log(1-h_θ(x)) \ \quad if \quad y = 0 \\ \end{aligned} \right.
即,
J ( θ ) = 1 m [ i = 1 m y ( i ) l o g ( h θ ( x ( i ) ) + ( 1 y ( i ) ) ( 1 l o g ( h θ ( x ( i ) ) ) ] J(θ) = \dfrac{1}{m}[ \sum_{i=1}^{m}y^{(i)}log(h_θ(x^{(i)}) + (1-y^{(i)})(1-log(h_θ(x^{(i)}))]
目标:
  目标就是让代价函数最小。
m i n i m i z e θ J ( θ ) \begin{array}{c} minimize\\ θ \end{array}J(θ)
Gradient descent
  梯度下降法,最小化代价函数的一种方法。
  具体的实现如下:
  repeat until convergence{
   θ j : = θ j α J ( θ ) θ j θ_j:=θ_j-α\dfrac{∂J(θ)}{∂θ_j}
  }        (simultaneously update all θ_j)
  将式子中的微分项替换掉即
  repeat until convergence{
   θ j : = θ j α i = 1 m ( h θ ( x ( i ) y ( i ) ) x j ( i ) θ_j:=θ_j-α\sum_{i=1}^{m}(h_θ(x^{(i)}-y^{(i)})x^{(i)}_j
  }        (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的概率;综合三个结果的概率就可以得知最可能的预测结果。

猜你喜欢

转载自blog.csdn.net/hui_0_/article/details/83275565