SlideShare une entreprise Scribd logo
1  sur  48
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle Cloud Developers Meetup
@東京
「R」超入門 機械学習をはじめよう!
日本オラクル株式会社
クラウド・テクノロジー事業統括
PaaS事業推進室
ソリューション・アーキテクト部
クラウドアーキテクト
小川幹雄
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
自己紹介
• Qiitaにオラクルクラウド機械学習手順書も上げてます!
– アカウント名「ogamiki」
• Oracle Database Cloud Service上で機械学習環境を構築してみた
– http://qiita.com/ogamiki/items/130b40a8ea72fddc432d
• Oracle Database Cloud Service上で機械学習を試してみた
– http://qiita.com/ogamiki/items/68a6fe94389668f1db41
2
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
「R」超入門 機械学習をはじめよう!
1. Rのインストール
2. Rとは?
3. Rの基本(変数と処理とデータ構造)
4. Rにcsvファイルを読み込む
5. Rでグラフ描写
6. Rで機械学習を使って予測モデル作成
7. Oracle R Enterpriseデモンストレーション
3
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
まずは「R」をダウンロード+インストール!
• 統計数理研究所から
–https://cran.ism.ac.jp/
4
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
インストーラーに従って進みましょう(Windows版)
5
言語選択 ライセンスへの同意
インストールパスコンポーネント選択画面カスタマイズ
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
インストーラーに従って進みましょう(Windows版)
6
さぁ起動しましょう 拡張子関連付け
Helpの形式MDI or SDI ショートカット
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
インストーラーに従って進みましょう(Mac版)
7
さぁ起動しましょう 容量の確認
情報確認 ライセンスへの同意
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
で、「R」ってなに?
• 統計解析とビジュアライズのためのプログラミング言語/環境
• GNUライセンスされたソフトのためフリー
• CRANはR本体とRパッケージをダウンロードできるWebサイト
• 2016年6月13日時点で、8579のライブラリ(パッケージ)が存在
• ロゴもCreative Commons Attribution-ShareAlike 4.0 International license
(CC-BY-SA 4.0) で使用可能
8
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
なんで今「R」なのか
• IEEE調査ののThe 2015 Top Ten Programming Languages第6位
• Kaggleで利用されているツールランキング第1位
9
https://www.kaggle.com/wiki/Softwarehttp://spectrum.ieee.org/computing/software/the-2015-top-ten-programming-languages
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
【宣伝です!】Oracle R Distribution
• https://oss.oracle.com/ORD/
• オラクルがサポートするオープンソースRのディストリビューション
• 無料でダウンロード可能
• Intel MKLを動的にロードできる機能拡張がされている
• Oracle Advanced Analytics, Oracle Linux, Oracle Big Data Applianceの
ユーザーに対してはサポートを提供
10
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Rの基本(変数と処理とデータ構造)
11
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Rを開きましょう!
• スタートメニューやMacならアプリケーションからアイコンを選択
12
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Rの基本操作-変数と出力
• 変数にデータを入れるには「<-」か「=」
• 変数の出力は「print(変数名)」か「変数名」
• 数値型はそのまま数字を、文字型はダブルクォーテーションで囲む
13
> x <- 0701
> x
[1] 701
> x = "今日はR入門勉強会"
> print(x)
[1] "今日はR入門勉強会"
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Rの基本操作-数値演算
• 「+」「-」「*」「/」によって加減乗除を表現
• 「^」乗算も表現可能
• 変数に対して演算を行い、その結果を変数に代入も可能
14
> 1 + 2 * 3 / 4
[1] 2.5
> 4^2
[1] 16
> y <- x * 2
> y
[1] 1402
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Rの基本操作-関数
• 様々な処理が関数として提供されている
• 「関数名(引数)」によって関数は実行可能
• 数学基本関数,統計基本関数が標準搭載
15
> sqrt(4)
[1] 2
> log(10)
[1] 2.302585
> cos(pi/3)
[1] 0.5
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Rのデータ構造-ベクトル
• 同じ型のデータをベクトルとして複数扱うことが可能
• 「c(要素1,要素2,要素3・・・)」として定義可能
• 規則性のあるベクトルも作成可能
16
> v <- c(1,2,3)
> v
[1] 1 2 3
> length(v)
[1] 3
> c(1:6)
[1] 1 2 3 4 5 6
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Rのデータ構造-データフレーム
• 数値ベクトルや文字ベクトルなどの異なる型をまとめることが可能
• 外見は行列と同じ 2 次元配列であり、各行・列はラベルを必ず持つ
• 各行・列に対して様々なアクセスや処理が可能
17
> df <- data.frame(ID = c(1:3) ,
+ Name = c("小川","中嶋","竹爪"))
> df
ID Name
1 1 小川
2 2 中嶋
3 3 竹爪
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Rのデータ構造-データフレームの操作
• 行と列からデータフレーム内のデータを抽出可能
18
> df$ID
[1] 1 2 3
> df[1,]
ID Name
1 1 小川
> df[,2]
[1] 小川 中嶋 竹爪
Levels: 小川 竹爪 中嶋
> df[1,-2]
[1] 1
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Rにcsvファイルを読み込む
19
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
今日のcsvをダウンロード!
–https://goo.gl/Bo6KBr
– 元データUCI Machine Learning Repository ”default of credit card clients Data Set”
• http://archive.ics.uci.edu/ml/datasets/default+of+credit+card+clients
20
列番 列名 列の内容 補足
X1 LIMIT_BAL クレジットの上限
X2 SEX 性別 1 = 男性; 2 = 女性
X3 EDUCATION 学歴 1 = 院卒; 2 = 大卒; 3 = 高卒; 4 = その他
X4 MARRIAGE 婚姻ステータス 1 = 既婚; 2 = 独身; 3 = その他
X5 AGE 年齢
X6-X11 PAY_0~6 過去の支払 1 = 1か月遅れ; 2 = 2か月遅れ…
X12-X17 BILL_AMT1~6 過去の請求額
X18-X23 PAY_AMT1~6 過去の支払額
X24 DEFAULT デフォルトフラグ 1 = デファルト; 0 = 正常
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
RにCSVファイルを読み込む
• 先頭の行数を指定数スキップし、列名も登録可能
• タブ区切りtsvファイルなどにも対応可能
• 読み込んだデータはデータフレームとして扱うことができる
21
> getwd()
[1] "C:/Users/miogawa/Documents"
> df_default <- read.table("creditdefault.csv",
+ skip = 1,header = T,sep = ",")
> head(df_default)
> summary(df_default)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Rでグラフ描写
22
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
標準搭載の作図関数plotで描写
• コマンドライン上で実行すると画像ウィンドウが立ち上がる
• グラフを上書きして重ねていくこともできる
• 関数から様々なグラフを表示可能
23
> x <- 1:10
> y <- 1:10
> plot(x, y)
> plot(rnorm(10),type='l')
> par(new=T)
> plot(rnorm(10),type='l')
> barplot(x,y)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Rのグラフをより美しくーggplot2
• Rはライブラリを使うことで他の言語にない力を発揮する
• ggplot2はRにおけるグラフ描写ライブラリのデファクトスタンダード
• まずはinstall.packages("ggplot2", dep=T)
24
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
ggplot2で描写
• インストールしたggplot2ライブラリを読み込む
• データフレームと列を使用するか宣言(aesはaesthetics(美学)が語源)
• データ->点の位置->軸->凡例とレイヤーを重ねていく記法
25
> library(ggplot2)
> base1 <- ggplot(df_default,
+ aes(x = EDUCATION, y = MARRIAGE))
> base1
> points1 <- base1 + geom_bin2d()
> points1
列名 列の内容 補足
EDUCATION 学歴 1 = 院卒; 2 = 大卒; 3 = 高卒…
MARRIAGE 婚姻 1 = 既婚; 2 = 独身; 3 = その他
AGE 年齢
DEFAULT デフォルト 1 = デファルト; 0 = 正常
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
数字型じゃなくてフラグとして扱いたい
• factorでフラグに数字を使っていた列をちゃんとフラグとして認識
• モデル作成のときに重要
• 「1 :アウト 0: 正常 99: 不明」のような場合に数値して扱わないで済む
– 数値して扱うと1と99の差まで影響を受けてしまう
26
> x <- factor(c(1,0,99))
> x
[1] 1 0 99
Levels: 0 1 99
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
ggplot2で描写
• libraryはセッションで一度読みこめばよい
• さきほどaesで指定した列をfactorに変換
• aes(EDUCATION, MARRIAGE)と省略可能
27
> base2 <- ggplot(df_default,
+ aes(factor(EDUCATION),factor(MARRIAGE)))
> base2
> points2 <- base2 + geom_bin2d()
> points2
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
ggplot2で描写
• Data Visualization with ggplot2 Cheat Sheet
– http://www.rstudio.com/wp-content/uploads/2015/12/ggplot2-cheatsheet-2.0.pdf
28
> base3 <- ggplot(df_default,aes(AGE))
> base3
> points3 <- base3 + geom_histogram()
> points3
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
ggplot2で描写
• Data Visualization with ggplot2 Cheat Sheet
– http://www.rstudio.com/wp-content/uploads/2015/12/ggplot2-cheatsheet-2.0.pdf
29
> base4 <- ggplot(df_default,
+ aes(factor(default)))
> base4
> points4 <- base4 + geom_bar()
> points4
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Rで機械学習を使って予測モデル作成
30
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Rで機械学習を使ってモデル作成する前に。。
• モデル作成は泥臭い!
• Data Mungingや Data Wranglingと呼ぶ作業が必要
– http://www.rstudio.com/wp-content/uploads/2015/02/data-wrangling-cheatsheet.pdf
31
行列変換
複数列に分解
要約
グルーピング
結合
列追加列抽出
行抽出
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
予測モデル構築の流れ
データの
リサンプリング
モデルの
フィッティング
テストデータに
対する予測
32
学習用データとテストデータを事前に作成しておく
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Rで学習用データとテスト用データを作成
• 乱数生成とデータフレームのインデックスを活用
• 比率は好みもあるが6:4でシンプルに
33
> dim(df_default)
[1] 30000 24
> nrow(df_default)
[1] 30000
> indexes <- sample(1:nrow(df_default),
+ size=0.4*nrow(df_default))
> test <- df_default[indexes,]
> train <- df_default[-indexes,]
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
決定木
• データの特徴量から簡単なルールで分岐を作り判別や回帰モデルを作る
• ジニ係数やエントロピーに基づいて分割
34
𝑃(𝐵) 𝑃(𝐵 𝐶
)
𝐵 𝐵 𝐶
𝑃 𝐴 𝐵 𝑃 𝐴 𝐶 𝐵
𝐴 ∩ 𝐵 𝐴 𝐶 ∩ 𝐵
性別=男性
男性 女性
40歳以上 40歳未満
男性
40以上
男性
40未満
性別=男性じゃない(女性)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Rで学習用データから決定木を作る
• 決定木を行うためのライブラリrpartを活用
• 学習用データから予測する列と予測に使用する列を指定
– 予測列~予測に使用する列1+予測に使用する列2・・・(formulaと呼ぶR特有のクラス)
– 残りすべてを予測に使用する場合には「.」で省略可能
35
> library(rpart)
> rp <- rpart(factor(default)~., data = train)
> print(rp)
> plot(rp, margin=0.1)
> text(rp,all =T,use.n=T)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
答え合わせをしてみましょう
• 決定木によってできた予測モデルを使って実際に予測
• 予測モデルを作ったデータでないtestに対してpredict関数を実施
• table関数によって
36
> pre <- predict(rp,test,type = "class")
> tes <- test[,24]
> table(tes,pre)
pre
tes 0 1
0 8970 397
1 1759 874
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
ランダムフォレスト
• 決定木を弱学習器とするアンサンブル学習アルゴリズム
• 決定木に比べて負荷は高いが手軽に高精度
37
強学習機(弱学習機の多数決)
弱学習機(決定木)
学習データ
復元抽出 復元抽出 復元抽出
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Rでランダムフォレストまでやってみる
• ランダムフォレストを行うためのライブラリrandomForestを活用
• install.packages("randomForest", dep=T)
• Out-Of-Bag(OOB)データによって、テストも実施済み
38
> library(randomForest)
> rf <- randomForest(factor(default)~.,
+ data = train, importance = T)
> print(rf)
> plot(rf)
> importance(rf)
> varImpPlot(rf)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
ランダムフォレストの中身を確認
39
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
更なる高みを目指していくために!
• とりあえず人気なパッケージはインストールするのもいいかも
– Top 20 R Machine Learning and Data Science packages
• http://www.kdnuggets.com/2015/06/top-20-r-machine-learning-packages.html
40
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
コンペではブースティングとバギングが人気
• ブースティングならxgboostパッケージ
• https://github.com/dmlc/xgboost
• 先ほどのrandomForestは高速で動くパッケージも登場中
– ranger
• http://arxiv.org/abs/1508.04409
– Rborist
• https://github.com/suiji/Arborist
41
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Rでディープラーニングもできちゃいます
• 基礎を捨てていきなりディープラーニングしたい人は
– H2O
• http://www.h2o.ai/download/h2o/r
– MXNet
• https://github.com/dmlc/mxnet/tree/master/R-package
42
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
もう少し全体感の情報も
• RStdio
– https://www.rstudio.com/
– https://www.rstudio.com/resources/cheatsheets/
• CRAN Task View: Machine Learning & Statistical Learning
– https://cran.r-project.org/web/views/MachineLearning.html
• Kaggle
– https://www.kaggle.com/
• ef-prime R AnalyticFlow
– http://www.ef-prime.com/products/ranalyticflow/index.html
43
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle R Enterpriseデモンストレーション
44
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 45
In-Database Analytics
Oracle R Enterprise
R> summary(EMP)
R> df <- ore.pull(EMP)
R> dbt <- ore.push((1:3),(4:6))
ore.frame, pull and push
Write R automaticity convert to SQL
PMML
Predictive Model Markup Language
DEPLOY TO 3rd PARTY
DEVELOP AND DEPLOY ANYWHERE
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Spawned R Engine
Spawned R Engine
Spawned R Engine
Oracle R Enterprise アーキテクチャ
46
Database Server
R Engine
Other R packages
Oracle R Enterprise packages
R
Client
Spawned R Engine
Other R packages
Oracle R Enterprise packages
SQL
結果 結果
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 47
Before -> After
𝑥 =
−𝑏 ± 𝑏2 − 4𝑎𝑐
2𝑎
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 48

