如何在 Python 中绘制回归树

Posted

技术标签:

【中文标题】如何在 Python 中绘制回归树【英文标题】:How to plot a regression tree in Python 【发布时间】:2019-09-23 12:09:00 【问题描述】:

所以,首先,我对 Python 比较陌生,所以我不确定如何完成我的任务。我正在关注如何使用 Iris 数据集(用于分类)绘制决策树的在线教程。但是,我试图从回归中绘制一棵树。

以下是我使用的数据片段:

这是我使用的代码:

# Import Libraries and Load Data
import pandas as pd 
data = pd.read_csv("/Users/.../Desktop/cars_test.csv") 
import matplotlib.pyplot as plt
import numpy as np
cars = data

# Model
from sklearn.ensemble import RandomForestRegressor
model = RandomForestRegressor(n_estimators=10)

# Train
model.fit(cars.data, cars.target)

# Extract single tree for analysis
estimator = model.estimators_[5]

但是,我遇到了一个不知道如何解决的错误...我遇到的错误是:

AttributeError                            Traceback (most recent call
last) <ipython-input-27-37164305d7fe> in <module>()
     10 
     11 # Train
---> 12 model.fit(cars.data, cars.target)
     13 
     14 # Extract single tree for analysis

~/anaconda3/lib/python3.6/site-packages/pandas/core/generic.py in
__getattr__(self, name)    4370             if self._info_axis._can_hold_identifiers_and_holds_name(name):    4371   
return self[name]
-> 4372             return object.__getattribute__(self, name)    4373     4374     def __setattr__(self, name, value):

AttributeError: 'DataFrame' object has no attribute 'data'

关于我做错了什么有什么建议吗?

【问题讨论】:

【参考方案1】:

您需要调整代码以处理您自己的数据(请注意,您加载的 DataFrame 没有targetdata 的属性)。这意味着从原始数据集中提取输入数据矩阵 (X) 和响应变量 (y)。我在这里做了一些假设,但你可以做出相应的调整。

# Import Libraries and Load Data
import pandas as pd 
data = pd.read_csv("/Users/.../Desktop/cars_test.csv") 
import matplotlib.pyplot as plt
import numpy as np
cars = data

# Model
from sklearn.ensemble import RandomForestRegressor
model = RandomForestRegressor(n_estimators=10)

X = cars.loc[:, cars.columns != 'th_km_per_year'].values
y = cars['th_km_per_year'].values

# Train
model.fit(X, y)

# Extract single tree for analysis
estimator = model.estimators_[5]

【讨论】:

以上是关于如何在 Python 中绘制回归树的主要内容,如果未能解决你的问题,请参考以下文章

如何在 rpart 回归树图中将绘制的数字从科学计数法更改为标准形式?

如何在 Python 中绘制逻辑回归的决策边界?

如何在 Python 中可视化回归树

如何绘制最佳参数对应的随机森林树

python:如何在sklearn中使用逻辑回归系数构建决策边界

如何在sklearn的python代码中使用SwarmPackagePy进行回归?