You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

解决sklearn.tree导入tree报cannot import name 'tree'错误

报错原因

该报错与Python、Anaconda安装状态、版本兼容性无关,核心是导入写法错误:

  • 你参考的教程使用了过时的错误导入逻辑,这类写法一般是scikit-learn 0.x极早期版本的内部结构,早已在正式版本迭代中移除,不属于当前公开支持的API用法。当前正式发布的scikit-learn版本中,sklearn.tree模块下不存在名为tree的可导入对象,因此执行from sklearn.tree import tree时会触发导入错误。
  • 你可以正常导入DecisionTreeClassifier,已经证明sklearn.tree模块本身安装正常、可正常调用,不存在模块损坏问题。
  • 代码中用到的export_graphviz方法本身是直接挂载在sklearn.tree模块下的公开方法,不需要导入不存在的tree子对象即可调用。
修复方法
  • 删除错误导入行:from sklearn.tree import tree
  • 调整export_graphviz的调用方式,直接从sklearn.tree导入该方法即可,修正后的完整可运行代码如下:
import pandas as pd
from sklearn.tree import DecisionTreeClassifier, export_graphviz

music_data = pd.read_csv('music.csv')
x = music_data.drop(columns=['genre'])
y = music_data['genre']

model = DecisionTreeClassifier()
model.fit(x,y)

export_graphviz(model, out_file='music-recommender.dot',
                feature_names=['age','gender'],
                class_names= sorted(y.unique()),
                label='all',
                rounded=True,
                filled=True)

运行修改后的代码即可正常生成决策树可视化的.dot文件,不会再触发导入错误。

内容的提问来源于stack exchange,提问作者rgd90

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 13:06:32