scikit-learn-in-sage

3762 days ago by takepwave

Hiroshi TAKEMOTO (take@pwv.co.jp)

scikit-learn in Sage

脇山さんの投稿 でscikit-learnの存在をしりました。Sageと同じPythonベースと言うこともあり、使ってみたいと思っており、正月休みの最後に試して見ることにしました。

Sageへのscikit-learnのインストール

Sageにscikit-learnモジュールをインストールするもっとも簡単な方法は、Sageのシェルモードからeasy_installを使ってインストールする方法です

以下の様にsageをシェルモードで起動してからeasy_install -U scikit-learnを実行します。最後にexitでシェルモードを抜けることをお忘れなく。

$ sage -sh		
Starting subshell with Sage environment variables set.  Don't forget
to exit when you are done.  Beware:
 * Do not do anything with other copies of Sage on your system.
 * Do not use this for installing Sage packages using "sage -i" or for
   running "make" at Sage's root directory.  These should be done
   outside the Sage shell.

Bypassing shell configuration files...

Note: SAGE_ROOT=/Users/take/local/sage
(sage-sh) $ easy_install -U scikit-learn	
...
無事インストールできたら
(sage-sh) $ exit

いくつかのマシンでインストールしたのですが、easy_installが上手くできなかったものもありました。 その場合には、ソースからインストールします。

(sage-sh) $ wget https://github.com/scikit-learn/scikit-learn/archive/master.zip
(sage-sh) $ unzip master; rm master
(sage-sh) $ cd scikit-learn-master
(sage-sh) $ python setup.py install
無事インストールできたら
(sage-sh) $ exit

サンプルデータを使った例題

ブログ「唯物是真」pythonの機械学習ライブラリscikit-learnの紹介 に出ているトイデータの例をSageで実行してみます。

load_digits関数で無事digitsを取り出すことができ、scikit-learnがsageにインストールできていることを確認しました。

from sklearn.datasets import load_digits digits = load_digits() print digits.data.shape 
       
(1797, 64)
(1797, 64)

pylabのshowが使えない

次にpylabを使ってdigitsに含まれている画像を表示しようとするまったく表示されません。

import pylab as pl pl.gray() pl.matshow(digits.images[0]) pl.show() # 表示しない 
       

Sageでpylabのshowの代わりにsavefigを使うことでSageがその結果を表示してくれるインタフェースになっているみたいです。

# showの代わりにsavefigを使うとsageが自動的に表示してくれる pl.savefig('sample1.png') 
       

Sageのグラフ機能を使って表示してみる

同じ結果は、Sageのmatrix_plotを使っても表示できます。 Sageのグラフ機能は柔軟性に富み、慣れると使いやすいです。(凝った表示の場合には、Rのggplot2が良いですが、...)

# sageのグラフ関数も使える matrix_plot(digits.images[0], figsize=7)