Datawhale集成学习:Blending集成学习算法

本文介绍了Blending集成学习的基本思路,它类似于Stacking的简化版。通过划分数据集,训练多层模型并利用第一层模型的预测结果作为第二层模型的输入。Blending方法的优点在于其简便性,但缺点是仅使用部分数据进行模型验证。文章还提供了Blending的实战示例,分别基于自创数据和鸢尾花数据集。
摘要由CSDN通过智能技术生成

前言

Blending 是简化版的Stacking,Stacking集成算法可以理解为一个两层的集成,第一层含有多个基础分类器,把预测的结果(元特征)提供给第二层, 而第二层的分类器通常是逻辑回归,他把一层分类器的结果当做特征做拟合输出预测结果。

Blending方法的基本思路

  1. 将数据按照一定比例划分为训练集和测试集,其中训练集按照一定比例再次划分为训练集和验证集
  2. 创建第一层的多个同质或异质模型
  3. 使用训练集数据对第一层模型进行训练,然后使用验证集和测试集进行模型验证和测试,得到{val_predict},test_predict
  4. 创建第二层的模型(一般是线性模型),使用val_predict作为第二层模型的训练集
  5. 使用训练好的第二层模型对test_predict进行预测,将得到的结果作为整个测试集的结果
    在这里插入图片描述

Blending方法的优缺点

优点:方法简单,使用传递的方法进行训练、验证、测试
缺点:只使用一部分数据集进行模型验证

Blending实战(使用创建数据)

# import packages
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.style.use('ggplot')
%matplotlib inline
import seaborn as sns

# 创建数据
from sklearn import datasets
from sklearn.datasets import make_blobs
from sklearn.model_selection import train_test_split

data, target = make_blobs(n_samples=10000, centers=2, random_state=1, cluster_std=1.0)

## 划分训练集和测试集
X_train_origin, X_test, y_train_origin, y_test = train_test_split(data, target, 
                                                                  test_size=0.2, random_state=1)

## 划分训练集和验证集
X_train, X_val, y_train, y_val = train_test_split(X_train_origin, 
                                                   y_train_origin, 
                                                   test_size=0.3, 
                                                   random_state=1)

print("The shape of training X:", X_train.shape)
print("The shape of training y:", y_train.shape)
print("The shape of test X:", X_test
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.小林

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值