Contenu connexe

Tendances

クラウドから始めるRのビッグデータ分析- Oracle R Enterprise in Cloud
クラウドから始めるRのビッグデータ分析- Oracle R Enterprise in Cloudクラウドから始めるRのビッグデータ分析- Oracle R Enterprise in Cloud
クラウドから始めるRのビッグデータ分析- Oracle R Enterprise in Cloud幹雄 小川
 
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門Koichi Hamada
 
GMO プライベート DMP で ビッグデータ解析をするために アプリクラウドで Apache Spark の検証をしてみた
GMO プライベート DMP で ビッグデータ解析をするために アプリクラウドで Apache Spark の検証をしてみたGMO プライベート DMP で ビッグデータ解析をするために アプリクラウドで Apache Spark の検証をしてみた
GMO プライベート DMP で ビッグデータ解析をするために アプリクラウドで Apache Spark の検証をしてみたTetsuo Yamabe
 
データサイエンティスト必見!M-1グランプリ
データサイエンティスト必見!M-1グランプリデータサイエンティスト必見!M-1グランプリ
データサイエンティスト必見!M-1グランプリSatoshi Kitajima
 
20180109 titech lecture_ishizaki_public
20180109 titech lecture_ishizaki_public20180109 titech lecture_ishizaki_public
20180109 titech lecture_ishizaki_publicKazuaki Ishizaki
 
