SlideShare a Scribd company logo
1 of 38
Download to read offline
そんな気はない
Julia???
•  Rをdisる時に最近よく引き合いに出され
る言語(一番多いのはPython)
•  前回のTokyoRでも素敵なLTがありました
– https://speakerdeck.com/sorami/tokyor-
number-39-lt-rtojulia
•  Juliaの勉強会が7月5日に!!!
– JuliaTokyo#1
http://juliatokyo.connpass.com/event/6891/
Juliaの注意点
•  Juliaを検索するときはjulialangで検索するこ
と
•  新しいのであまり日本語の資料は無い
•  日本語以外でも速度比較ばかりでパッケージ
解説は少ないのでグローバル承認のチャンス
•  Juliaはv0.2とv0.3で互換性が無い部分があり
Exampleが動かない場合があるので注意
•  まあまだv0.3とかだから仕方ないですよね
•  今回はv0.3.0のprereleaseを使っています
ごめんなさい
•  Juliaについては前半で息切れしました
•  後半の機械学習手法の紹介については
Juliaは関連情報の紹介のみにとどめてい
ます
•  Juliaは情報が少なすぎるんや
16章の流れ
1.  データの読み込み
2.  データの概要把握(集計・可視化)
3.  機械学習で予測モデルを作る
① データの
読み込み
データの読み込み
•  パッケージ組み込みデータ
•  CSVファイル
•  Excelファイル
•  データベース
パッケージ組み込みデータ
#  irisデータをロード
#  既に読み込まれている場合もある
data("iris", package="datasets") 
Pkg.add("RDatasets")  #パッケージインストール
using RDatasets #パッケージ読み込み
dataset("datasets", "iris") 
古い資料だとdataset関数がdataと表記されているので注意
CSVファイル
# read.tableでsep=","を指定してもOK
read.csv("hoge.csv")
readtable("hoge.csv") 
data.tableパッケージのfreadが最速なので使える時はこちらを使
うと良いです
下記はdata.tableパッケージ全般の@sfchaosさんの発表資料
http://www.slideshare.net/sfchaos/datatable
Excelファイル
library(XLConnect)
wb <- loadWorkbook("hoge.xlsx")
wb["Sheet1"]
#見つからず
Excel関係のパッケージについては三重大奥村先生のサイトが有用
http://oku.edu.mie-u.ac.jp/~okumura/stat/exceldata.html
データベース
library(RODBC)
con <- odbcConnect("source", 
usr="johndoe",pwd="12345")
sqlQuery(con, "SELECT COUNT(*) FROM hoge;")
using ODBC
ODBC.connect("source", 
usr="johndoe",pwd="12345")
query("SELECT COUNT(*) FROM hoge;")
データベース(dplyr)
library(dplyr)
# コネクションの作成
mysrc <- src_mysql(host="hoge.com",
user="johndoe",password="12345")
# hogeテーブルを呼び出す
mytbl <- tbl(mysrc, "hoge")
# hogeテーブルに対しカウントをかける
mytbl %>% summarise(count=n())
dplyrのデータベース周りは下記から
http://rpubs.com/dichika/dplyr_db
② データの
概要をつかむ
 データの概要をつかむ
•  基本統計量の確認
•  データの集約
•  可視化
ここではggplot2パッケージの
diamondsデータを例にとります
基本統計量の確認
data("diamonds",package="ggplot2")
summary(diamonds)
using RDatasets
dataset("ggplot2", "diamonds") 
# windowsだと文字列でエラーが出るので注意
describe(diamonds)
summaryの結果
!!!これがダイヤモンドだ!!!
データの集約
diamondsを以下のように集約したい
 cutとcolorの組合せごとにpriceの平均をとる
cut color Priceの平均
Fair D 1000
Good E 3000
Premium H 2000
…
 …
 …
