学习目标:
- 学习在金融分控领域常用的机器学习模型
- 学习机器学习模型的建模过程与调参流程
学习内容:
-
逻辑回归模型:
- 理解逻辑回归模型;
- 逻辑回归模型的应用;
- 逻辑回归的优缺点;
-
树模型:
- 理解树模型;
- 树模型的应用;
- 树模型的优缺点;
-
集成模型
- 基于bagging思想的集成模型
- 随机森林模型
- 基于boosting思想的集成模型
- XGBoost模型
- LightGBM模型
- CatBoost模型
- 基于bagging思想的集成模型
-
模型对比与性能评估:
- 回归模型/树模型/集成模型;
- 模型评估方法;
- 模型评价结果;
-
模型调参:
-
贪心调参方法;
-
网格调参方法;
-
贝叶斯调参方法;
-
学习笔记:
模型相关原理介绍:
逻辑回归模型
逻辑回归是将数据拟合到一个logit函数(或者叫做logistic函数),从而能够完成对事件发生的概率进行预测。类似与线性回归,但是线性回归不能有效地处理“突发状况”,为了解决结果值映射能够落在范围内,建立了sigmoid函数
在做逻辑回归时,有一个判定边界需要注意,作用是把样本点分隔开来
决策树模型:
id3算法
ID3算法的核心是在决策树各个结点上对应信息增益准则选择特征,递归地构建决策树。具体方法是:从根结点(root node)开始,对结点计算所有可能的特征的信息增益,选择信息增益最大的特征作为结点的特征,由该特征的不同取值建立子节点;再对子结点递归地调用以上方法,构建决策树;直到所有特征的信息增益均很小或没有特征可以选择为止,最后得到一个决策树。ID3相当于用极大似然法进行概率模型的选择。以特征信息增益最大作为根结点的特征,把训练集D分为D1和D2(是与否),由于D1服从同一类我i样本点,所以从D2中再找新信息增益最大特征以从类推,建立决策树。
GBDT模型:
GBDT是一个集成模型,可以看做是很多个基模型的线性相加,其中的基模型就是CART回归树。CART树是一个决策树模型,CART树的主要特征是,他是一颗二分树,每个节点特征取值为“是”和“不是”.
回归树生成
输入训练数据集D={(x1,y1),(x2,y2),....,(xn,yn)},输出:一颗回归树
每个回归树对应输入空间进行划分,划分成M个单元R1-Rm,并且每个单位固定输出值cm,然后通过平方差来表示回归树的误差,知道单元Rm上的最优输出值就是Rm内所有样本xi对应yi的均值。
回归树剪枝
C(T)训练数据的误差,|T|树的节点数量,α是调节模型避免过拟合或者欠拟合的情况
GBDT模型是一个集成模型,是很多CART树的线性相加。
采用分布算法得到:
利用(xi,rti)我们就可以拟合一颗CART回归树,针对每个叶子节点的样本就能求出损失函数的最小,求出ctj最优值,得到拟合函数
Xgboost模型
XGBoost算法是采用分步前向加性模型,只不过在每次迭代中生成弱学习器后不再需要计算一个系数,XGBoost 是由 k 个基模型组成的一个加法运算式:
那么损失函数可由预测值y i与真实值
XGBoost算法通过优化结构化损失函数(加入了正则项的损失函数,可以起到降低过拟合的风险)来实现弱学习器的生成,并且XGBoost算法没有采用搜索方法,而是直接利用了损失函数的一阶导数和二阶导数值,并通过预排序、加权分位数等技术来大大提高了算法的性能。在做决策时,一般初始化样本的预测值,然后建立函数,对每个预测值求导,根据导数建立决策树,又可以利用新的样本以从累推,由于上文XGboost也是类似于通过“是”和“否”的关系建立样本联系,我们可以把最小残差作为下一个决策树的预测值,多次迭代后直到残差不变,就可以得到预测结果。
通过泰勒公式的变换,目标函数变为:
又因为第t步y^it−1已知,所以l ( y i , y ^ i t − 1 ) 是个常数,可以忽略;得
公式变换
求叶子点j的权值
最后
LightGBM模型
https://blog.csdn.net/wuzhongqiang/article/details/105350579
Catboost模型
https://mp.weixin.qq.com/s/xloTLr5NJBgBspMQtxPoFA
模型对比与性能评估
逻辑回归
优点:速度快、易理解、占用内存少
缺点:需要预处理、Logistic回归不能解决非线性问题、难以处理数据不平衡问题、准确率不高
决策树模型
优点:直观、数据不需要预处理、也不需要处理缺失数据、连续值和离散值都可以处理
缺点:容易过拟合,不能用于实际的一般情况
集成模型集成方法:
集成方法主要包括Bagging和Boosting,Bagging和Boosting都是将已有的分类或回归算法通过一定方式组合起来,形成一个更加强大的分类。两种方法都是把若干个分类器整合为一个分类器的方法,只是整合的方式不一样,最终得到不一样的效果。常见的基于Baggin思想的集成模型有:随机森林、基于Boosting思想的集成模型有:Adaboost、GBDT、XgBoost、LightGBM等。
Bagging和Boosting的区别总结如下:
样本选择上:Bagging方法的训练集是从原始集中有放回的选取,所以从原始集中选出的各轮训练集之间是独立的;而Boosting方法需要每一轮的训练集不变,只是训练集中每个样本在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整
样例权重上: Bagging方法使用均匀取样,所以每个样本的权重相等;而Boosting方法根据错误率不断调整样本的权值,错误率越大则权重越大
预测函数上: Bagging方法中所有预测函数的权重相等;而Boosting方法中每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重
并行计算上: Bagging方法中各个预测函数可以并行生成;而Boosting方法各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。
模型评估方法:
训练集中的误差称为训练误差或测试误差,为了减少过拟合的情况出现,一般会把数据分为训练集和测试集,训练集用于训练模型,相对是比较精确、可行性高,而测试集是为了让模型更加的有说服性,检验模型的判别能力
数据集的划分要服从两个条件:1、训练集和测试集的分布要与样本真实分布一致,即训练集和测试集都要保证是从样本真实分布中独立同分布采样而得 2、训练集和测试集要互斥
数据集的划分方法:留出法、交叉检验法、自助法
留出法是将数据集D划分为两个互斥的集合T、S,但是要注意的是要让数据服从统一分布,保证数据的一致性
交叉检验法是将数据集D分成k份,其中k-1份作为训练集,这样重复获得的k组训练集和测试集对数据进行k此试验,最后取均值(问题是如果k次数太多会导致实验量太大)
自助法是每次在数据集中提取一个元素作为训练集,放回数据集,再实验得到m个训练集,把数据集中没出现过的作为测试集(和交叉检验法相同,比较适用于数据集较小的情况)
模型评价标准:
auc模型评价标准【1】
怎么样通过ROC曲线判别模型的优劣:
1、如果模型A的ROC曲线面积包含模型B,则认为模型A优于模型B
2、如果模型A与模型B相互交错,比较ROC曲线面积大小,大者则优
学习收获和总结:
本次学习主要是学如何建模以及建模的一些细节,大致可以划分为相对简单的回归模型和决策树模型,如果单纯的做回归模型需要对模型是否拟合构建r值,而在做决策树时要考虑利用什么类型损失函数更加符合模型结构,决策树更像一个不断迭代的函数,需要划分的点比较多相对较难。本次学习遇到最大的麻烦还是数学公式的变化,需要有一定的数学基础和理解能力。
【1】https://blog.csdn.net/songbinxu/article/details/79902032