我正在尝试导入以下内容:
from sklearn.model_selection import train_test_split
并出现以下错误,这是堆栈跟踪:
ImportError Traceback (most recent call last)
<ipython-input-1-bdd2a2f20673> in <module>
2 import pandas as pd
3 from sklearn.model_selection import train_test_split
----> 4 from sklearn.tree import DecisionTreeClassifier
5 from sklearn.metrics import accuracy_score
6 from sklearn import tree
~/.local/lib/python3.6/site-packages/sklearn/tree/__init__.py in <module>
4 """
5
----> 6 from ._classes import BaseDecisionTree
7 from ._classes import DecisionTreeClassifier
8 from ._classes import DecisionTreeRegressor
~/.local/lib/python3.6/site-packages/sklearn/tree/_classes.py in <module>
38 from ..utils.validation import check_is_fitted
39
---> 40 from ._criterion import Criterion
41 from ._splitter import Splitter
42 from ._tree import DepthFirstTreeBuilder
~/.local/lib/python3.6/site-packages/sklearn/tree/_splitter.pxd in init sklearn.tree._criterion()
~/.local/lib/python3.6/site-packages/sklearn/tree/_tree.pxd in init sklearn.tree._splitter()
~/.local/lib/python3.6/site-packages/sklearn/neighbors/_quad_tree.pxd in init sklearn.tree._tree()
~/.local/lib/python3.6/site-packages/sklearn/neighbors/__init__.py in <module>
15 from ._kde import KernelDensity
16 from ._lof import LocalOutlierFactor
---> 17 from ._nca import NeighborhoodComponentsAnalysis
18 from ._base import VALID_METRICS, VALID_METRICS_SPARSE
19
~/.local/lib/python3.6/site-packages/sklearn/neighbors/_nca.py in <module>
20 from ..base import BaseEstimator, TransformerMixin
21 from ..preprocessing import LabelEncoder
---> 22 from ..decomposition import PCA
23 from ..utils.multiclass import check_classification_targets
24 from ..utils.random import check_random_state
~/.local/lib/python3.6/site-packages/sklearn/decomposition/__init__.py in <module>
17 from ._factor_analysis import FactorAnalysis
18 from ..utils.extmath import randomized_svd
---> 19 from ._online_lda import LatentDirichletAllocation
20
21 __all__ = ['DictionaryLearning',
ImportError: cannot import name 'LatentDirichletAllocation'
实际上我正在尝试导入:
from sklearn.cross_validation import train_test_split
哪个给了我以下错误:
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-2-9ebede864c4d> in <module>
1 import numpy as np
2 import pandas as pd
----> 3 from sklearn.cross_validation import train_test_split
4 from sklearn.tree import DecisionTreeClassifier
5 from sklearn.metrics import accuracy_score
ModuleNotFoundError: No module named 'sklearn.cross_validation'
因此,正如this帖子中回答的那样,我使用sklearn.model_selection
而不是sklearn.cross_validation
。但这仍然是一个错误。
我正在使用python 3.6.8。
答案 0 :(得分:2)
此版本在0.22版本中已损坏
使用稳定版本:
对于Python 2
pip uninstall scikit-learn
pip install -U scikit-learn==0.20.4
对于Python 3
pip3 uninstall scikit-learn
pip3 install -U scikit-learn==0.21.3
答案 1 :(得分:0)
这可能是由于旧的pip
版本造成的。您可以参考https://stackoverflow.com/a/59328446/6513708
但长话短说,您需要删除更新期间pip
允许的以下文件:
~/.local/lib/python3.6/site-packages/sklearn/decomposition/_online_lda.cpython-36m-x86_64-linux-gnu.so
~/.local/lib/python3.6/site-packages/sklearn/feature_extraction/_hashing.cpython-36m-x86_64-linux-gnu.so