You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

不划分训练测试集,如何在含Class标签的数据集上训练Bagging模型?

不划分训练测试集训练Bagging分类器的实现方法

1. 导入依赖库

首先导入处理数据和构建模型所需的工具:

import pandas as pd
from sklearn.ensemble import BaggingClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.preprocessing import LabelEncoder

2. 加载与预处理数据

加载数据集,分离特征变量和目标变量Class。由于sklearn分类器要求标签为数值类型,需将Good/Bad转换为数值:

# 加载数据集(替换为你的数据集路径)
df = pd.read_csv("your_dataset.csv")

# 提取特征与目标变量
X = df[["Age", "Duration", "Amount"]]  # 可添加其他自变量列名
y = df["Class"]

# 将字符串标签转为数值(Good→1,Bad→0,反之亦然)
label_encoder = LabelEncoder()
y_encoded = label_encoder.fit_transform(y)

3. 构建并训练Bagging模型

直接使用全量数据集训练,无需划分训练/测试集。Bagging内部会通过bootstrap采样为每个基学习器生成独立训练子集:

# 定义基学习器(以决策树为例,可替换为其他分类器)
base_model = DecisionTreeClassifier(max_depth=3, random_state=42)

# 初始化Bagging分类器
bagging_model = BaggingClassifier(
    base_estimator=base_model,
    n_estimators=100,  # 基学习器的数量,可根据需求调整
    random_state=42
)

# 用全量数据训练模型
bagging_model.fit(X, y_encoded)

4. 模型预测(可选)

如果需要对全量数据生成预测结果:

# 生成预测
predictions_encoded = bagging_model.predict(X)

# 将数值预测转回原标签格式
predictions = label_encoder.inverse_transform(predictions_encoded)

# 对比真实标签与预测结果
result_df = pd.DataFrame({
    "True Class": y,
    "Predicted Class": predictions
})
print(result_df.head())

关键说明

Bagging算法的核心是通过bootstrap随机采样为每个基学习器创建不同的训练子集,因此即使你输入全量数据集,模型内部也会自动完成采样过程。如果不需要评估模型的泛化能力(比如仅需基于现有全量数据生成预测),直接使用全量数据训练即可,无需拆分训练/测试集。

内容的提问来源于stack exchange,提问作者Cillian Boland

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 07:32:42