読者です 読者をやめる 読者になる 読者になる

ハードウェアエンジニアの備忘録

電子工学(半導体物性)→応用光学・半導体プロセス→アナログ回路→C/C++→C#/.NETと低レイヤーから順調に(?)キャリアを登ってきているハードウェアエンジニアの備忘録。ブログ開始時点でiOSやサーバーサイドはほぼ素人です。IoTがマイブーム。

R勉強会@ORACLEに行ってきた

f:id:tosh419:20160703220915j:plain ORACLEオフィスに入ってみたかったのと、家の近所ということもあり、(もちろんRや機械学習に興味があるのもあり)R言語勉強会に行ってきた。本記事はその備忘録。 oracleclouddevelopers.doorkeeper.jp

講演資料

www.slideshare.net

1.Rのインストール

Rはcranさえみておけばどうにでもなる。cranに全ての情報が集まっている。 cranからダウンロード・インストール。Windows/Macともにこれは特に躓くことはないと思う。 ちなみにOracle社内ではWindows/Macのユーザ比率は半々行かないくらいらしい。

2.Rとは?

Rとはプログラミング言語であり、環境である。関数型言語オブジェクト指向言語GNUライセンスで無償で再配布可能。Rの強みは大量のライブラリ。金融業界でライブラリが充実。ブラック・ショールズ式が一行で書けたりする。保険業界、金融業界向けライブラリなど充実。 Java/C/C++/Python/C#につぐ順位。 OracleのDistributionもある。intel mklも使える!

3.Rの基本(変数と処理とデータ構造)

この辺りからハンズオン。 起動は普通にSpotlight検索でRと打てば起動できる。 =はパッケージの引数とかに使うので通常の代入は<-を使う。 使い方なので、slideshareを見ながら進めれば良い。 piは予約語。 ベクトルとして扱ってるが、要は配列。この辺は楽勝。なお、c(1:10)などとするのが正規の方法だが、単に1:10でも良い。 ベクトルは変数の型が1種類だったが、複数の型が使われている場合、データフレームを使う。データフレームを抽出する記法がいくつかあるけど、Rを知らない人には可読性ない感じ。なお、コマンドの途中で改行すると+と表示される。

> df <- data.frame(ID = c(1:3), Name =c("John","Bob","Mike"))

4.Rにcsvファイルを読み込む

ここからデータを取ってくる。UCI Machine Learning Repository というのはML系を使うのに便利。IoT系やりたいんだけど、、→検索するとセンサデータ出てくる。さらにそのデータを使ったMLの世界はまず論文を検索してやってみる世界。

Rに戻って、getwd()でRのカレントディレクトリを取得し、そこにファイルを置く。そして、

> df_default <- read.table("creditdefault.csv",skip = 1,header = T,sep = ",")
> summary(df_default)

summary()関数で列データ等の集計を一瞬でできる。

5.Rでグラフ描写

グラフの描画はggplotがデファクトで、皆こっちを使ってるらしい。 各セッションごとに、各ライブラリを読み込まないといけない。 ggplotの描画はレイヤごとに行うイメージ。

> library(ggplot2)
> base1 <- ggplot(df_default,aes(x = EDUCATION, y = MARRIAGE))
> base1
> points1 <- base1 + geom_bin2d()
> points1
  • アプリケーションの中に組み込みたい場合→Pythonが向いている
  • 分析が主→Rが向いている

6.Rで機械学習を使って予測モデル作成

indexes <- sample(1:nrow(df_default),size=0.4*nrow(df_default))

上記コマンドはテスト用の30000行のデータのうち4割、学習用に6割を割り当てる。このような書き方は定番。 決定木用のライブラリはRがデフォルトで持っている。 ランダムフォレストでほぼDeepLearning並の精度が出ることもある。レコメンドエンジンなどもこれで動いていたりする。ランダムフォレストは決定木をデフォルトで500本作る。

7.Oracle R Enterpriseデモンストレーション

OracleデータベースにあるデータをそのままRで処理できる。時間が足りなくて、デモはスキップw。

まとめ

  • 素晴らしいハンズオンであった。2時間と短時間ながら、予定した項目を網羅。置いてきぼりの人は殆どいなかったのではないか。
  • WEB系の勉強会とは異なる参加者属性。金融系や保険系のプログラミング学習者が多くいる。
  • ML系のデータセットの情報聞けたのは良かった。

おまけ

f:id:tosh419:20160703220944j:plain - ドリンクが無料だった。大手町のMSの研修センターといい外資系は気前がよいw