AutoEncoderで特徴抽出
AutoEncoderで特徴抽出AutoEncoderで特徴抽出
AutoEncoderで特徴抽出Kai Sasaki
 
Sparkを用いたビッグデータ解析 〜 前編 〜
Sparkを用いたビッグデータ解析 〜 前編 〜Sparkを用いたビッグデータ解析 〜 前編 〜
Sparkを用いたビッグデータ解析 〜 前編 〜x1 ichi
 
Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題Takeshi Yamamuro
 
Hadoopカンファレンス20140707
Hadoopカンファレンス20140707Hadoopカンファレンス20140707
Hadoopカンファレンス20140707Recruit Technologies
 
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習Katsushi Yamashita
 
SparkMLlibで始めるビッグデータを対象とした機械学習入門
SparkMLlibで始めるビッグデータを対象とした機械学習入門SparkMLlibで始めるビッグデータを対象とした機械学習入門
SparkMLlibで始めるビッグデータを対象とした機械学習入門Takeshi Mikami
 
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料Recruit Technologies
 
Apache Spark チュートリアル
Apache Spark チュートリアルApache Spark チュートリアル
Apache Spark チュートリアルK Yamaguchi
 
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」Kazuki Taniguchi
 
20200424_Writable_Arrow_Fdw
20200424_Writable_Arrow_Fdw20200424_Writable_Arrow_Fdw
20200424_Writable_Arrow_FdwKohei KaiGai
 
