You need to enable JavaScript to run this app. 鸢尾花数据集决策树:如何提取、可视化versicolor类决策规则?
优惠活动
大模型
产品
解决方案
定价
更多

鸢尾花数据集决策树:如何提取、可视化versicolor类决策规则?

提取决策树指定类别专属规则及可视化实现方案

规则提取实现

现有代码已经完成了决策树全量叶节点路径的规则生成,只需要增加一步类别匹配过滤,就能拿到目标类别的专属规则:

  • 设定需要提取的目标类别名(本示例为versicolor)
  • 遍历全量规则字符串,匹配规则中输出类别字段与目标类别名一致的条目,即为该类别的专属决策规则

对应补充代码如下:

# 定义待提取规则的目标类别
target_class = "versicolor"

# 筛选匹配的目标规则
target_rules = [rule for rule in rules if f"class: {target_class}" in rule]

# 输出筛选结果
print(f"=== {target_class}类专属决策规则 ===")
for rule in target_rules:
    print(rule)

基于示例的训练结果,筛选得到的versicolor类专属规则为:

if (petal length (cm) > 2.45) and (petal width (cm) <= 1.75) and (petal length (cm) <= 4.95) then class: versicolor (proba: 97.92%) | based on 48 samples

规则可视化实现

可通过两种直观方式展示目标类别的规则,无需额外依赖外部工具:

1. 决策树结构高亮可视化

直接调用scikit-learn内置的决策树绘制接口,在完整树结构上用高亮边框标记所有判定为versicolor的叶节点路径:

plt.figure(figsize=(12, 8))
# 绘制基础决策树
tree.plot_tree(
    clf,
    feature_names=iris.feature_names,
    class_names=iris.target_names,
    filled=True,
    rounded=True
)
# 高亮versicolor类对应的叶节点
ax = plt.gca()
for patch in ax.patches:
    # 匹配iris数据集versicolor类的默认色块特征,设置红色加粗边框
    if patch.get_facecolor()[1] == 0.7:
        patch.set_edgecolor('red')
        patch.set_linewidth(3)
plt.title(f"决策树结构(红色边框为{target_class}类的判定路径)")
plt.show()

2. 规则文本清单可视化

将筛选得到的结构化规则渲染为清晰的文本展示页,直接呈现每条规则的判定条件、分类结果、置信度和覆盖样本量:

plt.figure(figsize=(10, 6))
plt.axis('off')
# 拼接规则文本
display_text = f"目标类别:{target_class}\n\n"
for idx, rule in enumerate(target_rules, 1):
    display_text += f"规则{idx}:\n{rule}\n\n"
plt.text(0.05, 0.95, display_text, fontsize=12, va='top')
plt.title("versicolor类专属决策规则清单")
plt.show()

效果说明

  • 提取得到的规则为该类别的完整判定逻辑,覆盖所有会被判定为versicolor的样本路径
  • 筛选过程完全基于已生成的规则文本匹配,不需要改动原有决策树遍历的核心逻辑,兼容性好
  • 可视化输出可直接嵌入分析报告或演示材料,不需要额外处理

内容的提问来源于stack exchange,提问作者James P.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.27 18:54:03