ディシジョンツリーを使用していて、このエラーが発生しました。逆伝播を使用したときにも同じ状況が発生しました。どうすれば解決できますか? (英語が下手でごめんなさい)
import pandas as pd
import numpy as np
a = np.test()
f = open('E:/lgdata.csv')
data = pd.read_csv(f,index_col = 'id')
x = data.iloc[:,10:12].as_matrix().astype(int)
y = data.iloc[:,9].as_matrix().astype(int)
from sklearn.tree import DecisionTreeClassifier as DTC
dtc = DTC(criterion='entropy')
dtc.fit(x,y)
x=pd.DataFrame(x)
from sklearn.tree import export_graphviz
with open('tree.dot','w') as f1:
f1 = export_graphviz(dtc, feature_names = x.columns, out_file = f1)
トレースバック(最新の呼び出しが最後):
<module>のファイル "<ipython-input-40-4359c06ae1f0>"、1行目
runfile( 'C:/ProgramData/Anaconda3/lib/site-packages/scipy/_lib/_numpy_compat.py'、wdir = 'C:/ ProgramData/Anaconda3/lib/site-packages/scipy/_lib' )
ファイル「C:\ ProgramData\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py」、710行目、ランファイル
execfile(ファイル名、名前空間)
ファイル「C:\ ProgramData\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py」、行101、execfile
exec(コンパイル(f.read()、ファイル名、 'exec')、名前空間)
<モジュール>のファイル「C:/ProgramData/Anaconda3/lib/site-packages/scipy/_lib/_numpy_compat.py」、9行目
numpy.testing.nosetesterからimport import_noseModuleNotFoundError:「numpy.testing.nosetester」という名前のモジュールはありません
これは、numpy
とscipy
のバージョンに互換性がないために発生します。 numpy
の最新バージョンはnumpy.testing.nosetester
。
pip install numpy==1.18 # > 1.18
pip install scipy<=0.19.0 # <= 0.19
そして
from sklearn.tree import DecisionTreeClassifier as DTC
エラーをトリガーします。
scipy
を新しいバージョンにアップグレードします。
pip install numpy==1.18
pip install scipy==1.1.0
pip install scikit-learn==0.21.3
しかし、これに限定されません。上記のライブラリを最新の安定版にアップグレードすることにより、このエラーを取り除くことができるはずです。
Lexnlpパッケージを使用しているときに同じエラーが発生しました。インストールして修正しました。
scipy==1.4.1
pandas==0.23.4
numpy==1.18.1
lexnlp==0.2.7.1
(プロジェクトで明示的に使用していて、何をしているのかわかっている場合にのみ、lexnlpをインストールしてください)
pipまたはpip3を使用してnumpyバージョン1.17.0をインストールしてみてください(pip3がすでにインストールされている場合)
pip3 install numpy==1.17.0
私はこれを解決しました:
pipアンインストールnumpy pipインストールnumpy == 1.17.0
そして使用:
from numpy.testing import rundocs