IPython notebookを使う

業務で扱うデータはそんなに大きくないサイズで、しかも専門に特化した手法など使うことが多いのでRで十分なわけです。
ただkaggleとかコンペの場合Rだと難儀することが多いのでPythonを使います。
で、最近PCを新調したのでついでに環境も新しいのを試そうと思い、Anacondaを導入することにしました。
Anacondaを入れると、numpyだのscipyだのpandasだのmatplotlibだのIPython notebookだのついてくるのでだいたいこれで事足ります。
下記からインストーラをダウンロードしてYes!Yes!Yes!な感じで無事インストールできました。便利な世の中です。
https://store.continuum.io/cshop/anaconda/
一応rpy2も入れておく(下記参照)。
https://bitbucket.org/lgautier/rpy2/src/cfc769eacc586a46f3b147fb7e1fcde2b4ac57ab/INSTALL_WINDOWS?at=default
これでIPython notebookを使う準備ができました。

使用例

外部からデータをを読み込んでGBMを実行するまでを試してみました。
https://dl.dropboxusercontent.com/u/956851/gbm_sample.html
今回用いたデータはこちら。
Skin Segmentation Data Set
http://archive.ics.uci.edu/ml/datasets/Skin+Segmentation
40%をテストデータとした上でRGB値からskin typeを予測しています。
コードは以下の通り。

import pandas as pd
from sklearn.ensemble import GradientBoostingClassifier
from sklearn import cross_validation
d = pd.read_table('http://archive.ics.uci.edu/ml/machine-learning-databases/00229/Skin_NonSkin.txt', header=None)
d.columns = ['r','g','b','skintype']
print(d)
X_train, X_test, y_train, y_test = cross_validation.train_test_split(d[['r','g','b']], d['skintype'],test_size=0.4, random_state=0)
clf = GradientBoostingClassifier(n_estimators=100, learning_rate=1.0, max_depth=1, random_state=0).fit(X_train, y_train)
clf.score(X_test, y_test)

しかしデータの中身を見ようとしてprintとすると警告が出ますね。deprecatedとかなんとか。

ipython notebookのhtmlへの変換

こちらを参照のこと。
http://ipython.org/ipython-doc/rel-1.0.0/interactive/nbconvert.html#converting-notebooks-to-other-formats
File→Download as→IPythonでダウンロードしたファイルに下記コマンドを適用してデフォルトのフォーマット(html)に変換できます。

ipython nbconvert filename.ipynb

しかしIPythonしばらく見ない間にずいぶん便利になったなあ。