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

ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learningゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement LearningPreferred Networks
 
Hidden technical debt in machine learning systems(日本語資料)
Hidden technical debt in machine learning systems(日本語資料)Hidden technical debt in machine learning systems(日本語資料)
Hidden technical debt in machine learning systems(日本語資料)Ogushi Masaya
 
グラフィカルモデル入門
グラフィカルモデル入門グラフィカルモデル入門
グラフィカルモデル入門Kawamoto_Kazuhiko
 
なぜベイズ統計はリスク分析に向いているのか? その哲学上および実用上の理由
なぜベイズ統計はリスク分析に向いているのか? その哲学上および実用上の理由なぜベイズ統計はリスク分析に向いているのか? その哲学上および実用上の理由
なぜベイズ統計はリスク分析に向いているのか? その哲学上および実用上の理由takehikoihayashi
 
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」Ken'ichi Matsui
 
よくわかるフリストンの自由エネルギー原理
よくわかるフリストンの自由エネルギー原理よくわかるフリストンの自由エネルギー原理
よくわかるフリストンの自由エネルギー原理Masatoshi Yoshida
 
機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)Kota Matsui
 
PRML輪読#6
PRML輪読#6PRML輪読#6
PRML輪読#6matsuolab
 
深層強化学習でマルチエージェント学習(前篇)
深層強化学習でマルチエージェント学習(前篇)深層強化学習でマルチエージェント学習(前篇)
深層強化学習でマルチエージェント学習(前篇)Junichiro Katsuta
 
異次元のグラフデータベースNeo4j
異次元のグラフデータベースNeo4j異次元のグラフデータベースNeo4j
異次元のグラフデータベースNeo4j昌桓 李
 
SQLまで使える高機能NoSQLであるCouchbase Serverの勉強会資料
SQLまで使える高機能NoSQLであるCouchbase Serverの勉強会資料SQLまで使える高機能NoSQLであるCouchbase Serverの勉強会資料
SQLまで使える高機能NoSQLであるCouchbase Serverの勉強会資料樽八 仲川
 
実践で学ぶネットワーク分析
実践で学ぶネットワーク分析実践で学ぶネットワーク分析
実践で学ぶネットワーク分析Mitsunori Sato
 
道具としての機械学習:直感的概要とその実際
道具としての機械学習:直感的概要とその実際道具としての機械学習:直感的概要とその実際
道具としての機械学習:直感的概要とその実際Ichigaku Takigawa
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理Taiji Suzuki
 
【DL輪読会】"Secrets of RLHF in Large Language Models Part I: PPO"
【DL輪読会】"Secrets of RLHF in Large Language Models Part I: PPO"【DL輪読会】"Secrets of RLHF in Large Language Models Part I: PPO"
【DL輪読会】"Secrets of RLHF in Large Language Models Part I: PPO"Deep Learning JP
 
『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会takehikoihayashi
 
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介Preferred Networks
 
数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理Taiji Suzuki
 
Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門Shuyo Nakatani
 

What's hot (20)

ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learningゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
 
Hidden technical debt in machine learning systems(日本語資料)
Hidden technical debt in machine learning systems(日本語資料)Hidden technical debt in machine learning systems(日本語資料)
Hidden technical debt in machine learning systems(日本語資料)
 
グラフィカルモデル入門
グラフィカルモデル入門グラフィカルモデル入門
グラフィカルモデル入門
 
なぜベイズ統計はリスク分析に向いているのか? その哲学上および実用上の理由
なぜベイズ統計はリスク分析に向いているのか? その哲学上および実用上の理由なぜベイズ統計はリスク分析に向いているのか? その哲学上および実用上の理由
なぜベイズ統計はリスク分析に向いているのか? その哲学上および実用上の理由
 
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
 
よくわかるフリストンの自由エネルギー原理
よくわかるフリストンの自由エネルギー原理よくわかるフリストンの自由エネルギー原理
よくわかるフリストンの自由エネルギー原理
 
機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)
 
