SlideShare a Scribd company logo
1 of 33
Download to read offline
前処理のための前処理
シリーズ前処理 2015
@u_ribo
Tokyo.R#45 January 17, 2015
Tokyo.R
シリーズ前処理:
おさらい
 前処理
【広義】手元にある観測データを、
意図する分析手法が適用できる形にまで
もっていく方法
http://www.slideshare.net/dichika/maeshori-missing
 解析時間のほとんどは前処理
25
50
75
0/100
effort
""
time
Analysis
Manipulation
Dasu and Johnson 2003.
Exploratory Data Mining and Data Cleaning. Wiley
[1] “無駄” “無駄” “無駄” “無駄” “無駄” “無駄”
“無駄” “無駄” [9] “無駄” “無駄” “無駄” “無駄”
“無駄” “無駄” “無駄” “無駄” [17] “無駄” “無駄”
“無駄” “無駄” “無駄” “無駄” “無駄” “無駄” [25]
“無駄” “無駄” “無駄” “無駄” “無駄” “無駄” “無
駄” “無駄” [33] “無駄” “無駄” “無駄” “無駄”
“無駄” “無駄” “無駄” “無駄” [41] “無駄” “無駄”
“無駄” “無駄” “無駄” “無駄” “無駄” “無駄” [49]
“無駄” “無駄” “無駄” “無駄” “無駄” “無駄” “無
駄” “無駄” [57] “無駄” “無駄” “無駄” “無駄”
“無駄” “無駄” “無駄” “無駄” [65] “無駄” “無駄”
“無駄” “無駄” “無駄” “無駄” “無駄” “無駄” [73]
“無駄” “無駄” “無駄” “無駄” “無駄” “無駄” “無
前処理に時間がかかる
-> 最終的な出力結果の質が低下する

[1] “どうしてこうなった” “どうしてこうなった”
[3] “どうしてこうなった” “どうしてこうなった”
[5] “どうしてこうなった” “どうしてこうなった”
[7] “どうしてこうなった” “どうしてこうなった”
[9] “どうしてこうなった” “どうしてこうなった”
[11] “どうしてこうなった” “どうしてこうなった”
[13] “どうしてこうなった” “どうしてこうなった”
[15] “どうしてこうなった” “どうしてこうなった”
[17] “どうしてこうなった” “どうしてこうなった”
[19] “どうしてこうなった” “どうしてこうなった”
[21] “どうしてこうなった” “どうしてこうなった”
[23] “どうしてこうなった” “どうしてこうなった”
[25] “どうしてこうなった” “どうしてこうなった”
Tokyo.R シリーズ前処理
今日のテーマ:
前処理のための
前処理
もちべーしょん: 前処理の苦労を減らしたい
内容…
 データ解析、前処理における環境構築、心がけ
 ぼくのがんがえたこうりつてきなまえしょり、
そのためにひつようなまえしょり
 議論を通じて知識・理解を深めたい
#Tsurami
#Tsurami
https://twitter.com/yamano357/status/552514988137783301
#Tsurami
https://twitter.com/gg_hatano/status/551328451068588032
#Tsurami
Japan.R2014 所
さわ
沢さんの発表 より...
Remember why are you using SJIS? 
https://github.com/hadley/dplyr/issues/339
 前処理を行う際に生じる問題の原因
 Are you okay?
 邪智暴虐な俺々ファイルの存在
 コメントのない奇怪なコード
 作業過程の再現性の欠如
 とりあえず、的に書かれたコード
[1] “滅” “滅” “滅” “滅” “滅” “滅” “滅” “滅”
“滅” “滅” “滅” [12] “滅” “滅” “滅” “滅” “滅”
“滅” “滅” “滅” “滅” “滅” “滅” [23] “滅” “滅”
“滅” “滅” “滅” “滅” “滅” “滅” “滅” “滅” “滅”
[34] “滅” “滅” “滅” “滅” “滅” “滅” “滅” “滅”
“滅” “滅” “滅” [45] “滅” “滅” “滅” “滅” “滅”
“滅” “滅” “滅” “滅” “滅” “滅” [56] “滅” “滅”
“滅” “滅” “滅” “滅” “滅” “滅” “滅” “滅” “滅”
[67] “滅” “滅” “滅” “滅” “滅” “滅” “滅” “滅”
“滅” “滅” “滅” [78] “滅” “滅” “滅” “滅” “滅”
“滅” “滅” “滅” “滅” “滅” “滅” [89] “滅” “滅”
“滅” “滅” “滅” “滅” “滅” “滅” “滅” “滅” “滅”
[100] “滅” “滅” “滅” “滅” “滅” “滅” “滅” “滅”
R を使った前処理5原則
1. 作業は RStudio 内ですべて完結させる
2. .Rproj を作成する
3. .Rmd でファイルを保存する
4. Git によるバージョン管理をおこなう
5. プロジェクトのガイドラインを策定する
R における統合開発環境: RStudio
 そろそろ ver.0.99
 Viewer の強化
 パッケージ名の補完
 ref) http://goo.gl/inFdt5
 これから説明する内容は
