逻辑回归在二分类问题上有很好的解决方法,lr使用概率来表示某件事情出现的最大情况,其中包括了逻辑函数,最大似然,梯度上升等概念。
逻辑函数:sigmod=1.0/(1+exp(-x)),函数值在0~1,之间,这样我们输入一组数据和对应的权值就可以得到一个z=w0*x1+...+wn*xn,把z带入到函数中得到一个概率就是正例出现的概率。
最大似然:样本中所有情况的概率表示: ,我们要求的就是这个函数的最大值,这样就求出了对应的权重w向量。首先求对数,然后求导数,然后表示成线面的梯度上升:
- for i in range(n):
- h
= sigmoid(dataMatri[i]x*weights) - error
= (labelMat[i] - h) - weights
= weights + alpha * dataMatrix.transpose()* error - 这就是最基本的梯度上升过程。