逻辑回归是用于分类的算法。python
日常的线性回归方程为f(x)=wx+b,此时f(x)的取值能够是任意的,要让预测的值能够分类,例如分类到class1是预测值为1,分类到class2时预测值为0。这时咱们就要用到分类函数。算法
下面来介绍一个分类函数sigmoid:dom
其中z=wx+b函数
f(z)的取值将在0与1之间,以下图学习
有:
测试
设f(z)表示分类到class1是的几率,则分类到class2的几率为1-f(z)。3d
假设咱们有以下数据集:code
最大似然的意义是表示出现这组数据最大可能性。orm
由最大释然估计可得blog
即求L(w,b)最大时的w和b的值
也就是求-ln(L(w,b))最小值时,w和b的值
如下为上述公式的代码实现
cross_entropy = -1 * (np.dot(np.squeeze(Y), np.log(y)) + np.dot((1 - np.squeeze(Y)), np.log(1 - y)))
求偏导可得:
如下为上述求偏导的代码实现
w_grad = np.sum(-1 * X * (np.squeeze(Y) - y).reshape((batch_size,1)), axis=0)
b_grad = np.sum(-1 * (np.squeeze(Y) - y))
可用梯度降低法求得目标函数最低时的w和b的值
如下为逻辑回归案例代码实现收入分类。
import os, sys
import numpy