逻辑回归总结 带代码

逻辑回归

  • 逻辑回归介绍
    • 解决的是二分类问题
    • 逻辑回归的输入是线性回归的输出
  • 原理
    • **函数
      • 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(正例标记)

逻辑回归总结 带代码
逻辑回归总结 带代码