データを使える状態にする「前処理」って何?
前処理は、第1話で紹介した CRISP-DM において、ビジネス理解、データの理解、データの準備の3ステップにあたります。
STEP1.ビジネス理解
まずは、ビジネス理解についてです。解決したい問題設定におけるビジネスを理解していなければ、どのデータを使えばいいか見当がつきません。身近に詳しい人がいれば、ヒアリングすることをオススメします。ここでは、「原因と結果」について深く聞きましょう。
原因が明確でない場合は、業務のフローを順に辿るとビジネスの理解が深まり、必要なデータの見当がつきます。業務の過程で生まれる記録が「データ」であり、予測対象に必要な「原因」を突き止められる可能性が高いです。
STEP 2.データの理解
次にデータの理解です。必要なデータを入手しますが、機械学習を始めるにあたり、この段階で壁にぶつかることが多いです。業務フローの中で発生するデータは人手で入力されることが多く、全ての項目に正しく入力されているとは限りません。
別の項目に誤って入力されてしまっているケースもあるし、そもそも入力すらされていないケースもあります。実際のデータを丁寧に見ていき、これらのデータが何を意味しているかを解読していきます。
前のステップで業務フローをヒアリングしていれば、項目が意味するところの推察ができるかと思います。不明な点があれば、質問を逐次していきます。
また、Webサービスや機械によって書き込まれるデータをデータベースから取り出して使うこともあります。システムのためのデータであるので、分析がしやすい形式になっているとは限りません。
IDやコードのように直接的に意味を持たない項目の場合は、関連するテーブルと結合が必要です。歴史あるサービスになるほど複雑なデータ構造を持つことが多いので、サーバーサイドエンジニアに聞くのみでなく、営業やマーケティングチームなど他の部署とのやりとりが発生することもあります。
ビジネス理解とデータの理解は関係性が非常に深いので、完全に分離できるものではなく、交互に実施します。
STEP 3.データの準備
前処理の最後の工程は、データの準備です。データベースに格納されている場合は、データベースを操作するSQLという言語を用います。SQLを使うことによって、データベースにあるデータを取得したり、加工したりすることができます。
ソフトウェアエンジニアは、SQLを駆使してデータを処理することでシステムを構築します。単一のテーブルでデータを集められない場合は、複数のテーブルと結合。結合処理もSQLで書くことができます。
Excelなどのファイルで、データが記録されていることも多いです。人間にとって読みやすい形式で保存されていることが一般的ですが、コンピュータが処理しやすいとは限りません。セル結合、セル内改行、1 行目の空欄、複数のシートに分割されているなど、さまざまなケースがあります。これらの一つずつに対応しましょう。
「前処理」は、時間がかかるが大切な工程
前処理は非常に時間がかかる作業ではありますが、他の職種からは理解されにくい工程でもあります。データがあるのに分析が始まらないことに疑問を感じる人も多いので、この工程にある開発者は仕事の負荷が高くなりがちです。
日頃から、ビジネスやデータに関する理解を深めていくことで負荷を軽減でき、データの加工に必要な技術やツールを整えていく努力が求められます。
次回は、データの加工に必要なソフトウェアライブラリの一つである Pandas を紹介します。お楽しみに。
第1話 機械学習の仕事内容って?実はコードを書くだけじゃない!
第2話 人工知能、機械学習、ディープラーニングの違いとは?
第3話 機械学習の活用事例!建設機械や回転寿司屋でも活用されている!?
わかばちゃんが登場する書籍いろいろ