簡體   English   中英

導入錯誤:無法從“sklearn.tree”導入名稱“tree”

[英]Import Error: cannot import name 'tree' from 'sklearn.tree'

我已經是第二次重修 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

正如這個答案所示,您正在查看一些較舊的代碼; 這始終是編程的風險。 但是,您還需要了解有關代碼的另一件事。

首先, 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()的東西。 這個新功能比舊的 Graphviz 可視化更容易使用。 因此,除非您出於某些原因確實需要 DOT 文件,否則您應該可以這樣做:

from sklearn.tree import plot_tree

sklearn.tree.plot_tree(model)

底線:該材料中可能會有更多破碎的東西。 因此,如果我是您,我要么使用與您正在使用的任何材料相匹配的sklearn版本創建一個新環境……要么放棄該材料並尋找更新的東西。

from sklearn.tree import tree看起來不對。 你的意思是from sklearn import tree

根據官方Scikit Learn 決策樹文檔,您真的不需要太多的導入。

它可以簡單地完成如下:

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM