sklearn导入返回错误

时间:2018-05-14 02:23:48

标签: python python-3.x scikit-learn

我是机器学习和sklearn包的新手。当我尝试导入sklearn时,我收到一条错误消息,说它无法找到DLL。我通过pip安装了sklearn,卸载了包括python在内的所有内容并重新安装了所有内容,但仍然遇到了同样的问题。这台机器上只安装了一个版本的python。我正在运行python 3.6.1并安装了visual studio 2017社区。所有套餐都是最新的。回溯如下。 (从所有路径中删除了用户名)

正在运行的代码:

import numpy as np
from sklearn import cross_validation, neighbors
import pandas as pd

Traceback (most recent call last):
  File "C:/Users/Public/Documents/Machine learning project/Classification/KNN.py", line 2, in <module>
    from sklearn import cross_validation, neighbors
  File "C:\Users\\AppData\Roaming\Python\Python36\site-packages\sklearn\__init__.py", line 134, in <module>
    from .base import clone
  File "C:\Users\\AppData\Roaming\Python\Python36\site-packages\sklearn\base.py", line 11, in <module>
    from scipy import sparse
  File "C:\Users\\AppData\Roaming\Python\Python36\site-packages\scipy\sparse\__init__.py", line 229, in <module>
    from .csr import *
  File "C:\Users\\AppData\Roaming\Python\Python36\site-packages\scipy\sparse\csr.py", line 15, in <module>
    from ._sparsetools import csr_tocsc, csr_tobsr, csr_count_blocks, get_csr_submatrix, csr_sample_values
ImportError: DLL load failed: %1 is not a valid Win32 application.

3 个答案:

答案 0 :(得分:0)

检查您正在使用的python版本。是64位还是32位?我唯一一次看到这个错误是在包类型和Python版本不匹配的时候。

如果没有任何错误,您可以尝试以下方法:

import imp
imp.find_module("sklearn")

这将告诉您正在加载的内容及其加载路径。

如果那是加载正确的包,我说试试手动安装包二进制而不是通过pip。但是我只是测试它并看到它在我的系统上工作。

答案 1 :(得分:0)

我完全同意使用sklearn.model_selection import cross_validate 中的,但是当您尝试训练数据集时,该过程将失败。我宁愿建议导入以下库,因为您的目的是执行train_test_split功能:

from sklearn.model_selection import train_test_split as tts   
...
...
...
train_feats, test_feats, train_labels, test_labels = tts(features, labels, test_size=0.2)

答案 2 :(得分:-1)

虽然很难根据提供的内容猜测您遇到的问题,但请尝试以下操作:

from sklearn.model_selection import cross_validate
from sklearn.neighbors import KNeighborsClassifier