代码实现部分链接

logistic回归……引入原因

用于解决分类问题,虽然叫作回归但是其实是分类算法。

以简单的单特征值双答案值(0或1)为例,下面的案例说明这种问题使用线性回归的不足:
机器学习入门——逻辑回归(理论部分)
对于这样的情况,上面的预测函数才是我们真正要找的,满足以下要求:

  • 预测值属于[0,1][0,1]
  • 当预测值[0.5,1]\in[0.5,1]我们认为答案为1,预测值[0,0.5)\in[0,0.5)我们认为答案为0;
  • 当特征值趋向于\infty时预测值无限接近1,特征值趋向于0时预测值无限接近0。

很显然线性时,只要有一项系数θ>0\theta>0,则这个系数对应的特征值在趋向于\infty时答案不可能趋向于1。

上面的图形让我们想到了对数和指数函数。

logistic回归

定义logisticlogistic函数:g(z)=11+ezg(z)=\dfrac{1}{1+e^{-z}}

实际函数图形如下:
机器学习入门——逻辑回归(理论部分)
我们令hθ(x)=g(θTX)h_\theta(x)=g(\theta^TX)(这里的θ\theta(n+1)1(n+1)*1向量)

即得到:hθ(x)=11+eθTXh_\theta(x)=\dfrac{1}{1+e^{-\theta^TX}}

预测函数意义:

当预测的θTX\theta^TX大于等于0时,我们预测答案值为1,否则答案值为0。

我们称θTX=0\theta^TX=0决策边界

logistic回归……代价函数J

原来的J(θ)=12mi=1m(hθ(x(i))y(i))2J(\theta)=\frac{1}{2m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})^2中,hθ(x(i))h_\theta(x^{(i)})θ\theta线性变换,所以随着θ\theta的变化描绘出来的J(θ)J(\theta)为凸函数,即局部最小值只有一个,也就是全局最小值。

但是现在,很显然如果使用原来的J(θ)J(\theta),描绘出来的就不是凸函数了,也就不能使用梯度下降法得到全局最小值了。

我们根据当前hθ(x)h_\theta(x)改变代价函数:
机器学习入门——逻辑回归(理论部分)
自己画一下就知道,Cost(hθ(x),y)Cost(h_\theta(x),y)随着hθ(x)h_\theta(x)的变化描绘出来的是凸函数:
机器学习入门——逻辑回归(理论部分)
上面的类分段函数可以通过乘0结合在一起:
机器学习入门——逻辑回归(理论部分)
我们用J(θ)J(\theta)θJ\theta_J求偏导结果如下:
机器学习入门——逻辑回归(理论部分)
你会发现除了hθ(x(i))h_\theta(x^{(i)})所指代的内容不一样,其它的部分都是一样的。

当然,为了保证梯度下降算法的时间复杂度,特征缩放在这里还是必要的。

logistic回归……多答案值

假设我们有四种答案值:0,1,2,30,1,2,3,我们需要做的很简单,就是分别做4次,得到四个分类器,每次只选择一种答案看成原来的1,其它三种看成0。

在处理新的数据时,我们带入这四种分类器,得到相应的hθ(x)h_\theta(x),取四个中较大的,也就是较为接近1的那个。

相关文章:

  • 2022-01-26
  • 2021-12-19
  • 2022-12-23
  • 2021-05-24
  • 2021-12-01
猜你喜欢
  • 2021-05-23
  • 2021-05-04
  • 2021-09-17
  • 2021-04-26
  • 2021-11-03
  • 2022-01-12
  • 2021-04-08
相关资源
相似解决方案