すべて RStudio 上で行える
 話題閑話
絶許
https://twitter.com/gg_hatano/status/555923067675738113
.Rproj
 フォルダ内にフォルダ名.Rproj というファイ
ルが生成
 RStudio の設定などが記述される
ご利益
 面倒なフォルダ指定、setwd からの開放
 パッケージ管理ツール Packrat の利用
 Git の運用
.Rmd: R + Markdown + LATEX
= POWERFUL 
このスライドも.Rmd で書いている
lab.noteパッケージでどうぞ 1
rmarkdown::draft(”MyReport.Rmd”,template=”basic_report”,package=”lab.note”)
1
ただし Windows、Linux、テメーらはダメだ(未検証)
アウトプットオオオオオオオオ!!!!
ぼく「(モニターで確認して)よし、これでいいな」
ボス「図を印刷して見せて」
ぼく「(あああああああああ!!!!!!!!!)」
LATEX おじさんが誕生した 2
2
HTML での出力はモニター向け。PDF を印刷したいよね、と。Word? しらん
Git: 分散型バージョン管理システム
 長い時間を経てプロジェクトは完成される
 完成後も管理し続ける必要が生じる
 同様の処理を、別プロジェクトで、自分以外の
誰かが行う場合がある
 記録として残すことが大事
GitHub で広がるコミュニケーション
 パッケージを作って公開
 今日からあなたも開発者
 芝を生やしてもちべーしょんを高めよう!
README ≒ 嫁
 リポジトリ(プロジェクト)の顔
 迷った際はここを見れば解決できるように
1. 作業のワークフローを書く
2. ファイル名、関数名の規則
3. プロットの色、サイズ
Tips
 とにかく日本語は NG
 SJIS
 犬 -> INU にするなら辞書をひいてdog に
 ローマ字カナも良くない
 Excel は入力・閲覧用 -> dplyr パッケージで
 単位変換、新たな列の作成は闇
 ハイフン、アンダーバーをどう扱うか
 スペースの落とし穴 (LATEX)
「いろいろと面倒だ」
「でも、あなたのちっぽけな
頭では忘れてしまう
でしょう(煽り)」
「ぐぬぬ」
 自分のため、
 仲間のため、
 誰かのため
Let’s go! 
@dichika 進捗どうですか 
http://www.slideshare.net/dichika/maeshori-missing
みんなで #Tsurami を供養しよう
https://github.com/uribo/data_treatment
Sessioninfo: R version 3.1.2 (2014-10-31)
[1] “webshot” “ggthemr” “knitcitations” [4]
“fortunes” “xtable” “rmarkdown”
[7] “devtools” “popbio” “quadprog”
[10] “ggplot2” “glmmML” “dplyr”
[13] “magrittr” “MASS” “lattice”
[16] “stringr” “knitr”
Questions? 

More Related Content

What's hot

[論文紹介] LSTM (LONG SHORT-TERM MEMORY)
[論文紹介] LSTM (LONG SHORT-TERM MEMORY)[論文紹介] LSTM (LONG SHORT-TERM MEMORY)
[論文紹介] LSTM (LONG SHORT-TERM MEMORY)
Tomoyuki Hioki
 
相関と因果について考える:統計的因果推論、その(不)可能性の中心
相関と因果について考える:統計的因果推論、その(不)可能性の中心相関と因果について考える:統計的因果推論、その(不)可能性の中心
相関と因果について考える:統計的因果推論、その(不)可能性の中心
takehikoihayashi
 