データの集約(組み込み)
by(diamonds$price,
diamonds[,c("cut","color")],
mean)
Using DataFrames 
by(diamonds,
[:Cut,:Color], 
df -> DataFrame(res=mean(df[:Price])))
データの集約(dplyr)
library(dplyr)
diamonds %>% 
group_by(cut,color) %>% 
summarise(res=mean(price))
超速集計パッケージdplyrの入門記事は下記から
http://rpubs.com/dichika/dplyr_intro
使用例は@gg_hatanoさんのブログが有用
http://gg-hogehoge.hatenablog.com/
データの集約(ピボットテーブル)
library(reshape2)
# ピボットテーブルの元データを作る
diamonds.m <- melt(diamonds,
id.var=c("cut","color"),
measure.var="price")
# ピボットテーブルを作成
dcast(diamonds.m, cut~color, mean)
データの集約全般はR言語上級ハンドブック執筆者の
@a_bickyさんの資料が超有用
http://www.slideshare.net/abicky/r-10128090
可視化
•  ヒストグラム
•  散布図
•  箱ひげ図
ヒストグラム
# 組み込み関数
hist(diamonds$price)
# ggplot2を使って描画
library(ggplot2)
ggplot(diamonds,aes(x=price)) + geom_histogram()
# Gadflyはggplot2ライクに描ける
using Gadfly
plot(diamonds, x="Price", Geom.histogram)
散布図
# 組み込み関数
with(diamonds,plot(carat, price))
# ggplot2を使って描画
library(ggplot2)
ggplot(diamonds,aes(x=carat, y=price)) +
geom_point()
using Gadfly
plot(diamonds, x="Carat", y="Price", Geom.point)
箱ひげ図
# 組み込み関数
boxplot(carat~color, diamonds)
# ggplot2を使って描画
library(ggplot2)
ggplot(diamonds, aes(x=color,y=carat)) +
geom_boxplot()
using Gadfly
plot(diamonds, x="Color", y="Carat", Geom.boxplot)
③機械学習で
予測モデルを作る
機械学習で予測モデルを作る
下記4つを使って予測モデルを作ってみます。
機械学習はパラメータチューニングが命で
すが今回は初期値を使っています。

