逻辑斯蒂回归 logistic regression
参考
https://www.cnblogs.com/wj-1314/p/10181876.html
逻辑斯蒂回归 logistic regression
确定要使用单位阶跃函数作为评价线性输出的评价标准,使得结果要么是1要么是0
LR的损失函数
似然函数
用h(x) = sigmoid(w*x) , 求解思想即求P(y|w,x)
由结果推过程,当y=1 时候,求解W在等于多少时候可以使得h(x)最接近1
当y=0时候,求解W在等于多少时候可以使得 1-h(x)最接近1
这样对于所有样本
\[{x_i}
\]
总能算出一个值g(x),所有样本的g(x)相乘,乘积最大,即线性输出可以满足分类要求
有了似然函数作为评价标准,开始训练
因为是求最大值,需要使用梯度上升,
下面公式中j 表示某个样本中的特性j
i表示第i个样本
代码表示如下:
maxCycles = 500
weights = ones((n,1))
for k in range(maxCycles):
h = sigmoid(dataMatrix*weights)
error = (labelMat-h)
weights = weights + alpha*dataMatrix.transpose()*error
return weights
tips
about sklearn.linear_model.LogisticRegression
- 标准化可以使得在 learning rate 偏大时候,Loss不振荡
- newton-cg,sag和lbfgs这三种优化算法时都需要损失函数的一阶或者二阶连续导数
- MvM一般比OvR分类相对准确一些
- scikit-learn.org 文档
https://scikit-learn.org/dev/modules/generated/sklearn.linear_model.LogisticRegression.html#sklearn.linear_model.LogisticRegression