ベイズ統計入門
ベイズ統計入門ベイズ統計入門
ベイズ統計入門
Miyoshi Yuya
 
知識グラフの埋め込みとその応用 (第10回ステアラボ人工知能セミナー)
知識グラフの埋め込みとその応用 (第10回ステアラボ人工知能セミナー)知識グラフの埋め込みとその応用 (第10回ステアラボ人工知能セミナー)
知識グラフの埋め込みとその応用 (第10回ステアラボ人工知能セミナー)
STAIR Lab, Chiba Institute of Technology
 
5分でわかるかもしれないglmnet
5分でわかるかもしれないglmnet5分でわかるかもしれないglmnet
5分でわかるかもしれないglmnet
Nagi Teramo
 

What's hot (20)

アンサンブル学習
アンサンブル学習アンサンブル学習
アンサンブル学習
 
機械学習モデルの判断根拠の説明(Ver.2)
機械学習モデルの判断根拠の説明(Ver.2)機械学習モデルの判断根拠の説明(Ver.2)
機械学習モデルの判断根拠の説明(Ver.2)
 
Bayesian Neural Networks : Survey
Bayesian Neural Networks : SurveyBayesian Neural Networks : Survey
Bayesian Neural Networks : Survey
 
データサイエンティスト協会 木曜勉強会 #09 『意志の力が拓くシステム~最適化の適用事例から見たデータ活用システムの現在と未来~』
データサイエンティスト協会 木曜勉強会 #09 『意志の力が拓くシステム~最適化の適用事例から見たデータ活用システムの現在と未来~』データサイエンティスト協会 木曜勉強会 #09 『意志の力が拓くシステム~最適化の適用事例から見たデータ活用システムの現在と未来~』
データサイエンティスト協会 木曜勉強会 #09 『意志の力が拓くシステム~最適化の適用事例から見たデータ活用システムの現在と未来~』
 
[論文紹介] LSTM (LONG SHORT-TERM MEMORY)
[論文紹介] LSTM (LONG SHORT-TERM MEMORY)[論文紹介] LSTM (LONG SHORT-TERM MEMORY)
[論文紹介] LSTM (LONG SHORT-TERM MEMORY)
 