1.  SVM
2.  ランダムフォレスト
3.  GBM
4.  ニューラルネットワーク
ここではタイタニック号の乗員データを使います
# データを某所からロード
load(url('http://biostat.mc.vanderbilt.edu/wiki/pub/
Main/DataSets/titanic3.sav'))

# データをモデル作成用と検証用データに分割
set.seed(1)
ix <- sample(seq_len(nrow(titanic3)),
trunc(nrow(titanic3)/2))
titanic.train <- titanic3[ix,] #モデル作成用
titanic.pred <- titanic3[-ix,] # 検証用
SVM(サポートベクターマシン)
library(kernlab)
train <- ksvm(survived ~ pclass + sex + age + sibsp, 
data = titanic.train)
predict(train, type="response", newdata=titanic.pred)
liblinearを使うものとJuliaで全部書いたものの2種類があ
ります。後者については下記が有用です。
http://qiita.com/chezou/items/d090f26dcb31818d6964
SVMのパラメータチューニングについては以下が有用。
http://d.hatena.ne.jp/sleepy_yoshi/20120624/p1
ランダムフォレスト
library(randomForest)
train <- randomForest (
as.factor(survived) ~ pclass + sex + age + sibsp, 
data = titanic.train, na.action=na.omit)
predict(train, type="prob", newdata=titanic.pred)
パッケージはこちら
https://github.com/bensadeghi/DecisionTree.jl
決定木も含めた使用例はこちら
http://bensadeghi.com/decision-trees-julia/
GBM
library(gbm)
train <- gbm (survived ~ pclass + sex + age + sibsp, 
data = titanic.train)
predict(train, type="response", newdata=titanic.pred,
n.trees=100)
Juliaのパッケージは見つけられず
GBMはパラメータが多いのでチューニングが面倒
チューニングの初歩として下記動画が有用
http://vimeo.com/71992876
ニューラルネットワーク
localH2O = h2o.init()
titanic.train.h2o <- as.h2o(localH2O,titanic.train)
titanic.pred.h2o <- as.h2o(localH2O,titanic.pred)
train <-h2o.deeplearning(x=c(1,4,5,6),
y=2,
data=titanic.train.h2o)
h2o.predict(train, newdata=titanic.pred.h2o)
Juliaのパッケージは見つけられず
h2oについては山下勝司さんの資料が有用
http://www.slideshare.net/yamakatu/mlct01-lt
色々試すのは面倒
•  機械学習の各種手法をまとめて評価でき
るcaretパッケージが便利
•  詳しくはTokyoR#38の@sfchaosさんの資
料を参照のこと
http://www.slideshare.net/sfchaos/ss-33703018
•  JuliaだとMLBase?
最後に
•  Rの集計・可視化は色々なやり方があるの
でお好みの方法でどうぞ
•  Rにおける最新の前処理動向を知りたい時
はHadley Wickhamの動向をつかんでおけ
ば良いと思います
•  Juliaに関しては速度比較ばかりで
DataFrameとか基本的なパッケージの情
報が異常に少ないので皆さん人柱に
TokyoR40

More Related Content

Viewers also liked

チェビシェフの不等式
チェビシェフの不等式チェビシェフの不等式
チェビシェフの不等式hoxo_m
 
独立成分分析とPerfume
独立成分分析とPerfume独立成分分析とPerfume
独立成分分析とPerfumeYurie Oka
 
エクセルで統計分析 統計プログラムHADについて
エクセルで統計分析 統計プログラムHADについてエクセルで統計分析 統計プログラムHADについて
エクセルで統計分析 統計プログラムHADについてHiroshi Shimizu
 
R とクラスター
R とクラスターR とクラスター
R とクラスターHarada Shinya
 
Tokyo r#10 Rによるデータサイエンス 第五章:クラスター分析
Tokyo r#10 Rによるデータサイエンス 第五章:クラスター分析Tokyo r#10 Rによるデータサイエンス 第五章:クラスター分析
Tokyo r#10 Rによるデータサイエンス 第五章:クラスター分析hnisiji
 
Rで部屋探し For slide share
Rで部屋探し For slide shareRで部屋探し For slide share
Rで部屋探し For slide shareShota Yasui
 
データ解析で割安賃貸物件を探せ!(山手線沿線編) LT
データ解析で割安賃貸物件を探せ!(山手線沿線編) LTデータ解析で割安賃貸物件を探せ!(山手線沿線編) LT
データ解析で割安賃貸物件を探せ!(山手線沿線編) LT. .
 
rstanで個人のパラメーターを推定した話
rstanで個人のパラメーターを推定した話rstanで個人のパラメーターを推定した話
rstanで個人のパラメーターを推定した話Yuya Matsumura
 
[データマイニング+WEB勉強会][R勉強会] R言語によるクラスター分析 - 活用編
[データマイニング+WEB勉強会][R勉強会] R言語によるクラスター分析 - 活用編[データマイニング+WEB勉強会][R勉強会] R言語によるクラスター分析 - 活用編
[データマイニング+WEB勉強会][R勉強会] R言語によるクラスター分析 - 活用編Koichi Hamada
 
高速フーリエ変換
高速フーリエ変換高速フーリエ変換
高速フーリエ変換AtCoder Inc.
 
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる R言語によるクラスター分析 - 似ているものをグループ化する-
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる R言語によるクラスター分析 - 似ているものをグループ化する-[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる R言語によるクラスター分析 - 似ているものをグループ化する-
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる R言語によるクラスター分析 - 似ているものをグループ化する-Koichi Hamada
 
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)Hiroshi Shimizu
 
Stanコードの書き方 中級編
Stanコードの書き方 中級編Stanコードの書き方 中級編
Stanコードの書き方 中級編Hiroshi Shimizu
 
今日から使える! みんなのクラスタリング超入門
今日から使える! みんなのクラスタリング超入門今日から使える! みんなのクラスタリング超入門
今日から使える! みんなのクラスタリング超入門toilet_lunch
 
パターン認識 04 混合正規分布
パターン認識 04 混合正規分布パターン認識 04 混合正規分布
パターン認識 04 混合正規分布sleipnir002
 
混合モデルとEMアルゴリズム(PRML第9章)
混合モデルとEMアルゴリズム(PRML第9章)混合モデルとEMアルゴリズム(PRML第9章)
混合モデルとEMアルゴリズム(PRML第9章)Takao Yamanaka
 

Viewers also liked (20)

R勉強会40回lt
R勉強会40回ltR勉強会40回lt
R勉強会40回lt
 
チェビシェフの不等式
チェビシェフの不等式チェビシェフの不等式
チェビシェフの不等式
 
独立成分分析とPerfume
独立成分分析とPerfume独立成分分析とPerfume
独立成分分析とPerfume
 
エクセルで統計分析 統計プログラムHADについて
エクセルで統計分析 統計プログラムHADについてエクセルで統計分析 統計プログラムHADについて
エクセルで統計分析 統計プログラムHADについて
 
R とクラスター
R とクラスターR とクラスター
R とクラスター
 
Tokyor37
Tokyor37Tokyor37
Tokyor37
 
Tokyo r#10 Rによるデータサイエンス 第五章:クラスター分析
Tokyo r#10 Rによるデータサイエンス 第五章:クラスター分析Tokyo r#10 Rによるデータサイエンス 第五章:クラスター分析
Tokyo r#10 Rによるデータサイエンス 第五章:クラスター分析
 
Rで部屋探し For slide share
Rで部屋探し For slide shareRで部屋探し For slide share
Rで部屋探し For slide share
 
データ解析で割安賃貸物件を探せ!(山手線沿線編) LT
データ解析で割安賃貸物件を探せ!(山手線沿線編) LTデータ解析で割安賃貸物件を探せ!(山手線沿線編) LT
データ解析で割安賃貸物件を探せ!(山手線沿線編) LT
 
rstanで個人のパラメーターを推定した話
rstanで個人のパラメーターを推定した話rstanで個人のパラメーターを推定した話
rstanで個人のパラメーターを推定した話
 
潜在クラス分析
潜在クラス分析潜在クラス分析
潜在クラス分析
 
[データマイニング+WEB勉強会][R勉強会] R言語によるクラスター分析 - 活用編
[データマイニング+WEB勉強会][R勉強会] R言語によるクラスター分析 - 活用編[データマイニング+WEB勉強会][R勉強会] R言語によるクラスター分析 - 活用編
[データマイニング+WEB勉強会][R勉強会] R言語によるクラスター分析 - 活用編
 
高速フーリエ変換
高速フーリエ変換高速フーリエ変換
高速フーリエ変換
 
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる R言語によるクラスター分析 - 似ているものをグループ化する-
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる R言語によるクラスター分析 - 似ているものをグループ化する-[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる R言語によるクラスター分析 - 似ているものをグループ化する-
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる R言語によるクラスター分析 - 似ているものをグループ化する-
 
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
 
Stanコードの書き方 中級編
Stanコードの書き方 中級編Stanコードの書き方 中級編
Stanコードの書き方 中級編
 
決定木学習
決定木学習決定木学習
決定木学習
 
今日から使える! みんなのクラスタリング超入門
今日から使える! みんなのクラスタリング超入門今日から使える! みんなのクラスタリング超入門
今日から使える! みんなのクラスタリング超入門
 
パターン認識 04 混合正規分布
パターン認識 04 混合正規分布パターン認識 04 混合正規分布
パターン認識 04 混合正規分布
 
混合モデルとEMアルゴリズム(PRML第9章)
混合モデルとEMアルゴリズム(PRML第9章)混合モデルとEMアルゴリズム(PRML第9章)
混合モデルとEMアルゴリズム(PRML第9章)
 

More from TokorosawaYoshio

More from TokorosawaYoshio (9)

R45LT
R45LTR45LT
R45LT
 
JapanR2014
JapanR2014JapanR2014
JapanR2014
 
Tokyor44
Tokyor44Tokyor44
Tokyor44
 
TokyoR42_around_chaining
TokyoR42_around_chainingTokyoR42_around_chaining
TokyoR42_around_chaining
 
データ解析のための勉強会第7章
データ解析のための勉強会第7章データ解析のための勉強会第7章
データ解析のための勉強会第7章
 
Rから通知をとばす
Rから通知をとばすRから通知をとばす
Rから通知をとばす
 
2分でパッケージを作ってインストールする
2分でパッケージを作ってインストールする2分でパッケージを作ってインストールする
2分でパッケージを作ってインストールする
 
Tokyor36
Tokyor36Tokyor36
Tokyor36
 
TokyoR#31 初心者セッション
TokyoR#31 初心者セッションTokyoR#31 初心者セッション
TokyoR#31 初心者セッション
 

TokyoR40