金融风控训练营task4学习笔记
Task 4 建模和调参
一、学习知识点概括
- 学习在金融分控领域常用的机器学习模型
- 学习机器学习模型的建模过程与调参流程
二、学习内容
1.逻辑回归模型:
1)理解逻辑回归模型:
逻辑回归是应用非常广泛的一个分类机器学习算法,它将数据拟合到一个logit函数(或者叫做logistic函数)中,从而能够完成对事件发生的概率进行预测。
2)逻辑回归模型的应用:
线性回归能对连续值结果进行预测,而现实生活中常见的另外一类问题是,分类问题。最简单的情况是是与否的二分类问题。比如说医生需要判断病人是否生病,银行要判断一个人的信用程度是否达到可以给他发信用卡的程度,邮件收件箱要自动对邮件分类为正常邮件和垃圾邮件等等。
3)逻辑回归的优缺点:
优点:
- 训练速度较快,分类的时候,计算量仅仅只和特征的数目相关;
- 简单易理解,模型的可解释性非常好,从特征的权重可以看到不同的特征对最后结果的影响;
- 适合二分类问题,不需要缩放输入特征;
- 内存资源占用小,只需要存储各个维度的特征值;
缺点:
-
逻辑回归需要预先处理缺失值和异常值;
-
不能用Logistic回归去解决非线性问题,因为Logistic的决策面是线性的;
-
对多重共线性数据较为敏感,且很难处理数据不平衡的问题;
-
准确率并不是很高,因为形式非常简单,很难去拟合数据的真实分布
2.树模型:
1)理解树模型:
决策树由结点(node)和有向边(directed edge)组成。结点有两种类型:内部结点(internal node)和叶结点(leaf node)。内部结点表示一个特征或属性,叶结点表示一个类。
可以把决策树看成一个if-then规则的集合。
2)树模型的应用:
例如:眼科医生判断患者是否需要佩戴隐形眼镜,以及类型
3)树模型的优缺点:
优点:
- 简单直观,生成的决策树可以可视化展示
- 数据不需要预处理,不需要归一化,不需要处理缺失数据
- 既可以处理离散值,也可以处理连续值
缺点:
- 决策树算法非常容易过拟合,导致泛化能力不强(可进行适当的剪枝)
- 采用的是贪心算法,容易得到局部最优解
3.集成模型
- 基于bagging思想的集成模型
Bagging方法的训练集是从原始集中有放回的选取,所以从原始集中选出的各轮训练集之间是独立的
Bagging方法使用均匀取样,所以每个样本的权重相等
Bagging方法中所有预测函数的权重相等
Bagging方法中各个预测函数可以并行生成
- 基于baggin思想的集成模型有:
- 随机森林模型
- 基于boosting思想的集成模型
Boosting方法需要每一轮的训练集不变,只是训练集中每个样本在分类器中的权重发生变化,权值是根据上一轮的分类结果进行调整
Boosting方法根据错误率不断调整样本的权值,错误率越大则权重越大
Boosting方法中每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重
Boosting方法各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果
- CatBoost模型https://mp.weixin.qq.com/s/xloTLr5NJBgBspMQtxPoFA
- LightGBM模型https://blog.csdn.net/wuzhongqiang/article/details/105350579
- XGBoost模型https://blog.csdn.net/wuzhongqiang/article/details/104854890
1.模型对比与性能评估:
1)相关模型有:回归模型,树模型与集成模型。
2)模型评估方法:
-
①留出法
留出法是直接将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一个作为测试集T。需要注意的是在划分的时候要尽可能保证数据分布的一致性,即避免因数据划分过程引入额外的偏差而对最终结果产生影响。为了保证数据分布的一致性,通常我们采用分层采样的方式来对数据进行采样。
Tips: 通常,会将数据集D中大约2/3~4/5的样本作为训练集,其余的作为测试集。
-
②交叉验证法
k折交叉验证通常将数据集D分为k份,其中k-1份作为训练集,剩余的一份作为测试集,这样就可以获得k组训练/测试集,可以进行k次训练与测试,最终返回的是k个测试结果的均值。交叉验证中数据集的划分依然是依据分层采样的方式来进行。
对于交叉验证法,其k值的选取往往决定了评估结果的稳定性和保真性,通常k值选取10。
当k=1的时候,我们称之为留一法
-
③自助法
我们每次从数据集D中取一个样本作为训练集中的元素,然后把该样本放回,重复该行为m次,这样我们就可以得到大小为m的训练集,在这里面有的样本重复出现,有的样本则没有出现过,我们把那些没有出现过的样本作为测试集。
进行这样采样的原因是因为在D中约有36.8%的数据没有在训练集中出现过。留出法与交叉验证法都是使用分层采样的方式进行数据采样与划分,而自助法则是使用有放回重复采样的方式进行数据采样
模型评价结果:
选用auc作为模型评价标准:ROC曲线越接近左上角,该分类器的性能越好,其泛化性能就越好。而且一般来说,如果ROC是光滑的,那么基本可以判断没有太大的overfitting。
选择更优的方法:
1)如果模型A的ROC曲线完全包住了模型B的ROC曲线,那么我们就认为模型A要优于模型B;
2)如果两条曲线有交叉的话,我们就通过比较ROC与X,Y轴所围得曲线的面积来判断,面积越大,模型的性能就越优,这个面积我们称之为AUC(area under ROC curve)
2.模型调参:
贪心调参方法:
先使用当前对模型影响最大的参数进行调优,达到当前参数下的模型最优化,再使用对模型影响次之的参数进行调优,如此下去,直到所有的参数调整完毕。
缺点:可能会调到局部最优而不是全局最优
解决方法:一步步的进行参数最优化调试即可
网格调参方法:
sklearn 提供GridSearchCV用于进行网格搜索,只需要把模型的参数输进去,就能给出最优化的结果和参数
优点:相较于贪心调参,结果会更优
缺点:只适合于小数据集,量级一旦上去,则很难得出结果
贝叶斯调参方法:
在使用之前需要先安装包bayesian-optimization,运行如下命令即可:
pip install bayesian-optimization
贝叶斯调参的主要思想是:给定优化的目标函数(广义的函数,只需指定输入和输出即可,无需知道内部结构以及数学性质),通过不断地添加样本点来更新目标函数的后验分布(高斯过程,直到后验分布基本贴合于真实分布)。简单的说,就是考虑了上一次参数的信息,从而更好的调整当前的参数。
模型调参小总结
集成模型内置的cv函数可以较快的进行单一参数的调节,一般可以用来优先确定树模型的迭代次数
数据量较大的时候(例如本次项目的数据),网格搜索调参会特别特别慢,不建议尝试
集成模型中原生库和sklearn下的库部分参数不一致,需要注意,具体可以参考xgb和lgb的官方API
三、学习问题与解决
对于建模方法一开始并不是很了解,但是本节课很贴心的给了相关基础知识内容的博客,所以这方面的问题得到了很好的解决。
四、学习思考与总结
在Task4中,主要完成了建模与调参的工作
1.在建模的过程中通过划分数据集、交叉验证等方式对模型的性能进行评估并通过可视化的方法绘制ROC曲线。
2.在调参中学习到了贪心调参、网络调参以及贝叶斯调参三种调参方法
学习仍在继续,加油!!!!
附加内容:逻辑回归模型:https://blog.csdn.net/han_xiaoyang/article/details/49123419
决策树模型:https://blog.csdn.net/c406495762/article/details/76262487