数据分析|python机器学习之模型选择与优化

问题引入 炮弹轨迹问题 数据分析|python机器学习之模型选择与优化
文章图片

对于以上的炮弹问题,想分析他不用的数据模型
数据分析|python机器学习之模型选择与优化
文章图片

数据分析|python机器学习之模型选择与优化
文章图片

  • 以上三种模型对应着3种不同模型情况
    数据分析|python机器学习之模型选择与优化
    文章图片
芯片检测问题 根据芯片尺寸1、尺寸2参数识别次品
数据分析|python机器学习之模型选择与优化
文章图片

数据分析|python机器学习之模型选择与优化
文章图片

数据分析|python机器学习之模型选择与优化
文章图片

  • 以上三种情况对应着拟合的3种结果
    数据分析|python机器学习之模型选择与优化
    文章图片
  • 模型对数据的预测情况
由于模型不合适,致使其无法对数据进行准确的预测
数据分析|python机器学习之模型选择与优化
文章图片

解决过拟合和欠拟合问题
  • 通常来说,欠拟合可通过观察训练数据的预测结果发现,解决办法可以是:选用其他模型、增加模型复杂度、增加数据样本、采集新的维度数据
解决过拟合问题的方法
  • 原因:
    ? 使用了过于复杂的模型结构(比如高阶决策边界)
    ? 训练数据不足,有限的训练数据(训练样本只有总体样本中的小部分、不具备代表性)
    ? 样本里的噪音数据干扰过大,模型学习到了噪音信息(使用过多与结果不相关属性数据)
解决办法:
? 简化模型结构(降低模型复杂度,能达到好的效果情况下尽可能选择简单的模型)
? 数据增强(按照一定的规则扩充样本数据)
? 数据预处理,保留主成分信息(数据PCA处理)
? 增加正则化项(regularization)
参考链接:
https://blog.csdn.net/dfly_zx/article/details/107954860
  • 数据增强
    • 如图形中用的比较多的平移、翻转、旋转、镜像
      数据分析|python机器学习之模型选择与优化
      文章图片
  • PCA降维处理
    数据分析|python机器学习之模型选择与优化
    文章图片
【数据分析|python机器学习之模型选择与优化】数据分析|python机器学习之模型选择与优化
文章图片

  • 增加正则项
机器学习过程中,模型求解的核心目标就是最小化损失函数,增加正则项是指在损失函数中添加一个额外项,实现对求解参数的数值约束,防止模型过拟合。
数据分析|python机器学习之模型选择与优化
文章图片

数据分析|python机器学习之模型选择与优化
文章图片

如果λ是很大的数值(比如1000000),那各个θ取值就不能过大,其意义则是各个属性数据的系数受到约束(有效控制各个属性数据的影响)。
(这里用ridge正则项做例子,但并不局限,如用绝对值亦可)
数据分析|python机器学习之模型选择与优化
文章图片

数据分析|python机器学习之模型选择与优化
文章图片

- 回归模型,引入不同正则项
数据分析|python机器学习之模型选择与优化
文章图片

数据分析|python机器学习之模型选择与优化
文章图片

如在分类项目中
数据分析|python机器学习之模型选择与优化
文章图片

小tips 如果想偷个懒,不知道该用几阶的回归任务,直接选用一个高阶的(如10阶5阶),这时候很有可能过拟合,则在这个的基础上增加一个pca数据分析降维,再去训练模型
分离训练数据与测试数据 思考:仅仅通过训练数据的预测效果,是否足以评判模型的表现?
数据分析|python机器学习之模型选择与优化
文章图片

  • 一个好的模型,能过对新数据样本做出准确预测
    数据分析|python机器学习之模型选择与优化
    文章图片
  • 回顾模型训练与评估流程
    数据分析|python机器学习之模型选择与优化
    文章图片

    在这个的基础上,我们在模型创建后,将数据分成两部分,对全数据进行数据分离!
    数据分析|python机器学习之模型选择与优化
    文章图片
分离流程 1、把全部数据分成两组:训练集、测试集
2、用训练集里的数据输入模型进行训练
3、用测试集里的数据输入模型进行预测,能有效评估此模型预测新的输入数据的表现
数据分析|python机器学习之模型选择与优化
文章图片

混淆矩阵(Confusion Matrix) 用于评估模型训练结果后的准确性,在前期学习的时候,我们对模型评估的方法就是查看其准确率,但是也有局限性:不能全面或真实表达模型对各类别结果的预测准确度
  • 案例:奢饰品公司在投放广告前,根据部分高档消费客户的数据作为训练集和测试集,训练测试了高档消费客户的分类模型。该模型的准确率达到了95%。但是在实际广告投时,发现模型输出预测都为普非高档消费客户(非目标用户群体),其结果无法帮助决策。
数据分析|python机器学习之模型选择与优化
文章图片

