LoginSignup
11
12

More than 5 years have passed since last update.

Bluemixでデータ分析「dashDB」× 統計言語「R」 Part2:ブラウザから軽く実践編

Last updated at Posted at 2016-06-11

Part1(↓のURL)のお遊び編に続いて、Part2です。軽く触ってみました。
http://qiita.com/azzeten/items/ba37da865deb120a296c

Part2では、人間の年齢、婚姻、収入等等のデータを使って決定木分析をしてみました。
adult.png

かんたんな流れ

  1. dashDBにログインして、ブラウザから使えるR Studioに入る
  2. Rのスクリプトを書く(スクリプトの内容としては「専用ライブラリ読み込む→dashDBに接続→処理をつらつらコーディング」。以上!)
  3. スクリプトを走らせる!

それでは、やってみましょー

ブラウザからRの環境にログイン

左ペインの「Analytics」から「R Scripts」をクリックします。で、R Studioをクリックします。
スクリーンショット 2016-06-08 11.26.04.png

ログイン画面が出てきますので、dashDBにログインするのに必要なIDとPWを入力します。
スクリーンショット 2016-06-08 11.27.04.png

そうすると、それっぽいかっこよい画面が出てきます。これがR Studioの環境です。

Rのスクリプトを書く

(1)専用ライブラリ読み込む→dashDBに接続

dashDBのこのR機能(正式にはIn-DB Analytics)を利用すると、
DBのデータをクライアント側に持ってくることなく、DBの中でRを使用した分析ができるというが嬉しいポイントです。なので、それを行うためのライブラリ「ibmdbR」を読み込む必要があります。

そして次にDBに接続します。本来はDSNを自分で設定する必要があるのですが、WEBブラウザからやるとそれが必要ないみたい。

dashDB用のライブラリを読みこみ、DBに接続する
#ライブラリを読み込む
library(ibmdbR)

#DBに接続する
con <- idaConnect('BLUDB')
idaInit(con)

(2)処理をつらつらコーディング
①ADULTテーブルの内容をデータフレームという箱に入れます。

データフレームに表の内容を入れる
#テーブルをデータフレームに入れる
adult_df <- ida.data.frame('adult')

#データフレームの中身を確認する
adult_df

で、内容を確認するとこんな出力なのです。
SELECT "ID","AGE","WORKCLASS","FNLWGT","EDUCATION","EDUCATION_NUM","MARITAL_STATUS","OCCUPATION","RELATIONSHIP","RACE","SEX","CAPITAL_GAIN","CAPITAL_LOSS","HOURS_PER_WEEK","INCOME" FROM adult

なるほど。データそのものが入っているのではなく、SQLが定義されているようです。
これだと、データをクライアント側に持ってくるのではなくてSQLを投げる、ということになるので、確かに不要データをいちいち持ってくる必要はなさそうです。

②モデルを適用してみます。
先ほどのSQLが格納されたデータフレーム「adult_df」をdashDBの中に実装されているRの決定木モデル「idaTree」に適用します。これで、dashDBの中でごりごりと処理を進めてくれるようです。

決定木モデルにデータを入れてプロットする
#決定木モデルにデータを入れる
tr <- idaTree(INCOME~WORKCLASS+EDUCATION+EDUCATION_NUM+RACE+CAPITAL_GAIN+AGE,data=adult_df,minsplit=50,maxdepth=10,id='ID')

#プロット(絵を描いてみる&コンソールに文字で結果を出力する)
plot(tr)
print(tr)

#DBとの接続を閉じる
idaClose(con)

結果はこちら

じゃーん
スクリーンショット 2016-06-09 21.48.26.png

参考文献

11
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
12