我是在第二天的第二天重新服用Python,这是我的第一百万次!我正在用Python编写一个关于ML的教程,使用以下代码:
import sklearn.tree
import pandas as pd
from sklearn.tree import DecisionTreeClassifier
from sklearn.tree import tree
music_data = pd.read_csv('music.csv')
x = music_data.drop(columns=['genre'])
y = music_data['genre']
model = DecisionTreeClassifier()
model.fit(x,y)
tree.export_graphviz(model, out_file='music-recommender.dot',
feature_names=['age','gender'],
class_names= sorted(y.unique()),
label='all',
rounded=True,
filled=True)我一直收到以下错误:
ImportError Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_13088/3820271611.py in <module>
2 import pandas as pd
3 from sklearn.tree import DecisionTreeClassifier
----> 4 from sklearn.tree import tree
5
6 music_data = pd.read_csv('music.csv')
ImportError: cannot import name 'tree' from 'sklearn.tree' (C:\Anaconda\lib\site-packages\sklearn\tree\__init__.py)我试图在网上找到一个解决方案,但我不认为它是Python/Anaconda的版本,因为我实际上已经安装了这两个版本。我也不认为这是sklearn.tree,因为我能够导入DecisionClassifer。
发布于 2022-06-20 19:01:18
正如这个答案所指出的,您正在查看一些较旧的代码;这始终是编程的一个风险。但是关于你的代码还有一件事你需要知道。
首先,scikit-learn包含几个模块,您需要的几乎所有东西都在其中一个模块中。根据我的经验,大多数人都会导入这样的东西:
from sklearn.tree import DecisionTreeRegressor # A regressor class.
from sklearn.tree import plot_tree # A helpful function.
from sklearn.metrics import mean_squared_error # An evaluation function.看起来,本教程需要类似于plot_tree()的内容。这个新的ish函数比以前的Graphviz可视化更容易使用.因此,除非您出于某些原因真正需要DOT文件,否则您应该能够这样做:
from sklearn.tree import plot_tree
sklearn.tree.plot_tree(model)底线:可能会有更多的破碎的东西在材料中。因此,如果我是你,我要么创造一个新的环境与一个版本的sklearn匹配,无论你使用的材料.或者抛弃那些材料去寻找新的东西。
发布于 2022-06-20 17:37:06
from sklearn.tree import tree看上去不对。你是说from sklearn import tree吗?
发布于 2022-06-21 18:09:20
根据官方的Scikit学习决策树文档,你真的不需要太多的进口。
这可以简单地按以下方式进行:
from sklearn import tree
import pandas as pd
music_data = pd.read_csv('music.csv')
X = music_data.drop(columns=['genre'])
y = music_data['genre']
model = tree.DecisionTreeClassifier()
model.fit(X,y)https://stackoverflow.com/questions/72690963
复制相似问题