当前位置: 首页 > news >正文

Day32

 

import numpy as np

import pandas as pd

from sklearn.ensemble import RandomForestClassifier

from sklearn.datasets import load_iris

from pdpbox import pdp

import matplotlib.pyplot as plt

 

# 1. 加载数据并训练模型

iris = load_iris()

X = pd.DataFrame(iris.data, columns=iris.feature_names)

y = iris.target

 

model = RandomForestClassifier(n_estimators=100, random_state=42)

model.fit(X, y)

 

# 2. 创建交互效应数据

interact_out = pdp.pdp_interact(

    model=model,

    dataset=X,

    model_features=iris.feature_names,

    features=['petal length (cm)', 'petal width (cm)']

)

 

# 3. 绘制四种类型的交互效应图

plt.figure(figsize=(15, 12))

 

# 3.1 等高线图

plt.subplot(2, 2, 1)

fig, axes = pdp.pdp_interact_plot(

    pdp_interact_out=interact_out,

    feature_names=['花瓣长度', '花瓣宽度'],

    plot_type='contour',

    x_quantile=True,

    plot_pdp=True,

    contour_kw={'cmap': 'Blues'},

    pdp_line_kw={'color': 'red', 'linewidth': 2}

)

plt.title('等高线图', fontproperties='SimHei', fontsize=12)

 

# 3.2 网格图

plt.subplot(2, 2, 2)

fig, axes = pdp.pdp_interact_plot(

    pdp_interact_out=interact_out,

    feature_names=['花瓣长度', '花瓣宽度'],

    plot_type='grid',

    x_quantile=True,

    plot_pdp=True,

    cell_type='avg',

    plot_params={'font_family': 'SimHei'}

)

plt.title('网格图', fontproperties='SimHei', fontsize=12)

 

# 3.3 3D图

plt.subplot(2, 2, 3, projection='3d')

fig, axes = pdp.pdp_interact_plot(

    pdp_interact_out=interact_out,

    feature_names=['花瓣长度', '花瓣宽度'],

    plot_type='3d',

    x_quantile=True

)

plt.title('3D图', fontproperties='SimHei', fontsize=12)

 

# 3.4 分类问题交互图 (类别1)

interact_class = pdp.pdp_interact(

    model=model,

    dataset=X,

    model_features=iris.feature_names,

    features=['petal length (cm)', 'petal width (cm)'],

    which_class=1

)

 

plt.subplot(2, 2, 4)

fig, axes = pdp.pdp_interact_plot(

    pdp_interact_out=interact_class,

    feature_names=['花瓣长度', '花瓣宽度'],

    plot_type='contour',

    x_quantile=True,

    plot_pdp=True,

    center=True,

    contour_kw={'cmap': 'RdYlBu'}

)

plt.title('类别1的交互效应', fontproperties='SimHei', fontsize=12)

 

plt.tight_layout()

plt.show()

 

相关文章:

  • verl multi-node train 教程
  • 创新项目实训纪实——总结与反思
  • vue中computed和watch区别
  • RabbitMQ--集群副本
  • 通过 O-RAN 传感进行异常识别和防护
  • 【橘子的AI | 每日一课】Day4!机器学习 (ML) 基础
  • Python 基础语法 (4)【适合0基础】
  • StarRocks Community Monthly Newsletter (May)
  • 线性代数(1)线性方程组的多种解法
  • 如何设计一个既提供绘图Tools又提供example_data的MCP服务器:
  • 计算机组成原理期末题目解析
  • nohz_full 参数对内核软硬锁检测机制的影响分析
  • 大模型笔记6:微调
  • Redis中的zset的底层实现
  • 【Create my OS】5 内核线程
  • 【图片识别改名】如何批量识别大量图片的文字并重命名图片,基于WPF和京东OCR识别接口的实现方案
  • srm管理系统供应商管理在线询价比价管理电子采购(java)
  • redis序列化
  • 嵌入式学习笔记C语言阶段--16函数指针
  • YOLOv3 中的 NMS 详解(基于论文与 Darknet 实现)
  • 互联网舆情监测/seo门户网站优化
  • 建设银行杭州网站首页/seo怎么做新手入门
  • 网站开发时数据库的工作/安卓优化大师手机版下载
  • 自己做的网站怎么在百度上搜到/搜索引擎关键词的工具
  • 提供网站建设报价/移动建站优化
  • 西安网站网页设计/互联网搜索引擎