FluentdやNorikraを使った データ集約基盤への取り組み紹介
FluentdやNorikraを使った データ集約基盤への取り組み紹介FluentdやNorikraを使った データ集約基盤への取り組み紹介
FluentdやNorikraを使った データ集約基盤への取り組み紹介Recruit Technologies
 
20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_TokyoKohei KaiGai
 
クラウド時代の並列分散処理技術
クラウド時代の並列分散処理技術クラウド時代の並列分散処理技術
クラウド時代の並列分散処理技術Koichi Fujikawa
 

Tendances (20)

クラウドから始めるRのビッグデータ分析- Oracle R Enterprise in Cloud
クラウドから始めるRのビッグデータ分析- Oracle R Enterprise in Cloudクラウドから始めるRのビッグデータ分析- Oracle R Enterprise in Cloud
クラウドから始めるRのビッグデータ分析- Oracle R Enterprise in Cloud
 
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
 
GMO プライベート DMP で ビッグデータ解析をするために アプリクラウドで Apache Spark の検証をしてみた
GMO プライベート DMP で ビッグデータ解析をするために アプリクラウドで Apache Spark の検証をしてみたGMO プライベート DMP で ビッグデータ解析をするために アプリクラウドで Apache Spark の検証をしてみた
GMO プライベート DMP で ビッグデータ解析をするために アプリクラウドで Apache Spark の検証をしてみた
 
データサイエンティスト必見!M-1グランプリ
データサイエンティスト必見!M-1グランプリデータサイエンティスト必見!M-1グランプリ
データサイエンティスト必見!M-1グランプリ
 
20180109 titech lecture_ishizaki_public
20180109 titech lecture_ishizaki_public20180109 titech lecture_ishizaki_public
20180109 titech lecture_ishizaki_public
 
入門機械学習6章
入門機械学習6章入門機械学習6章
入門機械学習6章
 
R -> Python
R -> PythonR -> Python
R -> Python
 
AutoEncoderで特徴抽出
AutoEncoderで特徴抽出AutoEncoderで特徴抽出
AutoEncoderで特徴抽出
 
Sparkを用いたビッグデータ解析 〜 前編 〜
Sparkを用いたビッグデータ解析 〜 前編 〜Sparkを用いたビッグデータ解析 〜 前編 〜
Sparkを用いたビッグデータ解析 〜 前編 〜
 
Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題
 
Hadoopカンファレンス20140707
Hadoopカンファレンス20140707Hadoopカンファレンス20140707
Hadoopカンファレンス20140707
 
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
 
SparkMLlibで始めるビッグデータを対象とした機械学習入門
SparkMLlibで始めるビッグデータを対象とした機械学習入門SparkMLlibで始めるビッグデータを対象とした機械学習入門
SparkMLlibで始めるビッグデータを対象とした機械学習入門
 
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料
 
Apache Spark チュートリアル
Apache Spark チュートリアルApache Spark チュートリアル
Apache Spark チュートリアル
 
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」
 
20200424_Writable_Arrow_Fdw
20200424_Writable_Arrow_Fdw20200424_Writable_Arrow_Fdw
20200424_Writable_Arrow_Fdw
 
FluentdやNorikraを使った データ集約基盤への取り組み紹介
FluentdやNorikraを使った データ集約基盤への取り組み紹介FluentdやNorikraを使った データ集約基盤への取り組み紹介
FluentdやNorikraを使った データ集約基盤への取り組み紹介
 
20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo
 
クラウド時代の並列分散処理技術
クラウド時代の並列分散処理技術クラウド時代の並列分散処理技術
クラウド時代の並列分散処理技術
 

