逻辑回归概述
原理:
逻辑回归是一种广泛应用于分类任务的统计方法。其基本原理是将线性回归的结果通过Sigmoid函数转换为一个概率值,这个概率值被用于分类。具体步骤是:
- 使用线性模型 f(x)=wTx+b 根据特征的重要性计算出一个值。
- 使用Sigmoid函数将 f(x) 的输出值映射到概率值范围 [0, 1]。
- 设置一个阈值(通常设为0.5),如果输出概率值大于0.5,则将未知样本分类为1类(正例),否则分类为0类(反例)。
- 默认将类别数量少的类别作为正例。
API:
在Python中,逻辑回归可以通过sklearn.linear_model
模块中的LogisticRegression
类来实现。
应用场景:
逻辑回归主要应用于分类任务,包括二分类和多分类问题,其中二分类是其最主要的应用场景。
流程:
- 利用线性模型计算特征的重要性。
- 使用Sigmoid函数将结果映射为概率值。
- 设置阈值,根据概率值进行分类。
损失函数:
逻辑回归的损失函数基于极大似然函数计算,然后转化为对数似然函数。通过梯度下降法找到损失函数的最小值,使正样本的预测结果尽可能接近于1,负样本的预测结果接近于0。
Sigmoid函数:
Sigmoid函数是逻辑回归中的关键函数,它将线性回归的结果(一个实数)转换为概率值(0到1之间的一个数)。Sigmoid函数的公式为:
σ(z)=1+e−z1
其中,z 是线性回归的结果,即 wTx+b。
混淆矩阵
概述:
混淆矩阵用于描述真实值和预测值之间的关系,包括真正例(TP)、伪正例(FP)、伪反例(FN)和真反例(TN)。
名词解释:
- 真正例(TP):样本值为正例,预测值也为正例。
- 伪正例(FP):样本值为反例,预测值为正例。
- 伪反例(FN):样本值为正例,预测值为反例。
- 真反例(TN):样本值为反例,预测值也为反例。
细节:
TP + FP + FN + TN 等于样本总数。
评估方法
准确率:
准确率是预测正确的样本数量占总样本数量的比例。
from sklearn.metrics import confusion_matrix
精确率(Precision):
精确率是预测为正样本的真实正样本数量占预测为正样本的样本数量的比例。
from sklearn.metrics import precision_score
召回率(Recall):
召回率是预测为正样本的真实正样本数量占真实正样本数量的比例。
from sklearn.metrics import recall_score
F1-Score:
F1-Score是精确率和召回率的调和平均数,用于综合评估模型的性能。
from sklearn.metrics import f1_score
ROC曲线和AUC指标:
ROC曲线展示了模型在不同阈值下的性能,AUC(Area Under Curve)是ROC曲线下的面积,用于衡量分类器的性能。AUC越大,分类器性能越好。当AUC=0.5时,分类器性能等同于随机猜测;当AUC=1时,分类器性能完美。
from sklearn.metrics import roc_auc_score
分类评估报告API:sklearn.metrics.classification_report
用于生成分类评估报告,包括每个类别的精确率和召回率等信息。
from sklearn.metrics import classification_report
# 使用示例
classification_report(y_true, y_pred, labels=[], target_names=None)
y_true
:真实目标值。y_pred
:估计器预测目标值。labels
:指定类别对应的数字。target_names
:目标类别名称。- 返回值:每个类别的精确率与召回率等信息。