You need to enable JavaScript to run this app. Python中如何绘制AdaBoost各逻辑回归基分类器的独立决策边界
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何绘制AdaBoost各逻辑回归基分类器的独立决策边界

逐基分类器绘制AdaBoost决策边界实现方案

核心实现逻辑

  • 训练完成的AdaBoost分类器,所有内部经加权拟合的基分类器会统一存储在实例的estimators_属性中,该属性为列表结构,长度与设定的n_estimators=4完全匹配,可直接遍历取出完成决策边界绘制。
  • 传入AdaBoost的逻辑回归实例,会被sklearn内部自动克隆副本后执行迭代训练,手动fit的原始逻辑回归模型不会被集成模型复用,这一机制不影响后续提取内部基分类器的操作。

完整可运行代码

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_moons
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import AdaBoostClassifier
from sklearn.inspection import DecisionBoundaryDisplay

# 生成数据集
X, y = make_moons(n_samples=100, noise=0.2, random_state=42)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 初始化逻辑回归基估计器
logisticRegr = LogisticRegression()
logisticRegr.fit(X_train, y_train)

# 构建包含4个基分类器的AdaBoost模型
clf = AdaBoostClassifier(logisticRegr, n_estimators=4, random_state=42)
clf.fit(X_train, y_train)  # 用训练集拟合,避免测试集数据泄露

# 初始化2x2布局的子图画布,适配4个独立决策边界的展示需求
fig, axes = plt.subplots(2, 2, figsize=(10, 8))
axes = axes.ravel()

# 遍历每个基分类器独立绘制决策边界
for idx, base_clf in enumerate(clf.estimators_):
    # 调用官方工具绘制决策面,无需手动生成预测网格
    DecisionBoundaryDisplay.from_estimator(
        base_clf,
        X,
        cmap=plt.cm.coolwarm,
        alpha=0.8,
        ax=axes[idx],
        response_method="predict"
    )
    # 叠加原始样本的散点标记
    axes[idx].scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.coolwarm, edgecolor="black")
    axes[idx].set_title(f"第{idx+1}个AdaBoost基分类器")
    axes[idx].set_xticks([])
    axes[idx].set_yticks([])

plt.tight_layout()
plt.show()

效果说明

  • 代码运行后会输出包含4个独立子图的画布,每个子图单独对应AdaBoost每轮迭代训练得到的逻辑回归基分类器的决策边界,完全匹配需求。
  • 可通过调整figsize、alpha、cmap等参数自定义图片的展示风格。
  • 相比手动生成网格点逐点预测的传统写法,调用DecisionBoundaryDisplay工具的实现方式更简洁,和sklearn版本的兼容性更强。

内容的提问来源于stack exchange,提问作者Burcu İçen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.14 04:06:04