大量データハンドリングのこつハンドアウト

大量データハンドリングのこつ
大学院共通コース 特別講義
2011/07/07
基礎第一講堂
統計遺伝学分野
山田 亮
• 実験系のデータ量はどんどん増えている
• 実験系が、解析系とデータを共有したり、解
析系に頼らずに自前でハンドリングする必要
も増えている
• 実験系で分量の多いデータを管理することが
必要なのは言うまでもないけれど、その管理
のこつは何だろうか?
複雑な書式
ユーザー フレンドリーな構成
文字ばっかり、大きさも一緒、色もない
テキストファイル
• 拡張子
• “ hoge.txt”
• “ hoge.xls”, “hoge.xlsx”
ヒトも計算機も相互に歩み寄ろう
テキストファイル
データ
AB漢字12
あなたが使う
計算機が使う
AB漢字12
41 42 b4 c1 bb fa 31 32 0a
テキストファイルは、ヒトと計算機の中間
決して計算機寄りではない
テキストファイルの中身
• 「目に見える文字」は「値」
– 記入するもの
• 「目に見えない何か」「読まない何か」は「構
造」
– 書式
「値」
• 「値」には「持ち主」がいる
– 「だれの」
– 「何に関する」
• 「持ち主」
– 「持ち主」は
• 行にする
• 列にする
• 行と列で足りなかったら
「構造」~書式
• テキストファイルが持てる「構造」はシンプル
に
• 「目に見えない何か」「読まない何か」は「構
造」
テキストファイルで構造を作る
• 2種類の「目に見えない何か」「読まない何
か」は「構造」だけで作る
• 2種類を使う
• 2種類以外は使わない
「目に見えない何か」「読まない何か」
• 2種類以外は使わない、ためには、「目に見
えない何か」「読まない何か」を「すべて知る」
必要がある
• 「読まない何か」
– “,” “.” “:” “;” “#” “$” “%” “&” “?” “\” …
– これは「見えるから『簡単』」
「目に見えない何か」
• 「空白文字」
あ
い
う
え
え
あ
い
う
2種類を使って、構造を作る
• 「改行文字」が1種類
– 改行文字をつなげると、「繰り返して改行する」
– 「改行文字」1個分が大切
• あと1種類だけ
– 「空白文字」をつなげると、『個数』に該当する構
造が生じる
– 「空白文字」1個分に意味を持たせる
– 「タブ」
– 「カンマ」
タブ区切りのテキストファイル
カンマ区切りのテキストファイル
• エクセルファイルを
– タブ区切りのテキストファイルで保存する
– カンマ区切りのテキストファイルで保存する
• テキストを
– タブ区切りのテキストファイルから開く
– カンマ区切りのテキストファイルから開く
ファイルの内容を
『2種類の空白文字』だけで
書式にできたか?
• 「値」は行列の番地で指定できる
• 『どの行列番地に何の「値」が入っているか』、
をファイルを開かずに言えるかどうかでチェッ
ク
• ファイルを開いて、「値」を見たら、その「行列
番地」を確認したら、その値の意味を説明で
きるかどうかでチェック
• ヒトとしてのあなたにとって便利なもの、うれし
いものは、たいてい、「あなたの人間性に訴え
ている」
• →計算機は嫌い
「絵画」に特徴的なこと
•
•
•
•
•
•
「枠」表示
「色表示」
「線」による意味づけ
「空白の量(長さ・面積)」による見栄えの調整
「矢印」
「吹き出しコメント」:もってのほか
データ処理の特徴から考える
• 人間が得意で計算機が苦手なこと
– 人間は、「絵画」情報を「総合的」に判断するのが
得意
– 計算機は「絵画」情報を「総合的」に判断するの
が苦手
• 人間が苦手で計算機が得意なこと
– 人間は、「繰り返し」「やり直し」が嫌い(やるのを
拒否する)
– 計算機は、「繰り返し」「やり直し」が好き
• 人間が苦手で計算機が得意なこと、その2
– 人間は粒粒に分解された情報より、それらをある
ルールで統合してあるときに、それを活用する(意味
をつける)ことが得意
– 人間は粒粒な情報を統合する処理自体は苦手
• 特に、いろいろなパターンで統合する処理は嫌い(繰り返し
作業だから)
– 計算機は統合してある情報を粒粒に戻すのが苦手
– 計算機は、粒粒な情報をルールで統合する作業は得
意
• 特に、統合ルールが複数あるときは、その作業が得意
あふれ出る情報の
「持ち主」を確認する
• ファイルの中の値の「持ち主」なら
– ファイルの中に納められるはず
• 「ファイル」が「持ち主」なら
– ファイルの中に納めず、
– ファイルの外に納めればよい
「ファイル」『が』「持ち主」である情報
• その情報は「ファイル」の属性
• 「ファイルの属性」はファイルの外側に
• 「ファイルの外側」
– ファイル名
– ファイルの置き場所
データとは「値」と「構造」を持つもの
• データ~「値」+「構造」を計算機に納めるとき
に使えるものは何か
– ファイルの中身
– ファイルとディレクトリ構成
– ファイルとディレクトリ構成にも「値」と「構造」があ
る
• 「値」:ファイル名、ディレクトリ名
• 「構造」:階層構造・木構造
ディレクトリ構成
ファイルとディレクトリ
•
•
•
•
•
「値」
「構造」
複数のファイル
複数のディレクトリ
階層化したディレクトリ
• これらが一塊で「整理されたデータ」
• 一括して、「固めよう」
– 圧縮は、「小さくする」ことでもあるけれど
– 「まとめあげる」ことでもある
修正したくなった時
• ディレクトリ構成、ファイルがたくさん
• 一部のファイルの一部が書き換えたい
• 「一部の修正」して「更新」するより
• 「全部をコピー」して、「一部」を修正して、時系列管
理・版管理する方がよい
• なぜなら:
– 計算機は、繰り返しが好き・一からやり直すことが好き、
だから
今日、扱わなかった
データの取り扱い方法
データベース
• 「データベースは」たくさんの情報を「しまって」
おいて「出す」のが得意
• すべてのデータを扱いたいときは、「気になっ
たもの」を「出す」だけではだめだから、「大量
データ」のすべてを管理したいときは、ファイ
ル管理から始めるのがよい
ヒトは頭がよく
計算機は着実だ
• 「ヒト」が『データをこう処理すれば』、と思うと
き
– それは、たいてい、猛烈に込み入ったことをやろ
うとしている
着実で
ひたむきで
頑固な
計算機
• 計算機は、「繰り返し」「やり直し」が好き
• 計算機は統合してある情報を粒粒に戻すの
が苦手
• 計算機は、粒粒な情報をルールで統合する
作業は得意
処理をフローに、そしてシンプルに
フローの途中処理をするために工夫
するくらいなら
初めから処理をし直す
ヒトは、「やり直し」が大嫌い
計算機は「やり方」の変更が大嫌い
データの準備
分担する
外注する
共同研究する
いずれにしろ、縦に切
れていることが大事
処理の間の取り決めを
先に決める
中身は分担者に任す
こんなにたくさんのデータ
を
お金を使って
手間暇かけて
算出したし、
「整理」もしたんだから、
あとは「計算機がちょちょ
いとできる」と思えるように、
交通整理をすればいいの
ね。
• 個別に相談?
– 統計遺伝学分野
– 内線 9470
– [email protected]