如何在 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 没有target
或data
的属性)。这意味着从原始数据集中提取输入数据矩阵 (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 回归树图中将绘制的数字从科学计数法更改为标准形式?