E:\bigHome\book\tree1.py:158: MatplotlibDeprecationWarning: Support for FigureCanvases without a required_interactive_framework attribute was deprecated in Matplotlib 3.6 and will be removed two minor releases later. plt.figure(figsize=(20, 10)) Traceback (most recent call last): File "E:\bigHome\book\tree1.py", line 159, in <module> plot_tree(clf, filled=True) TypeError: plot_tree() got an unexpected keyword argument 'filled'
时间: 2024-02-23 14:59:30 浏览: 89
这个错误提示是因为你使用的是一个不支持filled参数的plot_tree函数。可以尝试使用其他库或者手动实现带有filled参数的plot_tree函数。
下面是手动实现的带有filled参数的plot_tree函数的代码:
```python
import matplotlib.pyplot as plt
def plot_tree(node, filled=False):
if node.leaf:
color = 'orange' if node.value == 1 else 'blue'
plt.text(node.x, node.y, str(node.value), color=color,
fontdict={'weight': 'bold', 'size': 14})
else:
plt.text(node.x, node.y, str(node.feature_idx), color='black',
fontdict={'weight': 'normal', 'size': 12})
if node.left:
plt.plot([node.x, node.left.x], [node.y, node.left.y], 'k-', linewidth=1.0)
plot_tree(node.left, filled)
if node.right:
plt.plot([node.x, node.right.x], [node.y, node.right.y], 'k-', linewidth=1.0)
plot_tree(node.right, filled)
if filled and node.leaf:
color = 'orange' if node.value == 1 else 'blue'
rect = plt.Rectangle((node.x - 0.5, node.y - 0.25), 1, 0.5, fill=True, color=color, alpha=0.2)
plt.gca().add_patch(rect)
```
这个函数的用法和scikit-learn库中的plot_tree函数类似,只不过增加了一个filled参数。如果该参数为True,则会在叶子节点上绘制一个填充矩形,颜色表示该节点所代表的类别。
阅读全文