逻辑回归
逻辑回归是一个二分类的算法以及多分类的算法
线性回归与逻辑回归
当在线性回归的结果上,我们添加一个sigmod函数时,线性回归就变成了逻辑回归。
优缺点
- 优点:计算代价不高,具有可解释性,易于实现。不仅可以预测出类别,而且可以得到近似概率预测,对许多需要利用概率辅助决策的任务很有用。
-
- 缺点:容易欠拟合,分类精度可能不高。
-
- 适用数据类型:数值型和标称型数据。
sigmod函数
求导
函数图像
当输入值越大,输出值越趋近于1,反之越趋近于0.
损失函数
总结为一个公式:
使用梯度下降法求参数
求偏导
每次迭代地更新公式为
多元分类
假如有类别 1 2 3 4类,首先将4个类别分为2大类:1、 2 3 4,如果结果在2 3 4类别中,再将2 3 4类别分为2、3 4类。
逻辑回归在scikit-learn中的使用
from sklearn.datasets import load_breast_cancer # 载入数据
from sklearn.model_selection import train_test_split
cancer = load_breast_cancer()
X = cancer.data
Y = cancer.target
X_train,X_test,Y_train,Y_test = train_test_split(X,Y,test_size = 0.2)
from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
model.fit(X_train,Y_train)
train_score = model.score(X_train,Y_train)
test_score = model.score(X_test,Y_test)
train_score
y_pred = model.predict(X_test)
y_pred_proba = model.predict_proba (X_test) # 计算出样本的预测概率
参数说明
penalty:
正则化选择参数
LogisticRegression和LogisticRegressionCV默认就带了正则化项。penalty参数可选择的值为"l1"和"l2".分别对应L1的正则化和L2的正则化,默认是L2的正则化。
solver:优化算法
a) liblinear:使用了开源的liblinear库实现,内部使用了坐标轴下降法来迭代优化损失函数。不能用于L1正则化
b) lbfgs:拟牛顿法的一种,利用损失函数二阶导数矩阵即海森矩阵来迭代优化损失函数。不能用于L1正则化
c) newton-cg:也是牛顿法家族的一种,利用损失函数二阶导数矩阵即海森矩阵来迭代优化损失函数。不能用于L1正则化
d) sag:即随机平均梯度下降,是梯度下降法的变种,和普通梯度下降法的区别是每次迭代仅仅用一部分的样本来计算梯度,适合于样本数据多的时候。
multi_class:分类方式
有 ovr和multinomial两个值可以选择,默认是 ovr。
OvR的思想很简单,无论你是多少元逻辑回归,我们都可以看做二元逻辑回归。具体做法是,对于第K类的分类决策,我们把所有第K类的样本作为正例,除了第K类样本以外的所有样本都作为负例,然后在上面做二元逻辑回归,得到第K类的分类模型。其他类的分类模型获得以此类推。
而MvM则相对复杂,这里举MvM的特例one-vs-one(OvO)作讲解。如果模型有T类,我们每次在所有的T类样本里面选择两类样本出来,不妨记为T1类和T2类,把所有的输出为T1和T2的样本放在一起,把T1作为正例,T2作为负例,进行二元逻辑回归,得到模型参数。我们一共需要T(T-1)/2次分类。
如果选择了ovr,则4种损失函数的优化方法liblinear,newton-cg, lbfgs和sag都可以选择。但是如果选择了multinomial,则只能选择newton-cg, lbfgs和sag了。
class_weight:
类型权重参数
我们可以定义class_weight={0:0.9, 1:0.1},这样类型0的权重为90%,而类型1的权重为10%。
如果class_weight选择balanced,那么类库会根据训练样本量来计算权重。某种类型样本量越多,则权重越低,样本量越少,则权重越高。
sample_weight:
样本权重参数
由于样本不平衡,导致样本不是总体样本的无偏估计,从而可能导致我们的模型预测能力下降。遇到这种情况,我们可以通过调节样本权重来尝试解决这个问题。调节样本权重的方法有两种,第一种是在class_weight使用balanced。第二种是在调用fit函数时,通过sample_weight来自己调节每个样本权重。