美文网首页
模型调参

模型调参

作者: SKIIoooJyl | 来源:发表于2020-04-01 21:49 被阅读0次

相关模型

线性回归

决策树

决策树(Decision Tree)是一种非参数的有监督学习方法,它能够从一系列有特征和标签的数据中总结出决策规则,并用树状图的结构来呈现这些规则,以解决分类和回归问题。决策树算法容易理解,适用各种数据,在解决各种问题时都有良好表现,尤其是以树模型为核心的各种集成算法,在各个行业和领域都有广泛的应用。
决策树算法的本质是一种图结构,我们只需要问一系列问题就可以对数
据进行分类了。

GBDT

  • CART回归树
    GBDT是一个集成模型,可以看做是很多个基模型的线性相加,其中的基模型就是CART回归树。
    CART树是一个决策树模型,与普通的ID3,C4.5相比,CART树的主要特征是,他是一颗二分树,每个节点特征取值为“是”和“不是”。

决策树是一种基本的分类与回归方法。决策树模型具有分类速度快,模型容易可视化的解释,但是同时是也有容易发生过拟合,虽然有剪枝,但也是差强人意。
提升方法(boosting)在分类问题中,它通过改变训练样本的权重(增加分错样本的权重,减小分队样本的的权重),学习多个分类器,并将这些分类器线性组合,提高分类器性能。boosting数学表示为:
f(x) = w_0 + \sum\limits_{m=1}^M w_m \phi_m(x)
其中w是权重,ϕ是弱分类器的集合,可以看出最终就是基函数的线性组合。
于是决策树与boosting结合产生许多算法,主要有提升树、GBDT等。

XGBoost

xgboost是一个监督模型,那么xgboost对应的模型是什么?
答案就是一堆CART树

LightGBM


性能验证

交叉验证方法

在使用训练集对参数进行训练的时候,人们通常会将一整个训练集分为三个部分:训练集(train_set),验证集(valid_set),测试集(test_set)。这其实是为了保证训练效果而特意设置的。
在实际的训练中,训练的结果对于训练集的拟合程度通常还是挺好的(初始条件敏感),但是对于训练集之外的数据的拟合程度通常就不那么令人满意了。因此我们通常并不会把所有的数据集都拿来训练,而是分出一部分来(不参加训练)对训练集生成的参数进行测试,相对客观的判断这些参数对训练集之外的数据的符合程度。这种思想就称为交叉验证(Cross Validation)

  • k折交叉验证
    它将原始数据分成K组(K-Fold),将每个子集数据分别做一次验证集,其余的K-1组子集数据作为训练集,这样会得到K个模型。这K个模型分别在验证集中评估结果,最后的误差MSE(Mean Squared Error)加和平均就得到交叉验证误差。交叉验证有效利用了有限的数据,并且评估结果能够尽可能接近模型在测试集上的表现,可以做为模型优化的指标使用。
  • 留一法
    即当 k=m 即样本总数时,每次的测试集都只有一个样本,要进行 m 次训练和预测。
    这个方法用于训练的数据只比整体数据集少了一个样本,因此最接近原始样本的分布。
    但是训练复杂度增加了,因为模型的数量与原始数据样本数量相同。
    一般在数据缺乏时使用。
    样本数很多的话,这种方法开销很大。

嵌入式特征选择

  • Lasso回归;
  • Ridge回归;
  • 决策树;

模型对比

模型调参

贪心调参

基本思路

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

问题

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

贪心策略适用的前提是:局部最优策略能导致产生全局最优解。

网格调参

当你算法模型效果不是很好时,可以通过该方法来调整参数,通过循环遍历,尝试每一种参数组合,返回最好的得分值的参数组合。

问题

原来的数据集分割为训练集和测试集之后,其中测试集起到的作用有两个,一个是用来调整参数,一个是用来评价模型的好坏,这样会导致评分值会比实际效果要好
我们可以通过把数据集划分三份来解决这个问题同时用交叉验证防止过拟合。

网格调参能够使我们找到范围内最优的参数,param_grid参数越多,组合越多,计算的时间也需要越多,适用于小数据集

贝叶斯调参

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

优化问题

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

相关文章

  • 算法调参 - 交叉验证

     算法模型训练过程中,获取模型项目参数(比如λ、p)的最优值,这个过程叫做调参。  - 模型调参的方法:     ...

  • 模型调参

    贪心调参 (坐标下降) 所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上...

  • 模型调参

    相关模型 线性回归 决策树 决策树(Decision Tree)是一种非参数的有监督学习方法,它能够从一系列有特征...

  • 深度模型训练方法(二)

    在文章<深度模型训练方法>中提到,深度模型中拥有很多超参,模型的训练其实就是一个调超参的过程。而在调超参时,我们主...

  • XGboost 基线模型及部分参数优化

    1 模型原理及调参参考 调参:XGBoost参数调优完全指南原理:xgboost入门与实战(原理篇) 2 输出基线...

  • 数据挖掘竞赛入门之二手车交易价格预测

    Task2-EDATask3-特征工程Task4-模型调参Task5-模型融合

  • 机器学习:06. 调参的基本思想(乳腺癌数据)

    1. 机器学习中调参的基本思想 调参的目的就是为了提升模型的准确率。在机器学习中,我们用来衡量模型在未知数据上的准...

  • 模型调参工具GridSearchCV

    今天我们来讨论机器学习中一个非常重要的函数GridSearchCV,它是我们用来求解最佳参数组合的常用函数。例如:...

  • 2019-03-10记忆学习:一个case

    记忆学习整体流程 数据EDA 特征工程 模型建立,调参CV 模型融合(Ensembling) 都是基于特征集的,不...

  • 贝叶斯调参

    机器学习中参数调优的目的是为了找到模型在测试集上表现最好的参数,目前常见的调参方法主要有四种: 1、手动调参; 2...

网友评论

      本文标题:模型调参

      本文链接:https://www.haomeiwen.com/subject/gzlauhtx.html