PRML輪読#6
PRML輪読#6PRML輪読#6
PRML輪読#6
 
深層強化学習でマルチエージェント学習(前篇)
深層強化学習でマルチエージェント学習(前篇)深層強化学習でマルチエージェント学習(前篇)
深層強化学習でマルチエージェント学習(前篇)
 
異次元のグラフデータベースNeo4j
異次元のグラフデータベースNeo4j異次元のグラフデータベースNeo4j
異次元のグラフデータベースNeo4j
 
SQLまで使える高機能NoSQLであるCouchbase Serverの勉強会資料
SQLまで使える高機能NoSQLであるCouchbase Serverの勉強会資料SQLまで使える高機能NoSQLであるCouchbase Serverの勉強会資料
SQLまで使える高機能NoSQLであるCouchbase Serverの勉強会資料
 
実践で学ぶネットワーク分析
実践で学ぶネットワーク分析実践で学ぶネットワーク分析
実践で学ぶネットワーク分析
 
道具としての機械学習:直感的概要とその実際
道具としての機械学習:直感的概要とその実際道具としての機械学習:直感的概要とその実際
道具としての機械学習:直感的概要とその実際
 
大規模凸最適化問題に対する勾配法
大規模凸最適化問題に対する勾配法大規模凸最適化問題に対する勾配法
大規模凸最適化問題に対する勾配法
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理
 
【DL輪読会】"Secrets of RLHF in Large Language Models Part I: PPO"
【DL輪読会】"Secrets of RLHF in Large Language Models Part I: PPO"【DL輪読会】"Secrets of RLHF in Large Language Models Part I: PPO"
【DL輪読会】"Secrets of RLHF in Large Language Models Part I: PPO"
 
『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会
 
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
 
数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理
 
Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門
 

Viewers also liked

「R for Cloud Computing」の紹介
「R for Cloud Computing」の紹介「R for Cloud Computing」の紹介
「R for Cloud Computing」の紹介Takekatsu Hiramura
 
20151205 Japan.R SparkRとParquet
20151205 Japan.R SparkRとParquet20151205 Japan.R SparkRとParquet
20151205 Japan.R SparkRとParquetRyuji Tamagawa
 
Jenkins によるレポートスクリプト管理
Jenkins によるレポートスクリプト管理Jenkins によるレポートスクリプト管理
Jenkins によるレポートスクリプト管理Tatsuya Tojima
 
SeekR Annual Search Trends Report 2015
SeekR Annual Search Trends Report 2015SeekR Annual Search Trends Report 2015
SeekR Annual Search Trends Report 2015Takekatsu Hiramura
 
10分で分かるr言語入門 短縮バージョン 15-0117_upload用
10分で分かるr言語入門 短縮バージョン 15-0117_upload用10分で分かるr言語入門 短縮バージョン 15-0117_upload用
10分で分かるr言語入門 短縮バージョン 15-0117_upload用Nobuaki Oshiro
 
Tokyor45 カーネル多変量解析第2章 カーネル多変量解析の仕組み
Tokyor45 カーネル多変量解析第2章 カーネル多変量解析の仕組みTokyor45 カーネル多変量解析第2章 カーネル多変量解析の仕組み
Tokyor45 カーネル多変量解析第2章 カーネル多変量解析の仕組みYohei Sato
 
Julia最新情報 2015
Julia最新情報 2015Julia最新情報 2015
Julia最新情報 2015Kenta Sato
 
DeployR使ってみた話
DeployR使ってみた話DeployR使ってみた話
DeployR使ってみた話Kazuya Wada
 
Shinyで確率分布を学ぶアプリ作った。あるいは、ShinyでD3.jsを使う方法
Shinyで確率分布を学ぶアプリ作った。あるいは、ShinyでD3.jsを使う方法Shinyで確率分布を学ぶアプリ作った。あるいは、ShinyでD3.jsを使う方法
Shinyで確率分布を学ぶアプリ作った。あるいは、ShinyでD3.jsを使う方法ksmzn
 
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 learningShota Yasui
 

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)