[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction
[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction
[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction
 
相関と因果について考える:統計的因果推論、その(不)可能性の中心
相関と因果について考える:統計的因果推論、その(不)可能性の中心相関と因果について考える:統計的因果推論、その(不)可能性の中心
相関と因果について考える:統計的因果推論、その(不)可能性の中心
 
ベイズ統計入門
ベイズ統計入門ベイズ統計入門
ベイズ統計入門
 
03 「重回帰分析」の入門
03 「重回帰分析」の入門03 「重回帰分析」の入門
03 「重回帰分析」の入門
 
数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理
 
データサイエンス概論第一=3-1 線形代数に基づくデータ解析の基礎
データサイエンス概論第一=3-1 線形代数に基づくデータ解析の基礎データサイエンス概論第一=3-1 線形代数に基づくデータ解析の基礎
データサイエンス概論第一=3-1 線形代数に基づくデータ解析の基礎
 
ガウス過程回帰の導出 ( GPR : Gaussian Process Regression )
ガウス過程回帰の導出 ( GPR : Gaussian Process Regression )ガウス過程回帰の導出 ( GPR : Gaussian Process Regression )
ガウス過程回帰の導出 ( GPR : Gaussian Process Regression )
 
Rで学ぶロバスト推定
Rで学ぶロバスト推定Rで学ぶロバスト推定
Rで学ぶロバスト推定
 
相互情報量を用いた独立性の検定
相互情報量を用いた独立性の検定相互情報量を用いた独立性の検定
相互情報量を用いた独立性の検定
 
知識グラフの埋め込みとその応用 (第10回ステアラボ人工知能セミナー)
知識グラフの埋め込みとその応用 (第10回ステアラボ人工知能セミナー)知識グラフの埋め込みとその応用 (第10回ステアラボ人工知能セミナー)
知識グラフの埋め込みとその応用 (第10回ステアラボ人工知能セミナー)
 
統計的因果推論への招待 -因果構造探索を中心に-
統計的因果推論への招待 -因果構造探索を中心に-統計的因果推論への招待 -因果構造探索を中心に-
統計的因果推論への招待 -因果構造探索を中心に-
 
データサイエンス概論第一=2-1 データ間の距離と類似度
データサイエンス概論第一=2-1 データ間の距離と類似度データサイエンス概論第一=2-1 データ間の距離と類似度
データサイエンス概論第一=2-1 データ間の距離と類似度
 
5分でわかるかもしれないglmnet
5分でわかるかもしれないglmnet5分でわかるかもしれないglmnet
5分でわかるかもしれないglmnet
 
強化学習アルゴリズムPPOの解説と実験
強化学習アルゴリズムPPOの解説と実験強化学習アルゴリズムPPOの解説と実験
強化学習アルゴリズムPPOの解説と実験
 
機械学習工学の進展と課題 2021
機械学習工学の進展と課題 2021機械学習工学の進展と課題 2021
機械学習工学の進展と課題 2021
 

Viewers also liked

「R for Cloud Computing」の紹介
「R for Cloud Computing」の紹介「R for Cloud Computing」の紹介
「R for Cloud Computing」の紹介
Takekatsu Hiramura
 
Tokyor45 カーネル多変量解析第2章 カーネル多変量解析の仕組み
Tokyor45 カーネル多変量解析第2章 カーネル多変量解析の仕組みTokyor45 カーネル多変量解析第2章 カーネル多変量解析の仕組み
Tokyor45 カーネル多変量解析第2章 カーネル多変量解析の仕組み
Yohei Sato
 
Shinyで確率分布を学ぶアプリ作った。あるいは、ShinyでD3.jsを使う方法
Shinyで確率分布を学ぶアプリ作った。あるいは、ShinyでD3.jsを使う方法Shinyで確率分布を学ぶアプリ作った。あるいは、ShinyでD3.jsを使う方法
Shinyで確率分布を学ぶアプリ作った。あるいは、ShinyでD3.jsを使う方法
ksmzn
 

Viewers also liked (12)

「R for Cloud Computing」の紹介
「R for Cloud Computing」の紹介「R for Cloud Computing」の紹介
「R for Cloud Computing」の紹介
 
R45LT
R45LTR45LT
R45LT
 
20151205 Japan.R SparkRとParquet
20151205 Japan.R SparkRとParquet20151205 Japan.R SparkRとParquet
20151205 Japan.R SparkRとParquet
 
Jenkins によるレポートスクリプト管理
Jenkins によるレポートスクリプト管理Jenkins によるレポートスクリプト管理
Jenkins によるレポートスクリプト管理
 
Tokyo r45 beginner_2
Tokyo r45 beginner_2Tokyo r45 beginner_2
Tokyo r45 beginner_2
 
SeekR Annual Search Trends Report 2015
SeekR Annual Search Trends Report 2015SeekR Annual Search Trends Report 2015
SeekR Annual Search Trends Report 2015
 
10分で分かるr言語入門 短縮バージョン 15-0117_upload用
10分で分かるr言語入門 短縮バージョン 15-0117_upload用10分で分かるr言語入門 短縮バージョン 15-0117_upload用
10分で分かるr言語入門 短縮バージョン 15-0117_upload用
 
Tokyor45 カーネル多変量解析第2章 カーネル多変量解析の仕組み
Tokyor45 カーネル多変量解析第2章 カーネル多変量解析の仕組みTokyor45 カーネル多変量解析第2章 カーネル多変量解析の仕組み
Tokyor45 カーネル多変量解析第2章 カーネル多変量解析の仕組み
 
Julia最新情報 2015
Julia最新情報 2015Julia最新情報 2015
Julia最新情報 2015
 
DeployR使ってみた話
DeployR使ってみた話DeployR使ってみた話
DeployR使ってみた話
 
Shinyで確率分布を学ぶアプリ作った。あるいは、ShinyでD3.jsを使う方法
Shinyで確率分布を学ぶアプリ作った。あるいは、ShinyでD3.jsを使う方法Shinyで確率分布を学ぶアプリ作った。あるいは、ShinyでD3.jsを使う方法
Shinyで確率分布を学ぶアプリ作った。あるいは、ShinyでD3.jsを使う方法
 
Estimating the effect of advertising with Machine learning
Estimating the effect of advertising with Machine learningEstimating the effect of advertising with Machine learning
Estimating the effect of advertising with Machine learning
 

前処理のための前処理(Tokyo.R#45)