scikit-learn和sklearn(现已弃用)之间的区别

75
在OS X 10.11.6和Python 2.7.10下,需要从sklearn中导入manifold。我已经安装了numpy 1.8 Orc1、scipy .13 Ob1和scikit-learn 0.17.1。我使用pip安装了sklearn(0.0),但是当我尝试从sklearn manifold中导入时,出现了以下错误:
“ValueError: numpy.dtype has the wrong size, try recompiling.”
此外,请问scikit-learn和sklearn有什么区别?同时,由于语法错误,我无法导入scikit-learn。
5个回答

91
关于 sklearn 与 scikit-learn 的区别: 建议使用 pip install scikit-learn 安装 package "scikit-learn",但在代码中使用 import sklearn 导入。 有些令人困惑,因为你也可以使用 pip install sklearn,最终会安装相同的 scikit-learn 包,因为有一个“虚拟”的 pypi package sklearn 将为您安装 scikit-learn。 从 this thread 中得知: scikit-learn 在 sklearn setup.py 的 install_requires 中,所以最终会安装 scikit-learn。 因此: 最后,pip install sklearnpip install scikit-learn --- 除了在 pip list 中显示的烦人的 sklearn (0.0) 外 --- 将安装来自 PyPI 的最新可用版本。

66

您可能需要重新安装numpy。看起来它没有被正确安装。

sklearn是在Python中键入scikit-learn名称的方式(只需安装后者,前者现已弃用)。

另外,请尝试运行scikit-learn中的标准测试并检查输出。您将在那里获得详细的错误信息。


顺便提一下,您是否已安装nosetests? 尝试: nosetests -v sklearn。 您在bash中键入此内容,而不是在Python解释器中输入。


3
谢谢Vinay87。重新安装最新版本的numpy和scipy解决了问题。同时感谢您对sklearn的解释。 - Barry
7
sklearn和sckit-learn是两个不同的Python模块。你能说一下它们之间的区别吗? - Shah Muzaffar
不,它们是相同的。 - stonecharioteer
它们并不完全相同。一个点超出了另一个,这与相同是不同的。 sklearn项目的描述是“使用scikit-learn代替”。这是有原因的。通过使用sklearn,您失去了对版本的任何控制。 - bloub

14

2

'sklearn' PyPI包已经被弃用,请使用'scikit-learn'而不是'sklearn'进行pip命令。

从最新版本开始,sklearn将不再可用于pip安装。因此,最好开始使用scikit-learn。

废弃的原因:

PyPI上的sklearn包存在是为了防止恶意用户使用sklearn包,因为sklearn(导入名称)和scikit-learn(项目名称)有时可以互换使用。 scikit-learn是实际的软件包名称,应与pip一起使用。

请查看link以获取更多信息。


-1

当我在Google Cloud上上传我的项目时,我遇到了同样的问题。错误日志显示:

File "/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py" .......ModuleNotFoundError: No module named 'sklearn'

如上所述的解决方案起作用了。 在我的requirements.txt中将“sklearn”更改为“scikit-learn”。


1
这已经在其他答案中提到过了。 - Eric Aya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接