打卡 ——Datawhale 零基础入门数据挖掘-Task4 建模调参

一、学习目标

此次将学习了解常用的机器学习模型,并掌握机器学习模型的建模与调参流程。

二、内容介绍

1.线性回归模型:

  • 线性回归对于特征的要求;
  • 处理长尾分布;
  • 理解线性回归模型;

2.模型性能验证:

  • 评价函数与目标函数;
  • 交叉验证方法;
  • 留一验证方法;
  • 针对时间序列问题的验证;
  • 绘制学习率曲线;
  • 绘制验证曲线;

3.嵌入式特征选择:

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

4.模型对比:

  • 常用线性模型;
  • 常用非线性模型;

5.模型调参:

  • 贪心调参方法;
  • 网格调参方法;
  • 贝叶斯调参方法;

三、相关原理介绍

1.线性回归模型:

线性回归本质上它是一系列特征的线性组合,在二维空间中,你可以把它视作一条直线,在三维空间中可以视作是一个平面。线性回归最普通的形式是: f ( x ) = ω ′ x + b f(x)= ω'x+b f(x)=ωx+b ;其中x向量代表一条样本{x1,x2,x3…xn},其中x1,x2,x3代表样本的各个特征,w是一条向量代表了每个特征所占的权重,b是一个标量代表特征都为0时的预测值,这里的ω乘以x在线性代数中其实代表的是两个向量的内积。
损失函数:为了获得w和b我们需要制定一定的策略,而这个策略在机器学习的领域中,往往描述为真实值与回归值的偏差。 l o s s = ( f ( x ) − y ) 2 loss = (f(x)-y)^2 loss=(f(x)y)2 ;我们希望的是能够减少在测试集上的预测值f(x)与真实值y的差别,从而获得一个最佳的权重参数,因此这里采用最小二乘估计.
优化方法:
1.最小二乘:最小二乘优化的思路是线性代数中的矩阵求导,导数为0的地方就是极值点,也就是使loss最大或者最小的点(实际上是最小的点,因为loss一般是一个往下突的函数,w无限大的时候随便带进去一个值估计出来的值loss都很大,其实求2阶导数也可以看出来)。
2.梯度下降: 梯度方向就是增长最快的方向,如果我们想要函数值减小,只需要沿着负梯度方向走就行了。具体求这个grad的方法就是,对loss求偏导就可以啦,具体还是看《数学优化方法》。

2.决策树模型:python实现决策树

我学到的:决策树模型是一种简单易用的非参数分类器。它不需要对数据有任何的先验假设,计算速度较快,结果容易解释,而且稳健性强。
算法流程:收集数据,准备数据,分析数据,训练数据,测试算法,使用算法
构造决策树的基本算法:

  1. ID3算法:使用信息增益进行特征选择
  2. C4.5算法:使用信息增益率进行特征选择,克服了信息增益选择特征的时候偏向于特征个数较多的不足。
  3. CART算法:分类回归树,既可以用于分类,也可以用于预测。利用 CART 构建回归树用到树的 剪枝技术,用于防止树的过拟合。
    适用数据类型:数值型和标称型。
    构建决策树的三要素:
  • 特征选择:信息增益、信息增益率
  • 决策树生成:ID3、C4.5和Cart树
  • 决策树剪枝: 解决过拟合。分为先剪枝、后剪枝(避免overfitting过拟合)

3.GBDT模型:梯度提升树GBDT

我学到的:
gbdt通过多轮迭代,每轮迭代产生一个弱分类器,每个分类器在上一轮分类器的梯度(如果损失函数是平方损失函数,则梯度就是残差值)基础上进行训练。对弱分类器的要求一般是足够简单,并且是低方差和高偏差的。
弱分类器一般会选择为CART TREE(也就是分类回归树)。
决策树分为两大类,回归树和分类树;前者用于预测实数值,后者用于分类标签值。而回归树的结果加减是有意义的,分类树的结果没办法累加。
GBDT的核心在于累加所有树的结果作为最终结果,因此GBDT中的树都是回归树。。。

4.XGBoost模型: XGBoost模型

我学到的:
Xgboost的每次优化时的目标函数是下面的式子: O b j ( t ) = ∑ i = 1 n l ( y i , y ^ ( t − 1 ) + f t ( x i ) ) + Ω ( f t ) + c o n s t a n t Obj{^(t)}=\displaystyle\sum_{i=1}^nl(y_i,\hat{y}^{(t-1)}+f_t(x_i))+\Omega(f_t)+constant Obj(t)=i=1nl(yi,y^(t1)+ft(xi))+Ω(ft)+constant
目标函数一方面要考虑到损失函数L的计算,另一方面要控制模型复杂度,防止过拟合。Xgboost的基本过程和GBDT基本是一样的,都是通过构造多个基分类器来达到使目标函数最小的目的,每步针对以上有正则限制的损失函数去找到最佳的分类器。

5.LightGBM模型:LightGBM模型

我学到的:
LightGBM的优化方法是,在保留大梯度样本的同时,随机地保留一些小梯度样本,同时放大了小梯度样本带来的信息增益。
优点:1、基于Histogram的决策树算法,代替pre-sorted所构建的数据结构,利用histogram后,会有很多有用的tricks。例如histogram做差,提高了cache命中率(主要是因为使用了带深度限制的leaf-wise的叶子生长策略)。
2、在机器学习当中,面对大数据量时候都会使用采样的方式(根据样本权值)来提高训练速度。又或者在训练的时候赋予样本权值来关于于某一类样本(如Adaboost)。LightGBM利用了GOSS(基于梯度的one-side采样)
GOSS来做采样算法。
3、由于histogram算法对稀疏数据的处理时间复杂度没有pre-sorted好。因为histogram并不管特征值是否为0。因此采用EFB(互斥的特征捆绑)来预处理稀疏数据。

四、模型调参

1.贪心算法:

贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。
思想:
贪心算法的基本思路是从问题的某一个初始解出发一步一步地进行,根据某个优化测度,每一步都要确保能获得局部最优解。每一步只考虑一个数据,他的选取应该满足局部优化的条件。若下一个数据和部分最优解连在一起不再是可行解时,就不把该数据添加到部分解中,直到把所有数据枚举完,或者不能再添加算法停止。
过程:

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

2.网格调参:

XGboost-网格调参法
GridSearchCV 网格搜索调参数

3.贝叶斯调参:

贝叶斯优化用于机器学习调参,主要思想是,给定优化的目标函数(广义的函数,只需指定输入和输出即可,无需知道内部结构以及数学性质),通过不断地添加样本点来更新目标函数的后验分布。简单的说,就是考虑了上一次参数的信息,从而更好的调整当前的参数。
自动化机器学习(AutoML)之自动贝叶斯调参

五、总结

这一次的任务内容感觉比较难,有很多地方还不是很理解,以后将会继续在这方面继续努力,多学习这方面的知识,这个打卡也做的有些简陋,以后会继续加油的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值