Similaire à R超入門機械学習をはじめよう

RでKaggleの登竜門に挑戦
RでKaggleの登竜門に挑戦RでKaggleの登竜門に挑戦
RでKaggleの登竜門に挑戦幹雄 小川
 
20160121 データサイエンティスト協会 木曜セミナー #5
20160121 データサイエンティスト協会 木曜セミナー #520160121 データサイエンティスト協会 木曜セミナー #5
20160121 データサイエンティスト協会 木曜セミナー #5Koichiro Sasaki
 
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標Tomoharu ASAMI
 
Oracle advanced analyticsによる機械学習full version
Oracle advanced analyticsによる機械学習full versionOracle advanced analyticsによる機械学習full version
Oracle advanced analyticsによる機械学習full version幹雄 小川
 
GraphQLはどんな時に使うか
GraphQLはどんな時に使うかGraphQLはどんな時に使うか
GraphQLはどんな時に使うかYutaka Tachibana
 
[Oracle big data jam session #1] Apache Spark ことはじめ
[Oracle big data jam session #1] Apache Spark ことはじめ[Oracle big data jam session #1] Apache Spark ことはじめ
[Oracle big data jam session #1] Apache Spark ことはじめKenichi Sonoda
 
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006Cloudera Japan
 
さくらのインフラコード
さくらのインフラコードさくらのインフラコード
さくらのインフラコードYukihiko SAWANOBORI
 
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
Monadic Programmingのススメ - Functional Reactive ProgrammingへのアプローチMonadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
Monadic Programmingのススメ - Functional Reactive ProgrammingへのアプローチTomoharu ASAMI
 
企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624Yusuke Suzuki
 
160705-03 RTミドルウエア講習会・名城大
160705-03 RTミドルウエア講習会・名城大160705-03 RTミドルウエア講習会・名城大
160705-03 RTミドルウエア講習会・名城大openrtm
 
Nashorn in the future (Japanese)
Nashorn in the future (Japanese)Nashorn in the future (Japanese)
Nashorn in the future (Japanese)Logico
 
MLflowで学ぶMLOpsことはじめ
MLflowで学ぶMLOpsことはじめMLflowで学ぶMLOpsことはじめ
MLflowで学ぶMLOpsことはじめKenichi Sonoda
 
10min r study_tokyor25
10min r study_tokyor2510min r study_tokyor25
10min r study_tokyor25Nobuaki Oshiro
 
10min r study_tokyor25
10min r study_tokyor2510min r study_tokyor25
10min r study_tokyor25Nobuaki Oshiro
 
Scalaプログラミング・マニアックス
Scalaプログラミング・マニアックスScalaプログラミング・マニアックス
Scalaプログラミング・マニアックスTomoharu ASAMI
 
Big Data も Oracle SQL で参照できるって知ってました?
Big Data も Oracle SQL で参照できるって知ってました?Big Data も Oracle SQL で参照できるって知ってました?
Big Data も Oracle SQL で参照できるって知ってました?美佳子 清水
 

Similaire à R超入門機械学習をはじめよう (20)

RでKaggleの登竜門に挑戦
RでKaggleの登竜門に挑戦RでKaggleの登竜門に挑戦
RでKaggleの登竜門に挑戦
 
20160121 データサイエンティスト協会 木曜セミナー #5
20160121 データサイエンティスト協会 木曜セミナー #520160121 データサイエンティスト協会 木曜セミナー #5
20160121 データサイエンティスト協会 木曜セミナー #5
 
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
 
Oracle advanced analyticsによる機械学習full version
Oracle advanced analyticsによる機械学習full versionOracle advanced analyticsによる機械学習full version
Oracle advanced analyticsによる機械学習full version
 
GraphQLはどんな時に使うか
GraphQLはどんな時に使うかGraphQLはどんな時に使うか
GraphQLはどんな時に使うか
 
[Oracle big data jam session #1] Apache Spark ことはじめ
[Oracle big data jam session #1] Apache Spark ことはじめ[Oracle big data jam session #1] Apache Spark ことはじめ
[Oracle big data jam session #1] Apache Spark ことはじめ
 
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
 
さくらのインフラコード
さくらのインフラコードさくらのインフラコード
さくらのインフラコード
 
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
Monadic Programmingのススメ - Functional Reactive ProgrammingへのアプローチMonadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
 
企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624
 
BPStudy20121221
BPStudy20121221BPStudy20121221
BPStudy20121221
 
160705-03 RTミドルウエア講習会・名城大
160705-03 RTミドルウエア講習会・名城大160705-03 RTミドルウエア講習会・名城大
160705-03 RTミドルウエア講習会・名城大
 
Oracle APEX概要
Oracle APEX概要Oracle APEX概要
Oracle APEX概要
 
Nashorn in the future (Japanese)
Nashorn in the future (Japanese)Nashorn in the future (Japanese)
Nashorn in the future (Japanese)
 
MLflowで学ぶMLOpsことはじめ
MLflowで学ぶMLOpsことはじめMLflowで学ぶMLOpsことはじめ
MLflowで学ぶMLOpsことはじめ
 
10min r study_tokyor25
10min r study_tokyor2510min r study_tokyor25
10min r study_tokyor25
 
10min r study_tokyor25
10min r study_tokyor2510min r study_tokyor25
10min r study_tokyor25
 
Oracle R Advanced Analytics for Hadoop利用方法
Oracle R Advanced Analytics for Hadoop利用方法Oracle R Advanced Analytics for Hadoop利用方法
Oracle R Advanced Analytics for Hadoop利用方法
 
Scalaプログラミング・マニアックス
Scalaプログラミング・マニアックスScalaプログラミング・マニアックス
Scalaプログラミング・マニアックス
 
Big Data も Oracle SQL で参照できるって知ってました?
Big Data も Oracle SQL で参照できるって知ってました?Big Data も Oracle SQL で参照できるって知ってました?
Big Data も Oracle SQL で参照できるって知ってました?
 

R超入門機械学習をはじめよう

  • 1. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Cloud Developers Meetup @東京 「R」超入門 機械学習をはじめよう! 日本オラクル株式会社 クラウド・テクノロジー事業統括 PaaS事業推進室 ソリューション・アーキテクト部 クラウドアーキテクト 小川幹雄
  • 2. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 自己紹介 • Qiitaにオラクルクラウド機械学習手順書も上げてます! – アカウント名「ogamiki」 • Oracle Database Cloud Service上で機械学習環境を構築してみた – http://qiita.com/ogamiki/items/130b40a8ea72fddc432d • Oracle Database Cloud Service上で機械学習を試してみた – http://qiita.com/ogamiki/items/68a6fe94389668f1db41 2
  • 3. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 「R」超入門 機械学習をはじめよう! 1. Rのインストール 2. Rとは? 3. Rの基本(変数と処理とデータ構造) 4. Rにcsvファイルを読み込む 5. Rでグラフ描写 6. Rで機械学習を使って予測モデル作成 7. Oracle R Enterpriseデモンストレーション 3
  • 4. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | まずは「R」をダウンロード+インストール! • 統計数理研究所から –https://cran.ism.ac.jp/ 4
  • 5. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | インストーラーに従って進みましょう(Windows版) 5 言語選択 ライセンスへの同意 インストールパスコンポーネント選択画面カスタマイズ
  • 6. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | インストーラーに従って進みましょう(Windows版) 6 さぁ起動しましょう 拡張子関連付け Helpの形式MDI or SDI ショートカット
  • 7. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | インストーラーに従って進みましょう(Mac版) 7 さぁ起動しましょう 容量の確認 情報確認 ライセンスへの同意
  • 8. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | で、「R」ってなに? • 統計解析とビジュアライズのためのプログラミング言語/環境 • GNUライセンスされたソフトのためフリー • CRANはR本体とRパッケージをダウンロードできるWebサイト • 2016年6月13日時点で、8579のライブラリ(パッケージ)が存在 • ロゴもCreative Commons Attribution-ShareAlike 4.0 International license (CC-BY-SA 4.0) で使用可能 8
  • 9. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | なんで今「R」なのか • IEEE調査ののThe 2015 Top Ten Programming Languages第6位 • Kaggleで利用されているツールランキング第1位 9 https://www.kaggle.com/wiki/Softwarehttp://spectrum.ieee.org/computing/software/the-2015-top-ten-programming-languages
  • 10. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 【宣伝です!】Oracle R Distribution • https://oss.oracle.com/ORD/ • オラクルがサポートするオープンソースRのディストリビューション • 無料でダウンロード可能 • Intel MKLを動的にロードできる機能拡張がされている • Oracle Advanced Analytics, Oracle Linux, Oracle Big Data Applianceの ユーザーに対してはサポートを提供 10
  • 11. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Rの基本(変数と処理とデータ構造) 11
  • 12. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Rを開きましょう! • スタートメニューやMacならアプリケーションからアイコンを選択 12
  • 13. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Rの基本操作-変数と出力 • 変数にデータを入れるには「<-」か「=」 • 変数の出力は「print(変数名)」か「変数名」 • 数値型はそのまま数字を、文字型はダブルクォーテーションで囲む 13 > x <- 0701 > x [1] 701 > x = "今日はR入門勉強会" > print(x) [1] "今日はR入門勉強会"
  • 14. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Rの基本操作-数値演算 • 「+」「-」「*」「/」によって加減乗除を表現 • 「^」乗算も表現可能 • 変数に対して演算を行い、その結果を変数に代入も可能 14 > 1 + 2 * 3 / 4 [1] 2.5 > 4^2 [1] 16 > y <- x * 2 > y [1] 1402
  • 15. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Rの基本操作-関数 • 様々な処理が関数として提供されている • 「関数名(引数)」によって関数は実行可能 • 数学基本関数,統計基本関数が標準搭載 15 > sqrt(4) [1] 2 > log(10) [1] 2.302585 > cos(pi/3) [1] 0.5
  • 16. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Rのデータ構造-ベクトル • 同じ型のデータをベクトルとして複数扱うことが可能 • 「c(要素1,要素2,要素3・・・)」として定義可能 • 規則性のあるベクトルも作成可能 16 > v <- c(1,2,3) > v [1] 1 2 3 > length(v) [1] 3 > c(1:6) [1] 1 2 3 4 5 6
  • 17. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Rのデータ構造-データフレーム • 数値ベクトルや文字ベクトルなどの異なる型をまとめることが可能 • 外見は行列と同じ 2 次元配列であり、各行・列はラベルを必ず持つ • 各行・列に対して様々なアクセスや処理が可能 17 > df <- data.frame(ID = c(1:3) , + Name = c("小川","中嶋","竹爪")) > df ID Name 1 1 小川 2 2 中嶋 3 3 竹爪
  • 18. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Rのデータ構造-データフレームの操作 • 行と列からデータフレーム内のデータを抽出可能 18 > df$ID [1] 1 2 3 > df[1,] ID Name 1 1 小川 > df[,2] [1] 小川 中嶋 竹爪 Levels: 小川 竹爪 中嶋 > df[1,-2] [1] 1
  • 19. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Rにcsvファイルを読み込む 19
  • 20. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 今日のcsvをダウンロード! –https://goo.gl/Bo6KBr – 元データUCI Machine Learning Repository ”default of credit card clients Data Set” • http://archive.ics.uci.edu/ml/datasets/default+of+credit+card+clients 20 列番 列名 列の内容 補足 X1 LIMIT_BAL クレジットの上限 X2 SEX 性別 1 = 男性; 2 = 女性 X3 EDUCATION 学歴 1 = 院卒; 2 = 大卒; 3 = 高卒; 4 = その他 X4 MARRIAGE 婚姻ステータス 1 = 既婚; 2 = 独身; 3 = その他 X5 AGE 年齢 X6-X11 PAY_0~6 過去の支払 1 = 1か月遅れ; 2 = 2か月遅れ… X12-X17 BILL_AMT1~6 過去の請求額 X18-X23 PAY_AMT1~6 過去の支払額 X24 DEFAULT デフォルトフラグ 1 = デファルト; 0 = 正常
  • 21. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | RにCSVファイルを読み込む • 先頭の行数を指定数スキップし、列名も登録可能 • タブ区切りtsvファイルなどにも対応可能 • 読み込んだデータはデータフレームとして扱うことができる 21 > getwd() [1] "C:/Users/miogawa/Documents" > df_default <- read.table("creditdefault.csv", + skip = 1,header = T,sep = ",") > head(df_default) > summary(df_default)
  • 22. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Rでグラフ描写 22
  • 23. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 標準搭載の作図関数plotで描写 • コマンドライン上で実行すると画像ウィンドウが立ち上がる • グラフを上書きして重ねていくこともできる • 関数から様々なグラフを表示可能 23 > x <- 1:10 > y <- 1:10 > plot(x, y) > plot(rnorm(10),type='l') > par(new=T) > plot(rnorm(10),type='l') > barplot(x,y)
  • 24. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Rのグラフをより美しくーggplot2 • Rはライブラリを使うことで他の言語にない力を発揮する • ggplot2はRにおけるグラフ描写ライブラリのデファクトスタンダード • まずはinstall.packages("ggplot2", dep=T) 24
  • 25. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | ggplot2で描写 • インストールしたggplot2ライブラリを読み込む • データフレームと列を使用するか宣言(aesはaesthetics(美学)が語源) • データ->点の位置->軸->凡例とレイヤーを重ねていく記法 25 > library(ggplot2) > base1 <- ggplot(df_default, + aes(x = EDUCATION, y = MARRIAGE)) > base1 > points1 <- base1 + geom_bin2d() > points1 列名 列の内容 補足 EDUCATION 学歴 1 = 院卒; 2 = 大卒; 3 = 高卒… MARRIAGE 婚姻 1 = 既婚; 2 = 独身; 3 = その他 AGE 年齢 DEFAULT デフォルト 1 = デファルト; 0 = 正常
  • 26. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 数字型じゃなくてフラグとして扱いたい • factorでフラグに数字を使っていた列をちゃんとフラグとして認識 • モデル作成のときに重要 • 「1 :アウト 0: 正常 99: 不明」のような場合に数値して扱わないで済む – 数値して扱うと1と99の差まで影響を受けてしまう 26 > x <- factor(c(1,0,99)) > x [1] 1 0 99 Levels: 0 1 99
  • 27. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | ggplot2で描写 • libraryはセッションで一度読みこめばよい • さきほどaesで指定した列をfactorに変換 • aes(EDUCATION, MARRIAGE)と省略可能 27 > base2 <- ggplot(df_default, + aes(factor(EDUCATION),factor(MARRIAGE))) > base2 > points2 <- base2 + geom_bin2d() > points2
  • 28. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | ggplot2で描写 • Data Visualization with ggplot2 Cheat Sheet – http://www.rstudio.com/wp-content/uploads/2015/12/ggplot2-cheatsheet-2.0.pdf 28 > base3 <- ggplot(df_default,aes(AGE)) > base3 > points3 <- base3 + geom_histogram() > points3
  • 29. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | ggplot2で描写 • Data Visualization with ggplot2 Cheat Sheet – http://www.rstudio.com/wp-content/uploads/2015/12/ggplot2-cheatsheet-2.0.pdf 29 > base4 <- ggplot(df_default, + aes(factor(default))) > base4 > points4 <- base4 + geom_bar() > points4
  • 30. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Rで機械学習を使って予測モデル作成 30
  • 31. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Rで機械学習を使ってモデル作成する前に。。 • モデル作成は泥臭い! • Data Mungingや Data Wranglingと呼ぶ作業が必要 – http://www.rstudio.com/wp-content/uploads/2015/02/data-wrangling-cheatsheet.pdf 31 行列変換 複数列に分解 要約 グルーピング 結合 列追加列抽出 行抽出
  • 32. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 予測モデル構築の流れ データの リサンプリング モデルの フィッティング テストデータに 対する予測 32 学習用データとテストデータを事前に作成しておく
  • 33. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Rで学習用データとテスト用データを作成 • 乱数生成とデータフレームのインデックスを活用 • 比率は好みもあるが6:4でシンプルに 33 > dim(df_default) [1] 30000 24 > nrow(df_default) [1] 30000 > indexes <- sample(1:nrow(df_default), + size=0.4*nrow(df_default)) > test <- df_default[indexes,] > train <- df_default[-indexes,]
  • 34. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 決定木 • データの特徴量から簡単なルールで分岐を作り判別や回帰モデルを作る • ジニ係数やエントロピーに基づいて分割 34 𝑃(𝐵) 𝑃(𝐵 𝐶 ) 𝐵 𝐵 𝐶 𝑃 𝐴 𝐵 𝑃 𝐴 𝐶 𝐵 𝐴 ∩ 𝐵 𝐴 𝐶 ∩ 𝐵 性別=男性 男性 女性 40歳以上 40歳未満 男性 40以上 男性 40未満 性別=男性じゃない(女性)
  • 35. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Rで学習用データから決定木を作る • 決定木を行うためのライブラリrpartを活用 • 学習用データから予測する列と予測に使用する列を指定 – 予測列~予測に使用する列1+予測に使用する列2・・・(formulaと呼ぶR特有のクラス) – 残りすべてを予測に使用する場合には「.」で省略可能 35 > library(rpart) > rp <- rpart(factor(default)~., data = train) > print(rp) > plot(rp, margin=0.1) > text(rp,all =T,use.n=T)
  • 36. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 答え合わせをしてみましょう • 決定木によってできた予測モデルを使って実際に予測 • 予測モデルを作ったデータでないtestに対してpredict関数を実施 • table関数によって 36 > pre <- predict(rp,test,type = "class") > tes <- test[,24] > table(tes,pre) pre tes 0 1 0 8970 397 1 1759 874
  • 37. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | ランダムフォレスト • 決定木を弱学習器とするアンサンブル学習アルゴリズム • 決定木に比べて負荷は高いが手軽に高精度 37 強学習機(弱学習機の多数決) 弱学習機(決定木) 学習データ 復元抽出 復元抽出 復元抽出
  • 38. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Rでランダムフォレストまでやってみる • ランダムフォレストを行うためのライブラリrandomForestを活用 • install.packages("randomForest", dep=T) • Out-Of-Bag(OOB)データによって、テストも実施済み 38 > library(randomForest) > rf <- randomForest(factor(default)~., + data = train, importance = T) > print(rf) > plot(rf) > importance(rf) > varImpPlot(rf)
  • 39. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | ランダムフォレストの中身を確認 39
  • 40. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 更なる高みを目指していくために! • とりあえず人気なパッケージはインストールするのもいいかも – Top 20 R Machine Learning and Data Science packages • http://www.kdnuggets.com/2015/06/top-20-r-machine-learning-packages.html 40
  • 41. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | コンペではブースティングとバギングが人気 • ブースティングならxgboostパッケージ • https://github.com/dmlc/xgboost • 先ほどのrandomForestは高速で動くパッケージも登場中 – ranger • http://arxiv.org/abs/1508.04409 – Rborist • https://github.com/suiji/Arborist 41
  • 42. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Rでディープラーニングもできちゃいます • 基礎を捨てていきなりディープラーニングしたい人は – H2O • http://www.h2o.ai/download/h2o/r – MXNet • https://github.com/dmlc/mxnet/tree/master/R-package 42
  • 43. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | もう少し全体感の情報も • RStdio – https://www.rstudio.com/ – https://www.rstudio.com/resources/cheatsheets/ • CRAN Task View: Machine Learning & Statistical Learning – https://cran.r-project.org/web/views/MachineLearning.html • Kaggle – https://www.kaggle.com/ • ef-prime R AnalyticFlow – http://www.ef-prime.com/products/ranalyticflow/index.html 43
  • 44. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Oracle R Enterpriseデモンストレーション 44
  • 45. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 45 In-Database Analytics Oracle R Enterprise R> summary(EMP) R> df <- ore.pull(EMP) R> dbt <- ore.push((1:3),(4:6)) ore.frame, pull and push Write R automaticity convert to SQL PMML Predictive Model Markup Language DEPLOY TO 3rd PARTY DEVELOP AND DEPLOY ANYWHERE
  • 46. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Spawned R Engine Spawned R Engine Spawned R Engine Oracle R Enterprise アーキテクチャ 46 Database Server R Engine Other R packages Oracle R Enterprise packages R Client Spawned R Engine Other R packages Oracle R Enterprise packages SQL 結果 結果
  • 47. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 47 Before -> After 𝑥 = −𝑏 ± 𝑏2 − 4𝑎𝑐 2𝑎
  • 48. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 48

Notes de l'éditeur

  1. This research aimed at the case of customers’ default payments in Taiwan and compares the predictive accuracy of probability of default among six data mining methods.