更好的理解其中原因,我们将以上案例的数值提取出来概括:例如有100个样本,95个负样本,只有5个正样本,如果测试所有的样本结果都是负样本,也可以说准确率是95%
  • 局限性变现在:
    ? 没有体现数据子类别的预测效果(如:0、1分别预测的准确率)
    ? 没有体现模型错误预测的类型(如:5%的错误率是什么预测错误)
以准确率作为分类问题的评价指标是有明显缺陷的,假如不同样本的比例非常不均衡,占大比例的类别会成为影响准确率的主要原因。
基于混淆矩阵计算评估指标
  • 混淆矩阵也称误差矩阵,用于统计各类别样本预测正确与错误的数量,能帮助用户更全面地评估模型表现
    数据分析|python机器学习之模型选择与优化
    文章图片

    ?True Positives (TP): 预测准确、预测为正样本的数量(实际为1,预测为1)
    ?True Negatives (TN): 预测准确、预测为负样本的数量(实际为0,预测为0)
    ?False Positives (FP): 预测错误、预测为正样本的数量(实际为0,预测为1)
    ?False Negatives (FN): 预测错误、预测为负样本的数量(实际为1,预测为0)
(预测结果正确或错误,预测结果为正样本或负样本)
数据分析|python机器学习之模型选择与优化
文章图片

  • 案例
    数据分析|python机器学习之模型选择与优化
    文章图片

    A模型的各指标计算数值
    数据分析|python机器学习之模型选择与优化
    文章图片
  • 最终结果
    数据分析|python机器学习之模型选择与优化
    文章图片
混淆矩阵小结
  • 优点:
    ? 分类任务中,相比单一的准确率指标,混淆矩阵提供了更全面的模型评估信息(TP\TN\FP\FN)
    ? 基于混淆矩阵,我们可以计算出多样的模型表现衡量指标,从而实现模型的综合评估
  • 应用场景决定了衡量指标的重要性:
    ? 广告精准投放(正样本为 “目标用户”): 希望目标用户尽可能都被找出来、即实际正样本预测正确,需要关注召回率;同时,希望预测的正样本中实际都尽可能为正样本,需要关注精确率
    ? 异常消费检测 (正样本为 “异常消费”): 希望判断为正常的消费(负样本)中尽可能不存在异常消费,还需要关注特异度
不同时候看的指标不一样,需要具体问题具体分析
模型选择与优化 在模型创建过程中有三大核心问题需要注意
数据分析|python机器学习之模型选择与优化
文章图片

算法选择 数据分析|python机器学习之模型选择与优化
文章图片

建模前检查 在这个过程,模型表现属于结果,如表现不好,需要从前往后找问题数据:是否有问题、算法选的是否合适、核心结构与参数是否合理
数据分析|python机器学习之模型选择与优化
文章图片

数据分析|python机器学习之模型选择与优化
文章图片

  • 上游决定下游,建模前五检查:
1、样本代表性:采集数据的方法是否合理,采集到的数据是否有代表性
2、标签统一化:对于样本结果,要确保每个样本都遵循一样的标签规则
3、数据合理性:样本中的异常数据点是否合理、如何处理
4、数据重要性:数据属性的意义,是否为无关数据
5、属性差异性:不同属性数据的数量级差异性如何
  • 对于异常5检查,可以用以下方法进行尝试:
1、根据实际场景扩充或减少样本(数据质量提升,有助于提高模型表现)
2、对不合理标签数据进行预处理(帮助模型学习到正确信息(合理的“监督”))
3、删除不重要的属性数据、数据降维(降低噪声影响、减少过拟合、节约运算时间)
4、对数据进行归一化或标准化(平衡数据影响,加快训练收敛)
5、过滤掉异常数据(降低噪声影响、提高鲁棒性)
数据分析|python机器学习之模型选择与优化
文章图片

关于后3检查的示例 数据分析|python机器学习之模型选择与优化
文章图片

根据芯片尺寸1、尺寸2参数识别次品
数据分析|python机器学习之模型选择与优化
文章图片

  • 异常数据处理
    数据分析|python机器学习之模型选择与优化
    文章图片
  • 不同属性数据量级比较
    数据分析|python机器学习之模型选择与优化
    文章图片
  • 数据降维分析
    数据分析|python机器学习之模型选择与优化
    文章图片
  • 多模型对比
对于不同算法,应用场景不同,因此可以多尝试不同的模型进行训练,找到最优解
不适合的基本情况(模型表现属于结果,如表现不好,需要从前往后找问题:数据是否有问题、算法选的是否合适、核心结构与参数是否合理)
数据分析|python机器学习之模型选择与优化
文章图片

数据分析|python机器学习之模型选择与优化
文章图片

- 单一模型的核心参数优化
KNN模型,可以尝试不同的K值
数据分析|python机器学习之模型选择与优化
文章图片

在该情况下K越小,训练数据的预测准确率越高,但测试数据准确率可能下降(过拟合)
数据分析|python机器学习之模型选择与优化
文章图片

提高模型表现的四要素 数据分析|python机器学习之模型选择与优化
文章图片

    推荐阅读