【机器学习-贷款用户逾期情况分析2】3.stacking模型融合

3.0 任务说明

用你目前评分最高的模型作为基准模型,和其他模型进行stacking融合,得到最终模型及评分果。

 

3.1 stacking模型融合

Stacking(有时候也称之为stacked generalization)是指训练一个模型用于组合(combine)其他各个模型。即首先我们先训练多个不同的模型,然后再以之前训练的各个模型的输出为输入来训练一个模型,以得到一个最终的输出。如果可以选用任意一个组合算法,那么理论上,Stacking可以表示上面提到的各种Ensemble方法。然而,实际中,我们通常使用单层logistic回归作为组合模型。

对于stacking的过程这篇文章我认为讲得比较清楚:

https://blog.csdn.net/qq_32742009/article/details/81366768

我这里再简要说明一下。首先说明一下,stacking可以看成两层结构,第一层结构的输出作为第二层的输入。

我们第一层以svm,lightgbm,xgboost为例,第二层以LR为例作一个讲解,假设训练集有15000个数据,测试集3000个数据,步骤如下:

(1)用svm作五折交叉训练,训练五次,每次将训练集划分为5份,其中一份作为验证集。

(2)每一次将验证集的预测值竖着组合在一起,5次的预测值分别为a1,a2,a3,a4,a5,假设a的大小都是3000*1,将这5个a值再竖着拼在一起,组成A1,A1的大小为15000*1。A1为上图中最后一个橙块。此时A1各个特征对应的标签设为Label_new。

(3)将每一次验证集得到的结果对Test Data作测试,假设每一次测试后产生2000*1的数据,那么五次验证后产生,5个2000*1的数据b1,b2,b3,b4,b5。b1,b2,b3,b4,b5各个位置相加后取平均值得到1个2000*1的数据B1。这个B1为上图中倒数第二个绿块。

(3)同理,将gbm和xgb五折交叉训练后的预测值竖着组成在一起,分别组成A2,A3。将他们对Test Data作预测,得到B2,B3。

(4)将A1,A2,A3横着合并得到一个15000行3列的矩阵A,将B1,B2,B3横着合并得到一个2000行3列的矩阵B。

(5)矩阵A即为新的训练集的特征,矩阵B即为新的测试集的特征。让下一层的模型,基于他们进一步训练。矩阵A的标签是上面步骤2个Label_new,矩阵B的标签即为原来测试集的标签。

我自己写的函数如下:

def Stacking(model,num_folds,x_train,y_train,x_test,y_test):    #输入的模型集合里最后一个模型用作stacking里第二层模型
    y_train=np.array(y_train)
    x_train_folds = []
    y_train_folds = []
    x_train_folds=np.array_split(x_train,num_folds)
    y_train_folds=np.array_split(y_train,num_folds)
    y_pred_A=[]
    y_pred_testseting_A=[]
    label_1=[]
    model_len=len(model)
    for i in range (0,model_len-1):
        y_pred_A.append([])
        y_pred_testseting_A.append([])

    for i in range (num_folds):            #五折交叉验证
        x_train_now=np.zeros((1,x_train.shape[1]))
        y_train_now=np.array([[0]])
        for k in range (5):   #这里的循环是为了将验证集组合在一块儿
            if(k!=i):
                x_train_now=np.vstack((x_train_now,x_train_folds[k]))


        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值