机器学习一-逻辑回归(logistic regression)

时间:2022-06-03 23:53:29

知识准备

海维塞得阶跃函数:sigmoid = 11+ez
z = w0 + w1x1 + w2x2 + … + wnxn
可以看到阶跃函数是x的复合函数,故可以表示为 h(x) = sigmoid

损失函数:loss = ni=1(uiyi)2
其中ui和yi分别是样本的估计值和实际值。

由于是二分类,所以y的取值有0,1。
满足n重伯努利分布:
P{y=1|x} = h(x)
P{y=0|x} = 1-h(x)
P{y|x} = h(x)y(1-h(x))1-y

最大似然函数:L = ni=1h(xi)yi(1h(xi))1yi
梯度下降法: w :=w + αdldw

推导过程

损失函数loss对w求极值,但是可以很明显的看出来h(x)是解约函数,非线性。
所以函数曲线很可能是个非凸函数,结果并非全局最优值。
所以下面看似然法:
将似然函数两边取对数,得出如下结果:
lnL = ni=1[yiln(h(xi))+(1yi)ln(1h(xi))]
这个东西就是线性的了,为什么呢?不用我解释了吧。
下面就是求导呗:
dldx=ni=1[(yih(xi))xji]

代码实现

公式都实现了,代码实现就很容易了,如果是用python了,调用个numpy,很容易迭代求解。
想要实现代码和测试数据可留邮箱。