ImportError:无法从 sklearn.utils.validation 导入名称 check_array

Posted

技术标签:

【中文标题】ImportError:无法从 sklearn.utils.validation 导入名称 check_array【英文标题】:ImportError: cannot import name check_array from sklearn.utils.validation 【发布时间】:2015-01-26 04:34:21 【问题描述】:

当我从模块 sklearn.utils.validation 导入函数 check_array 时,它得到一个导入错误 (ImportError: cannot import name check_array)。 选项卡完成得到check_arrays,但我想知道validation.py(source code on Github)中只存在一个名为check_array的函数。 此外,scikit-learn/sklearn/cluster/spectral.py 中实现的谱聚类算法也使用了from ..utils.validation import check_array,而不是check_arrays。 我对此很困惑,我的 scikit-learn 版本是'0.15.0b1'。希望有人给我一个线索。

示例代码
import numpy as np
from sklearn.utils.validation import check_array
def my_fit_affinity(X, affinity_type, n_neighbors, **kernel_params):
    """ Create an affinity matrix for X using the selected affinity type
    """    
    X = check_array(X, accept_sparse = ['csr', 'csc', 'coo']) 
    ....
    return affinity_matrix_

【问题讨论】:

请用最短的代码示例重现您的错误。 @AndréLaszlo 我添加了示例代码 最近发生了变化。所以应该是版本问题。确保您使用的是最新版本,并且任何地方都没有之前版本的残留文件。 @eickenberg 谢谢,我已经解决了这个问题~ @amaatouq 使用 check_arrays 代替 check_array 可能会起作用 【参考方案1】:

如果您使用 jupyter notebook,请尝试重新启动内核。

【讨论】:

【参考方案2】:

对于那些搜索,正如@eickenberg 在 cmets 中提到的那样,这是在版本之间发生了变化的东西。使用最新版本的scikit-learn 解决了这个问题。

【讨论】:

【参考方案3】:

点击内核>重新启动并运行所有

【讨论】:

重启内核在this earlier answer中已经提到过。

以上是关于ImportError:无法从 sklearn.utils.validation 导入名称 check_array的主要内容,如果未能解决你的问题,请参考以下文章

python aiorpc:“ImportError:无法从'aiorpc.server'导入名称'RPCServer'”

ImportError:无法从“变压器”导入名称“AutoModelWithLMHead”

ImportError:无法从“matplotlib.mlab”导入名称“PCA”

ImportError:无法从“sklearn.externals”导入名称“joblib”

ImportError:无法从“sklearn.externals”导入名称“joblib”

ImportError:无法从“google.cloud”(未知位置)导入名称“bigquery”