2016年12月20日火曜日

データ分析と料理

データ分析と料理の共通項 ―下ごしらえ―

私は、休日に料理の腕を振って家族の食事を作ることがあります。先日、鮭のパイ包み焼を作っているときに鮭の小骨を取っていたとき、「データ分析も料理のようだな・・・」という思いが頭の中をよぎりました。
 
料理の下ごしらえは、作る料理によって調理方法が違い下ごしらえも違ってきます。例えば魚料理では、「大きな骨⇒取る取らない」や「小骨⇒取る取らない」とか。鮭のパイ包み焼なら、小骨まできれいに取る工程が必要です。(まあ、小骨を気にしない人もいますが)
これが、焼き魚なら鱗取りをして焼くだけ。必要なら内臓を取れば良く、下ごしらえは料理によって違ってきます。

では、データ分析の下ごしらえ、つまり、データの準備(データ加工)はどうでしょうか。

  • 不整合データ(イレギュラーデータ)の有無チェックを行う
  • 不要データの削除としてカンマやダブルコーテーションの削除
  • 0(ゼロ)埋めデータの作成や空白にする
など、料理でいえば下ごしらえであり、データサイエンティストとしては基本的な作業を行ったうえで分析をします。料理でいえば、作る料理によって下ごしらえの方法を適宜選択しているわけですね。

しかし、データ分析では料理とは違うところもあります。プロジェクト期間が半年を超えるような場合、プロジェクトの途中で、分析精度を高めるために変数を追加したり、最新データで分析するためにデータ期間を延ばすことがあります。

こんな時、プロジェクトが既に進んでいて、思い込みや気の緩みからかチェックがおろそかになり、新しいデータでの分析が進んだ時点で、データ加工の間違いに気づくことがあります。(例えば、分析結果を集約し合計値が合わないなど。)
データサイエンティストとしては失格です。もちろん、お客様に対しては弁解の余地はありません。こんなミスを防ぐには、チェックフローの作成と実施などが求められます。

多様化するテキストマイニングのデータ加工

ところで、最近は新聞記事やTwitter、POSデータなどを基にテキストマイニングなどの分析手法を取り入れて一般消費者の関心ごとの動向、自社商品へのイメージ、商品の購買行動などの分析が行われるようになってきました。
例えば、LDAなどの分析手法に適したデータ加工を行ったうえで分析を行います。

※.LDA: Latent Dirichlet Allocation
LDAとは、文書中の単語の「トピック」を確率的に求める言語モデル。文章など、単語はそれのみで存在しているのではなく、潜在的な言葉のトピック(集合体)となっており同じトピックを持つ単語は同じ文章に出現することを利用して単語の出現を予測する。

新聞のように、文体が整ったデータを利用する場合は比較的精度の高い分析が可能です。しかし、TwitterなどSNSや対談などの話し言葉(口語体)のデータでは、十分な精度を出すまでに至らないのが現状です。
これらを解決するために、コーパス(人間が予め文章の中の単語に、手動で品詞などの情報を付与したテキストの集合でコンピュータを利用したエンジンが学習するためのもの)を作成したうえで形態素解析を行いますが、これらの分析ではトライアンドエラーを重ねながらデータを作成することになります。

従来(今でも主流)のデータ分析は形式などが決まったデータを加工し、不整合データを排除したうえで分析を行っていますが、テキストマイニングでは、分析精度を上げるため、分析を行っている中でデータ加工方法(データ形式)を変更する場合もあります。

データ分析と料理の共通項
―多様なメニューから、最初に具体的なアウトプットを決める―

多様化するデータ分析手法が開発される中では、分析手法に合わせたデータ加工を行う必要が生じます。データサイエンティストは最終アウトプットを具体的にイメージしたうえで、データ加工の流れや加工方法を考え分析を行う必要があります。

料理で言えば作るメニューを決めたうえで、食材の調理手順や調理方法を考えることになります。
データ分析では何を明らかにするかを決定し最終的なアウトプットをイメージしたところで、データ分析手法やデータ加工方法を考えたうえで分析を行うところが、データ分析と料理が共通している点だと感じました。

さて、今日は、ごはん系、麺類系、肉、魚、何にしようかな・・・


投稿者:データサイエンス部 奥村(株式会社アイズファクトリー