Overview

因为最近需要用到一些机器学习算法,Pythonscikit-learn提供很多机器学习算法实现,可以很方便地用来做实验。今天在自己的电脑上安装了scikit-learn,并在此记录了安装的步骤。

安装pip

由于scikit-learn官方给的步骤是使用pip安装,所以要先安装pip。我是用了pip官方提供的安装页面 但是没有成功。因此想使用homebrew安装pip。使用以下命令安装:

    sudo brew install pip

提示如下:

Homebrew provides pip via: `brew install python`. However you will thenhave two Pythons installed on your Mac, so alternatively you can:sudo easy_install pip

因为我之前已经装过了Pythoneasy_install,因此可以直接使用easy_install安装,命令如下:

    sudo easy_install pip

这样就顺利地装好了pip

安装scikit-learn

需要安装以下包:numpy scipy scikit-learn,其中前两个是scikit-learn的依赖库,选择性安装nose,一个Python下面的测试库,可以用来测试scikit-learn。命令如下:

sudo pip install -U numpy scipy scikit-learn

安装成功,并显示安装的地点:

numpy in /Library/Python/2.7/site-packages
scipy in /Library/Python/2.7/site-packages
scikit-learn in /Library/Python/2.7/site-packages

这时候运行程序,导入sklearn,很可能出现

No module named sklearn

这个错误主要是由于Python程序找不到安装好的scikit-learn,原因是可能你的电脑里装了好几个Python,但是scikit-learn没有装到你现在用的那一个里面。

设置正确的Python

首先使用如下命令查看:

port select --list python

在我的电脑上结果如下:

Available versions for python:
none
python25-apple
python26-apple
python27 (active)
python27-apple

现在起作用的是python27,但是要注意的是,scikit-learn安装在/Library/Python/2.7/site-packages,这个目录并不是python27的目录,而是python27-apple的目录。
解决方案:可以将scikit-learn复制到python27目录相应的位置,或者将默认的Python编译器改为python27-apple
命令如下:

sudo port select --set python python27-apple

结果如下:

Selecting 'python27-apple' for 'python' succeeded. 'python27-apple' is now active.

测试scikit-learn

好啦,总算成功,使用nose测一下吧。

 python -c "import nose; nose.main()" -v sklearn

或者直接在Python外使用

nosetests -v sklearn

也是可以的。

测试成功,就可以开始使用scikit-learn啦!