目录
1 学习任务
天池龙珠计划_金融风控训练营
Task4 建模与调参学习打卡
1.1 学习目标
本节学习目标是:
- 学习在金融分控领域常用的机器学习模型
- 学习机器学习模型的建模过程与调参流程
- 完成相应学习打卡任务
2 学习内容
2.1 训练模型选择
在对选择训练模型前,需要考虑算法选择。算法选择的考虑因素有:
- 数据的维度大小,数据的质量和数据的特征属性
- 你可利用的计算资源
- 你所在项目组对该项目的时间预计
- 你手上的数据能应用在哪些项目中
如下图所示,算法选择可以分类两大类,从机器学习角度分类和算法功能角度分类。
sklearn库的算法主要有四类:分类,回归,聚类,降维。其中:
-
常用的回归:线性、决策树、SVM、KNN ;
-
集成回归:随机森林、Adaboost、GradientBoosting、Bagging、ExtraTrees
-
常用的分类:线性、决策树、SVM、KNN,朴素贝叶斯;集成分类:随机森林、Adaboost、GradientBoosting、Bagging、ExtraTrees
-
常用聚类:k均值(K-means)、层次聚类、DBSCAN
-
常用降维:LDA、PCA
根据Sklearn模型选择结构图(上图),可以选择相应的训练模型。
2.2 训练模型学习
通过本次学习打卡,从中学习了解到了GBDT、XGBoost、LightGBM、Catboost模型,学了它们的基本原理。
学习链接:
GBDT模型
XGBoost模型
LightGBM模型
Catboost模型
此外还对这些模型的优劣势进行了比较分析。
2.2.1 GBDT
梯度提升决策树 (GBDT ,Gradient Boosting Decision Tree),GBDT的核心就在于,每一棵树学的是之前所有树结论和的残差,这个残差就是一个加预测值后能得真实值的累加量。
GBDT的优点:
- 预测精度高
- 适合低维数据
- 能处理非线性数据
- 可以灵活处理各种类型的数据,包括连续值和离散值。
- 在相对少的调参时间情况下,预测的准备率也可以比较高。这个是相对SVM来说的。
- 使用一些健壮的损失函数,对异常值的鲁棒性非常强。比如 Huber损失函数和Quantile损失函数。
缺点:
- 由于弱学习器之间存在依赖关系,难以并行训练数据。不过可以通过自采样的SGBT来达到部分并行。
- 如果数据维度较高时会加大算法的计算复杂度
2.2.2 XGBoost
XGBoost是陈天奇等人开发的一个开源机器学习项目,高效地实现了GBDT算法并进行了算法和工程上的许多改进。
XGBoost的优点:
- 精度更高
- 灵活性更强
- 正则项降低了模型的方差,使学习出来的模型更加简单,有助于防止过拟合
- Shrinkage(缩减): 相当于学习速率。
- 列抽样, XGBoost 借鉴了随机森林的做法,支持列抽样,
- 缺失值处理, 可以自动学习出它的分裂方向
- XGBoost工具支持并行
- 可并行的近似算法
缺点:
- 虽然利用预排序和近似算法可以降低寻找最佳分裂点的计算量,但在节点分裂过程中仍需要遍历数据集
- 预排序过程的空间复杂度过高,不仅需要存储特征值,还需要存储特征对应样本的梯度统计值的索引,相当于消耗了两倍的内存
2.2.3 LightGBM
LightGBM是一个梯度Boosting框架,使用基于决策树的学习算法。它可以说是分布式的,高效的。
LightGBM的优点:
- 更快的训练效率
- 低内存使用
- 更高的准确率
- 支持并行化学习
- 可以处理大规模数据
缺点有:
- 可能会长出比较深的决策树,产生过拟合
- 由于LightGBM是基于偏差的算法,所以会对噪点较为敏感
- 在寻找最优解时,依据的是最优切分变量,没有将最优解是全部特征的综合这一理念考虑进去
2.2.4 CatBoost
从本次学习打卡任务中,了解到了CatBoost这个模型,在此之前没有什么了解。通过本次学习打卡任务,学习到了CatBoost这个模型。