3.逻辑回归
3.1 逻辑回归介绍【****】
- 使用场景:
- 一般用于解决二分类问题
- 是否患病, 是不是金融诈骗, 是不是垃圾邮件, 要不要贷款, …
- 原理:
- 逻辑回归的输入是什么: 线性回归的输出
- 逻辑回归的使用的是什么激活函数, 它的作用是什么?
- 激活函数: sigmoid
- 作用:
- 把线性回归输出压缩到(0,1)之间, 作为这个事件是否发生概率值; 如果概率值大于阈值, 就阈值预测该事件会发生, 如果概率值小于阈值, 预测事件不会发生; 阈值默认是0.5, 也可以根据具体情况进行调整.
- 注意: 阈值默认是0.5, 也可以根据具体情况进行调整.
- 作用:
- 激活函数: sigmoid
- 损失函数:
- 为了得到一个更好预测结果:
- 提高真实类别为1的概率值, 降低真实类别为0的概率值
- 损失函数: 对数似然损失
- 特点:
- 真实类别为1, 概率值越越大损失越小.
- 真实类别为0, 概率值越越小损失越小
- 特点:
- 为了得到一个更好预测结果:
- 优化:
- 通过求解损失函数的最小值, 就可以最近的逻辑回归模型
- 步骤:
- 对损失求导
- 使用梯度下降, 不断优化模型系数
- 得到一个最佳的逻辑回归模型.
3.2 api介绍
- sklearn.linear_model.LogisticRegression(solver=‘liblinear’, penalty=‘l2’, C = 1.0)
- solver可选参数: ‘liblinear’, ‘sag’, ‘saga’,‘newton-cg’, ‘lbfgs’
- 默认: ‘liblinear’;内部使用了坐标轴下降法迭代优化损失, 用于优化问题的算法。
- 对于小数据集来说,“liblinear”是个不错的选择,而“sag”和’saga’对于大型数据集会更快。
- 对于多类问题,只有’newton-cg’, ‘sag’, 'saga’和’lbfgs’可以处理多项损失;“liblinear”仅限于“one-versus-rest”分类。
- penalty:正则化的种类
- C:正则化力度
- solver可选参数: ‘liblinear’, ‘sag’, ‘saga’,‘newton-cg’, ‘lbfgs’
3.3 案例
- 步骤:
- 加载数据
- 数据基本处理
- 处理缺失值
- 确定特征值和目标值
- 分割数据集
- 特征工程-特征预处理-标准化
- 机器学习(训练逻辑回归模型)
- 模型评估
- 注意: 只有准确率进行评估, 还不够.
3.4 分类评估方式[*****]
-
混淆矩阵
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3X6jid4k-1571483307706)(混淆矩阵.png)]
-
准确率: 所有样本中预测正确的比例
-
精确率: 所有预测为正例的样本中, 真实为正例的比例(查的准不准)
-
召回率: 所有真实为正例的样本中, 预测为正例的比例(查的全不全)
-
F1-Score: 精确率与召回率的结合, 用于衡量模型的稳健性.
- API:
- sklearn.metrics.classification_report(y_true, y_pred, labels=[], target_names=None )
- 参数:
- y_true: 真实的目标值
- y_pred: 预测的目标值
- labels: 目标值列表
- target_names: 目标值的名称列表
- 结果:
- 精确率,召回率, F1-Score
- ROC曲线和AUC指标
- ROC曲线和AUC指标作用:
- 用于解决样本不均衡下的分类模型评估问题的.
- ROC曲线:
- 纵坐标: TPR , 所有真实类别为1(正例)的样本中, 预测为1(正例)的比例
- 横坐标: FPR, 所有真实类别为0(反例)的样本中, 预测为1(正例)比例
- AUC指标:
- AUC在[0.5, 1] 越接近与1说明这个模型评估效果越好, 越接近与0.5 越是是乱猜(效果越差)
- ROC曲线和AUC指标作用:
- API:
- from sklearn.metrics import roc_auc_score
- sklearn.metrics.roc_auc_score(y_true, y_score)
- 参数
- y_true:真实目标值, 反例必须是0, 正例必须是1
- y_score:预测值
- 返回值:
- AUC的指标的值.
- 参数
3.5 ROC曲线的绘制【###】
-
绘制过程:
- 训练一个二分类模型
- 使用这个模型, 对数据进行预测
- 按照预测概率值从大到小排列
- 按照从前往后计算每一个点的TPR(真实为正例的样本中, 预测为正例比例)和FPR(真实为假例的样本中, 预测为正例比例), 在坐标系上描点
- 使用线把所有依次链接起来; 这个连接起来的线就是ROC曲线
- ROC曲线下面积就是AUC指标的值.
<