R Advent Calendar 2012

+はじめに
久々の日記。
今年もR Advent Calendar 2012の季節です。仕事が立て込んでいて、すっかり日付変わるどころか朝になってしまい申し訳ありません。今回は、Japan.R #3でも発表したRevolution R Enterprise のお話をしたいと思います(使い回しとも言うのですが、ちょっと立て込んでいまして。。。)。

Revolution R Enterprise はR をベースにした商用のソフトウェアです。何が、Rと違うのかというと、データをHDDに格納してそれにモデルを適用できるので、巨大サイズのデータを扱えるという点があります。

取りあえず詳細は以下のスライドシェアを見て頂くとして。
http://www.slideshare.net/Hiro_macchan/japan-r3
http://www.slideshare.net/Hiro_macchan/tokyo-r25-hiromacchan
今日は、上記のスライドで触れられなかった点について触れたいと思います。

+rxTextToXdf()でFactorデータを取得した際のラベリングについて
rxTextToXdf()は、引数にテキストデータのパスと、HDD上に保存するXDFファイルパスを指定する事でRevoscaleR 上でデータを取り扱える様にしてくれます。値の型も結構色々使えるので便利で扱いやすいのですが、どうもこの関数、因子が出現した順番でlevelを設定するみたいで、このままGlmとかかけるとリファレンスになるlevelが変な感じになります。Xdfファイルの編集はrxDataStepXdf()関数に引数、transformsをリストで指定して行います。
今回の例では、

transforms = list(DayofMonth = relevel(DayofMonth, "1"), DayOfWeek = relevel(DayOfWeek, "1"))

で編集できます。relevelとか、普通の関数が使えて良かった。。。

+決定木の利用について
Revolution R Enterprise 6.1 から決定木がサポートされました。一回irisで使ってみましょう。そういえば、生まれて初めて決定木を使いますね。私。

Tree.a <- rxDTree(Species ~ Sepal.Length+Sepal.Width+Petal.Length+Petal.Width,  data = iris) 
Tree.a 
||< 
 結果はこんな感じです。

>|r|
File:   
Number of valid observations:  150 
Number of missing observations:  0 

Tree representation: 
n= 150 

node), split, n, loss, yval, (yprob)
      * denotes terminal node

1) root 150 100 setosa (0.33333333 0.33333333 0.33333333)  
  2) Petal.Length< 2.45 50   0 setosa (1.00000000 0.00000000 0.00000000) *
  3) Petal.Length>=2.45 100  50 versicolor (0.00000000 0.50000000 0.50000000)  
    6) Petal.Width< 1.75 54   5 versicolor (0.00000000 0.90740741 0.09259259) *
    7) Petal.Width>=1.75 46   1 virginica (0.00000000 0.02173913 0.97826087) *

うん、何となくうまく切れているんでしょうか?データサイズを変えたい場合、dataの引数をいじれば大丈夫です。便利ですね。

ちなみに、airlineデータでやってみると。。。

rxDTree(Cancelled ~ Month + DayOfWeek + Origin +AirTime, data = "air2008.xdf")

1) root 7009728 137434 0 (0.98039382 0.01960618) *

あらら。これは、キャンセルするかどうかをがっつり決めている因子が見つからなかったという認識で良かったんだろうか。。。ここら辺の、判別器による特性とかは抑えないと行かんなぁ。。。

+HPC Serverを用いた分散処理について
Revolution R Enterprise 6.1 では、Windows HPC Svr を利用した分散処理をサポートしている。ちょっと、手一杯なのでこれに関してはまた後日(年末くらいに)。

+最後に
今年一年、色々ありましたが少しずつ成長できた一年でした。それもこれも、色んな出会いを通じて刺激を受けて来れたおかげです。統計や、機械学習関係の出会いを授けてくれたR に感謝して、、、
皆様、よいクリスマスを。。