环境
- ubuntu 12.04, 64 bits
- python 2.7
- sklearn 0.14
准备
sklearn 快速入门的官方文档7。这个文档主要描述机器学习的概念,以及如何加载数据,训练模型,保存模型。
这里提供另外一个更加详细的材料,这份材料基于ipython notebook(可选),可以在浏览器里运行代码,功能强大,演示效果非常好,github下载地址6。
- 将材料下载到本地:
git clone git@github.com:jakevdp/sklearn_pycon2013.git
- 安装 ipython-notebook
sudo easy_install "ipython>=0.13" jinja2 "tornado>=3.1.0" pyzmq
sudo apt-get install ipython-notebook
- 打开材料
cd PATH/TO/sklearn_pycon2013/notebook
ipython notebook --pylab inline
--pylab inline 参数可以使 notebook 在浏览器里面直接画图效果
数据
sklearn 中的数据一般存放为二维数组,形状为 [n_samples, n_feartures]。比如著名的 iris 数据集(鸢尾花)包含了三种类别的花(target),共 150 组数据(samples),每组数据由 4 个特征组成,具体来说就是:萼片的长度、萼片的宽度、花瓣的长度、花瓣的宽度。那么,iris 数据集的 data 就由 150*4 的二维数组组成。
sklearn 提供了很多数据集,一类比较小,直接打包在库中,可以通过 datasets.load_ Tab 来查看,另一类比较大,需要下载,可以通过 datasets.fetch_ Tab 查看,下载的目录可以通过sklearn.datasets.get_data_home()查看。
更详细的信息请参考 notebook 中的 02_sklearn_data.ipynb 文件。
接口
创建一个机器学习的模型很简单:
代码语言:javascript复制from sklearn.linear_model import LinearRegression
model = LinearRegression()print model
所有模型提供的接口有:
- model.fit(): 实际上就是训练,对于监督模型来说是 fit(X, y),对于非监督模型是 fit(X)。
监督模型提供:
- model.predict(X_new): 判别新样本
- model.predict_proba(X_new): 某些模型可以输出概率,比如 LR,上一个输出的就是概率最大的 target
- model.score(): 得分越高,fit 越好
非监督模型提供:
- model.transform(): 从数据中学到新的“基空间”。
- model.fit_transform(): 从数据中学到新的基并将这个数据按照这组“基”进行转换。
下面这个图展示了这些接口在机器学习模型中的位置:
文章来源:http://suanfazu.com/t/scikit-learn-kuai-su-ru-men/117