1、逻辑回归原理
和线性回归很像,逻辑回归将多元线性函数的结果,再通过sigmod激活函数进行运算,从而将结果压缩至0-1区间,该区间表示事件是否发生的概率。
2、公式推导
sigmod函数定义如下:
设线性方程为:
则预测函数H为:
注意:hθ(x)函数的值表示结果取1的概率,写成条件概率形式,则为:
注意:y只能取0或1,当为1时,该式为hθ(x),为0时,该式为1-hθ(x)
对m个样本,取最大似然估计,可得:
为方便计算,取对数得l(θ):
将J(θ)设为l(θ)乘以-1/m,这样,取似然函数l(θ)的最大值,转换为取J(θ)的最小值。
求J(θ)的最小值可以使用梯度下降法,参数更新公式为:
可以看到,需要对J(θ)求导,为了对J(θ)求导,需要先得出h函数的求导公式:
使用该公式对J函数求导:
这样参数更新的公式为:
因为式中α本来为一常量,所以1/m一般将省略,所以最终的θ更新过程为:
实例代码:
package com.tao.ml;
import java.util.Arrays;
import com.tao.ml.common.ActivationFunction;
import com.tao.ml.common.sigmoid;