Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
validateパッケージでデータを検証する / Data Validation with v...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
松村優哉
February 19, 2022
Programming
700
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
validateパッケージでデータを検証する / Data Validation with validate package
松村優哉
February 19, 2022
More Decks by 松村優哉
See All by 松村優哉
はじめての機械学習 / entrance-to-machine-learning2022
y__mattu
2
1.2k
rstanの環境構築 / Set Up rstan
y__mattu
1
1.2k
R言語とGo言語 / R and Go
y__mattu
2
1.1k
はじめての機械学習 / Entrance to Machine Learning
y__mattu
0
830
平均値と中央値の違いについて
y__mattu
1
980
dplyr 1.0.0の新機能 / dplyr 1.0.0
y__mattu
2
10k
Other Decks in Programming
See All in Programming
源内ハンズオン概要編
hideg
0
210
AWS Transform Customによる Spring Boot 2.xから4.xへのVerUp
satoshi256kbyte
2
100
ソフトウェアエンジニアにとっての生成AI - 特性を知って使い倒す / generative ai for software enginner
kishida
7
2.1k
レビュー履歴をAIに食わせて、 Compose移行を加速するs
shihochan
0
210
自動化したのに回らない テスト運用の壁―AI時代の品質責任と生産性
mfunaki
0
480
Claude CodeとAgentCore Gatewayを繋ぐ際の認証認可 / Authentication and authorization when connecting Claude Code with AgentCore Gateway
har1101
2
380
夏だ!祭りだ!祭りとはドメインモデリングでは?
ryugen04
0
390
関東Kaggler会_NVIDIA_Nemotron_コンペ_振り返り
rick_ds
0
720
使いながら育てる Claude Code — 開発フローの1コマンド化 × 繰り返し指摘の自動仕組み化
shiki_kakaku
1
2k
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
230
AI Readyの正体はデータマネジメントだ メダリオン2.0の最前線
freee
PRO
0
380
引き算の組織 ― アウトカムとAIに全振りするために辞めたこと ― / Organization by Subtraction
hirokiyamamoto14
PRO
0
300
Featured
See All Featured
The SEO identity crisis: Don't let AI make you average
varn
0
540
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
ラッコキーワード サービス紹介資料
rakko
1
4.5M
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
480
How GitHub (no longer) Works
holman
316
150k
The agentic SEO stack - context over prompts
schlessera
0
880
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
800
sira's awesome portfolio website redesign presentation
elsirapls
0
340
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
220
SEO for Brand Visibility & Recognition
aleyda
0
4.7k
Designing Experiences People Love
moore
143
24k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Transcript
validate パッケージで データを検証する @y__mattu 2022-02-19 HiRoshima.R #7 LT
誰︖ • 松村優哉 • 出⾝: 計量経済、ベイズ統計、 因果推論 • お仕事: データサイエンティスト&
データエンジニア in 広告会社 • ⾔語: R, Python • Tokyo.R, Japan.R運営 • 近況:2⽉に転職しました︕
宣伝 Rユーザのための RStudio[実践]⼊⾨ 第2版 好評発売中!!
今⽇のお話 • 統計的データクリーニングについて • validateパッケージの紹介
データクリーニングとは • データクリーニング≒データ前処理の最も基本的な部分 • 数値表現の統⼀ • ⽇付型の統⼀ • ⽂字列の正規化・前処理 •
⽋測データの特定・補完 • エラーデータの特定・修正 • 今⽇の話題は、エラーデータの特定、つまりデータ検証がメイン 統計的な処理が必要な領域
データ検証の必要性 • データは意図せず変化してしまう • 前処理⼯程のミス • 集計のミス • そもそもデータソースの時点で変なデータが含まれている •
適当なタイミングで、⽬の前のデータが「正しいか」の検証(バリ デーション)を⼊れると良い データの読み込み データの前処理 分析・可視化 処理1 処理2 処理3 検証 検証 検証
validateパッケージ • CRANからインストール • 使うデータをロード
retailersデータ • 架空の⼩売業者の財務データ
check_that()による簡単なチェック ルールを記述。ここでは以下の2つ - 売上⾼は0より⼤きい - 従業員⼀⼈当たりの⼈件費は50(50,000ギルダー)未満
検証結果の可視化
検証ルール作成、適⽤、結果確認の分離 検証 ルール 作成 適⽤ 確認 validate::validator() validate::confront() summary(), validate::aggregate()
ルール 作成 適⽤
検証ルールの作成⽅法(発展編1) • レコード間での⽭盾のチェック • 例: 市と通りが同じなら郵便版後も同じでなくてはならない • 簡単なデータで検証 2レコード⽬が間違い
検証ルールの作成⽅法(発展編1) • レコード間での⽭盾のチェック • 例: 市と通りが同じなら郵便版後も同じでなくてはならない ルールをチルダでつなぐ
検証ルールの作成⽅法(発展編2) • マクロの定義 • ルールが多くなると、似たようなルール(平均が0以上など)が多くなって きて、書くのが⾯倒 := 演算⼦で共通ルールを 作っておけば、再利⽤可能
検証ルールの作成⽅法(発展編3) • 変数グループ • a>=m, b>=mみたいに「m(平均)が0以上」は共通してるので何⾏も書き たくない • 以下の2つは同じ
検証結果をデータフレームとして出⼒ • aggregate() • retailorデータの例に戻る ルール 作成 適⽤ 確認
検証ルールを外部ファイルで定義 • validator()に渡す検証ルールは外部ファイル(yaml)にて定義可能 • ルールが多くなってくるとこちらのほうが便利かも rules.yml
まとめ • データ前処理の途中で検証(バリデーション)をするのは⼤切 • Rでデータ検証ならvalidateパッケージが便利
参考資料 • R⾔語 - データ検証パッケージ "validate” • validateパッケージのドキュメント • 『統計的データクリーニングの理論と実践』
Enjoy!