解决dtreeviz的TypeError: ‘module‘ object is not callable问题

解决dtreeviz的TypeError: ‘module‘ object is not callable问题

一般在网上搜索到的答案

导入需要的基本库

from dtreeviz.trees import *

regr = tree.DecisionTreeRegressor(max_depth=2)
boston = load_boston()
regr.fit(boston.data, boston.target)

viz = dtreeviz(regr,
               boston.data,
               boston.target,
               target_name='price',
               feature_names=boston.feature_names)

viz.view()

但是如果你这样调用就会指向dtreeviz,出现
TypeError: ‘module‘ object is not callable
再搜索会发现有的人是这样导入包:

import dtreeviz

这样还是会出现上面的问题。
最后找到Github上的文档,会发现现在的调用方法变了。
链接: https://github.com/parrt/dtreeviz.

正确的调用方法

from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier

import dtreeviz

iris = load_iris()
X = iris.data
y = iris.target

clf = DecisionTreeClassifier(max_depth=4)
clf.fit(X, y)

viz_model = dtreeviz.model(clf,
                           X_train=X, y_train=y,
                           feature_names=iris.feature_names,
                           target_name='iris',
                           class_names=iris.target_names)

v = viz_model.view()     # render as SVG into internal object 
v.show()                 # pop up window
v.save("/tmp/iris.svg")  # optionally save as svg

如果你想在notebook中显示,可以把show()函数换成view()

viz_model.view()       # in notebook, displays inline

生成的图片是这样的
在这里插入图片描述

同时,上面还强调了,如果用Jupyter notebook显示.svg文件会有问题,可以换成Jupyter Lab。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值