模型调参

模型调参

  • 模型调参的具体操作
    • 1. 学习目标
    • 2. 模型对比与性能
      • 2.1 逻辑回归
      • 2.2 决策树模型
      • 2.3 集成模型集成方法(ensemble method)
      • 2.4 模型评估方法
    • 3. 模型调参的三种方法
      • 3.1 贪心算法
      • 3.2 网格调参
      • 3.3 贝叶斯调参
    • 4. 具体代码落实
    • 5. 参考

模型调参的具体操作

1. 学习目标

  • 学习机器学习模型的建模过程与调参流程

2. 模型对比与性能

2.1 逻辑回归

可以用作初步的分析使用,后期进行模型更换

  • 优点
    • 训练速度较快,分类的时候,计算量仅仅只是特征的数目相关;
    • 简单易理解,模型的可解释性非常好,从特征的权重可以看到不同的特征对最后结果的影响;
    • 适合二分类问题,不需要缩放输入特征;
    • 内存资源占用小,只需要存储各个维度的特征值;
  • 缺点
    • 逻辑回归需要预先处理缺失值和异常值;
    • 不能用Logisitic回归去结果非线性问题,因为Logistic的决策面是线性的;
    • 对多面共线性数据较为敏感,且很难处理数据不平衡的问题;
    • 准确率并不是很高,因为形式较为简单

2.2 决策树模型

  • 优点
    • 简单直观,生成的决策树可以可视化展示;
    • 数据不需要与处理,不需要归一化,不需要处理缺失数据;
    • 可以刻处理离散值,也可以处理连续值
  • 缺点
    • 决策树算法非常用以过拟合,导致泛化能力不强
    • 采用的是贪心算法,容易得到局部最优解

2.3 集成模型集成方法(ensemble method)

集成模型主要可以分为两大类:基于Bagging思想的集成模型和基于Boosting思想的集成模型。两者都是通过将已有的分类或者回归算法通过一定方式组合起来,形成一个更为强大的分类。两种方法都是把若干个分类器整合成一个分类器的方法,只是整合的方式不同,最终得到的效果也不同。
Baggin和Boosting的区别总结如下:

  • 样本选择上: Bagging方法的训练集是从原始集中有放回的选取,所以从原始集中选出的各轮训练集之间是独立的;而Boosting方法需要每一轮的训练集不变,只是训练集中每个样本在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整
  • 样例权重上: Bagging方法使用均匀取样,所以每个样本的权重相等;而Boosting方法根据错误率不断调整样本的权值,错误率越大则权重越大
  • 预测函数上: Bagging方法中所有预测函数的权重相等;而Boosting方法中每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重
  • 并行计算上: Bagging方法中各个预测函数可以并行生成;而Boosting方法各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。
  • 基于bagging思想的集成模型
    • 随机森林模型
  • 基于boosting思想的集成模型
    • XGBoost模型
    • LightGBM模型
    • CatBoost模型

2.4 模型评估方法

通过训练集的误差来评价模型的精准程度,通过测试集的误差来进一步评价模型的泛化能力。
对于数据集的划分,主要采用三种方法:留出法;交叉验证法;自助法;
数据集的划分方式的采用,主要是根据数据集大小来判断。

  • 对于数据量充足的时候,通常采用留出法或者交叉验证法来进行数据集的划分;
  • 数据集小且难以进行有效划分训练/测试集时使用自助法;
  • 遂于数据集小且可有效划分的时候最好使用留一法来进行划分,因为这种方法最为准确

3. 模型调参的三种方法

3.1 贪心算法

概念:
所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,它所做出的仅仅是某种意义上的局部最优解
贪心算法没有一种固定的算法框架,算法设计的关键是贪心策略的选择。必须注意的是,贪心算法不是对所有问题都能找到整体最优解。

思路:

  • 建立数学模型来描述问题
  • 把求解的问题分为若干个子问题
  • 对子问题的求解,得到子问题的局部最优解
  • 把子问题的解局部最优解合成原来问题的一个解

存在问题:

  • 不能保证求得的最后解是最佳的
  • 不能用来求解最大值或者最小值
  • 只能求满足某些约束条件的可行解的范围

3.2 网格调参

概念:
通过循环遍历,尝试每种参数组合,返回最好的参数组合。每个参数都能组合在一起,循环过程就像是在网格中遍历,所以叫网格搜索。

存在问题:
调参时将整个数据集(训练集与测试集)都放入调参模型中,会使得评分值回避实际效果要好。

解决方法:
把数据集划分为三份:训练集、验证集、测试集。
为了防止出现模型过拟合,我们使用交叉检验的方法。

3.3 贝叶斯调参

概念:
贝叶斯优化通过基于目标函数的过去评估结果建立替代函数(概率模型),来寻找最小化目标函数的值。贝叶斯方法与随机或网格搜索的不同之处在于,它在尝试下一组超参数时,会参考之前的评估结果。
超参数的评估代价很大,因为它要使用待评估的超参数训练一遍模型,而许多深度学习模型动辄几个小时几天才能完成训练并评估模型,因此耗费巨大。贝叶斯调参法不断更新的概率模型,通过推断过去的结果来集中有希望的超参数。

贝叶斯优化四个部分:

  • 目标函数:我们想要最小化的内容,在这里,目标函数是机器学习模型使用该超参数在验证集上的损失
  • 域空间:要搜索的超参数的取值范围
  • 优化算法:构造替代函数并选择下一个超参数进行评估的方法
  • 结果历史记录:来自目标函数评估的存储结果,包括超参数和验证集上的损失。

4. 具体代码落实

5. 参考

https://blog.csdn.net/zhangxiaolinxin/article/details/105256588

你可能感兴趣的:(数据挖掘)