逻辑回归总结 带代码
分类:
文章
•
2024-08-15 16:57:40
逻辑回归
- 逻辑回归介绍
- 解决的是二分类问题
- 逻辑回归的输入是线性回归的输出
- 原理
- **函数
- sigmoid 把整体映射到[0,1]设置阈值进行分类判断
- f(x) = 1/(1+e^-x)
- 对数似然损失
- L(y_pre,y_true) = -y_true * log(y_pre) - (1-y_true) * (1-y_pre)
- 代价函数是对m个样本的损失函数求和然后除以m:J(w,b) = 1/m * (求和i=1 - i=m) (L(y_pre_i,y_true_i))
- api
- from sklearn.linear_model import LogisticRegression
- LogisticRegression(solver=‘liblinear’,penatly=‘l2’,C=1.0)
- slover : 算法 liblinear适合小数据集 sag、saga适合大数据 newton-cg、sag、saga、lbfs 适合处理多项损失
- penalty:正则化
- C:正则化力度
- 分类评估方式
- 混淆矩阵
- 正正 真正例TP 正假 伪反例 FN
- 假正 伪正例FP 假假 真反例 TN
-
准确率 (TP+TN)/(Tp+TN+FN+FP)
-
精确率 预测结果为正例中真实为正例的比例 TP/(TP+FP) 查的准不准
-
召回率 真正为正例的样本中预测为正例的比例 TP/(TP+FN)查的全不全
- F1-score 反映模型的稳健性 F1 = 2TP/(2TP+FN+FP)= 2* 精准 *召回/(精准 + 召回)
- api
- from sklearn.metrics import classification_report
- classification_report(y_true,y_pred,labels=[],target_name=[])
- labels指定类别对应的数字 target_name目标类别名称
- 返回 每个类别精准率和召回率
- ROC曲线和AUC指标
- TPR = TP/(TP+FN)所有真实为1的样本中 预测为1的比例
- FPR = FP/(FP+TN) 所有真实为0的样本中 预测为1的比例
- ROC曲线 横轴FPR 纵轴TPR
- AUC 随机取一对正负样本,正样本得分大于负样本的概率
- AUC只能用来评价二分类 越接近1越好
- AUC非常适合评价样本不平衡中的分类器性能
- api
- from sklearn.metrics import roc_auc_score(y_true,y_score)
- 计算ROC面积也就是AUC值
- y_true 必须为0(反例)1(正例标记)

