金融风控数据挖掘-Task5

一、学习知识点概要

此次学习的主要内容为模型融合,旨在对voting、averaging、bagging、boosting、stacking、blending等方法有一个大致的了解。

二、学习内容

1、voting

此为常见的投票机制,少数服从多数,针对分类模型。假设对于一个二分类问题,有3个基础模型,那么就采取投票制的方法,投票多者确定为最终的分类。

# 简单投票
from xgboost import XGBClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier, VotingClassifier
clf1 = LogisticRegression(random_state=1)
clf2 = RandomForestClassifier(random_state=1)
clf3 = XGBClassifier(learning_rate=0.1, n_estimators=150, max_depth=4, min_child_weight=2, subsample=0.7,objective='binary:logistic')

vclf = VotingClassifier(estimators=[('lr', clf1), ('rf', clf2), ('xgb', clf3)])
vclf = vclf .fit(x_train,y_train)
print(vclf .predict(x_test))
# 加权投票
# 在VotingClassifier中加入参数 voting='soft', weights=[2, 1, 1],weights用于调节基模型的权重

from xgboost import XGBClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier, VotingClassifier
clf1 = LogisticRegression(random_state=1)
clf2 = RandomForestClassifier(random_state=1)
clf3 = XGBClassifier(learning_rate=0.1, n_estimators=150, max_depth=4, min_child_weight=2, subsample=0.7,objective='binary:logistic')

vclf = VotingClassifier(estimators=[('lr', clf1), ('rf', clf2), ('xgb', clf3)], voting='soft', weights=[2, 1, 1])
vclf = vclf .fit(x_train,y_train)
print(vclf .predict(x_test))

2、averaging

averaging一般针对回归问题,简单直接的思路是取平均,稍稍改进的方法是进行加权平均。

3、bagging

bagging是Bootstrap AGGregatING的缩写,简而言之,就是通过 bootstrap 取样(可重复取样)的方法构造多个不同的训练集。之后在每个训练集上训练相应的基学习器,最后将这些基学习器聚合起来得到最终的模型。随机森林就是基于Bagging算法的一个典型例子,采用的基分类器是决策树,利用python可以直接调用。

4、boosting

boosting算法可以并行处理,是一种迭代的方法,每一次训练的时候都更加关心分类错误的样例,给这些分类错误的样例增加更大的权重,下一次迭代的目标就是能够更容易辨别出上一轮分类错误的样例。最终将这些弱分类器进行加权相加。

5、stacking

stacking是更加通用的聚合多个学习器的方法,是k折交叉验证,元模型的训练数据等同于基于模型的训练数据,利用好可在众多比赛中大杀四方,缺点是速度太慢,实际环境中的应用有一定难度。
机器学习之模型融合(stacking)心得

6、blending

主要思路是把原始的训练集先分成两部分,比如70%的数据作为新的训练集,剩下30%的数据作为测试集。第一层我们在这70%的数据上训练多个模型,然后去预测那30%数据的label。在第二层里,可以直接用这30%数据在第一层预测的结果做为新特征继续训练即可。

三、学习问题与解答

1、stacking不一定万能

stacking模型本质上是一种分层的结构,stacking中的各个模型(基分类器)追求的是“准而不同”。stacking中的子模型一般应该是独立准确,而不同的基学习器之间有所差异。
关于stacking的理解

2、Kaggle的意义

初步尝试数据挖掘以来一直很疑惑的一个问题。
我要这金牌有何用:Kaggle 竞赛成绩真能「保送」谷歌、FB 吗?

四、学习思考与总结

模型融合是一个很有意义的过程,一般用于A榜比赛的尾声和B榜比赛的全程,可以说是弱化偏见和综合智慧的过程,或者说就是相互弥补弱点。通过训练多个模型,然后融合,期望这个融合的模型最终的效果可以打败单个模型的效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值