构建逻辑回归分类器
逻辑回归是分类方法,主要解决二分类问题。
在逻辑回归中使用了 Logistic 函数,也称为 Sigmoid 函数。
为什么逻辑回归算法是基于 Sigmoid 函数实现的呢?你可以这样理解:我们要实现一个二分类任务,0 即为不发生,1 即为发生。我们给定一些历史数据 X 和 y。其中 X 代表样本的 n 个特征,y 代表正例和负例,也就是 0 或 1 的取值。通过历史样本的学习,我们可以得到一个模型,当给定新的 X 的时候,可以预测出 y。这里我们得到的 y 是一个预测的概率,通常不是 0% 和100%,而是中间的取值,那么我们就可以认为概率大于 50% 的时候,即为发生(正例),概率小于 50% 的时候,即为不发生(负例)。这样就完成了二分类的预测。
在sklearn 中,我们使用** LogisticRegression() 函数**构建逻辑回归分类器,构造参数:
- penalty:惩罚项,取值为 l1 或 l2,默认为 l2。当模型参数满足高斯分布的时候,使用 l2,当模型参数满足拉普拉斯分布的时候,使用 l1;
- solver:代表的是逻辑回归损失函数的优化方法。有 5 个参数可选,分别为 liblinear、lbfgs、newton-cg、sag 和 saga。默认为 liblinear,适用于数据量小的数据集,当数据量大的时候可以选用 sag 或 saga 方法。
- max_iter:算法收敛的最大迭代次数,默认为 10。
- n_jobs:拟合和预测的时候 CPU 的核数,默认是 1,也可以是整数,如果是 -1 则代表 CPU的核数。
模型评估指标
之前对模型做评估时,通常采用的是准确率 (accuracy),它指的是分类器正确分类的样本数与总体样本数之间的比例。这个指标对大部分的分类情况是有效的,不过当分类结果严重不平衡的时候,准确率很难反应模型的好坏。
对于分类不平衡的情况,有两个指标非常重要,它们分别是精确度和召回率。
P 或 N 代表预测为正例还是负例,P 为正,N 为负;T 或 F代表的是预测结果是否正确,T 为正确,F 为错误。
精确率 P = TP/ (TP+FP),对应怖分子例子,在所有判断为恐怖分子的人数中,真正是恐怖分子的比例。
召回率 R = TP/ (TP+FN),也称为查全率。代表的是恐怖分子被正确识别出来的个数与恐怖分子总数的比例。
F1指标综合了精确率和召回率,F1 作为精确率 P 和召回率 R 的调和平均,数值越大代表模型的结果越好。