なぜ分析過程を理解する必要があるのか
近年の人工知能やデータサイエンスのブームにより、機械学習技術に注目が集まっています。機械学習技術をアルゴリズムから実装し、システムへ組み込むとなるとハードルが高いですが、OSSの機械学習ライブラリが充実してきたことで、既存技術を利用するだけであれば、容易に機械学習技術を活用したシステムを開発することができるようになりました。Web上には多くのサンプルコードが公開されており、それらをコピー&ペーストするだけでも何らかの結果を得ることができてしまいます。
しかし、機械学習技術を利用してデータ分析を行う際、分析のやり方に問題があると望ましい結果を得られないだけでなく、想定外の悪影響を及ぼす可能性があります。
そこで、機械学習ライブラリを利用してデータ分析を行って適切な結果を得るためには、どのような手順を取り、どのような点に注意すれば良いかを説明します。データ分析のプロセスや注意点について、できるだけ広く浅く取り上げることで、読者のみなさんが実際に分析を行う際や、他者が行った分析結果を確認するときに、必要に応じて何を調べれば良いかが分かるようになることを目指します。そのため、詳細な説明を行わない話題もあります。別途調べていただく必要があるかもしれませんが、あらかじめご了承ください。
本稿の前提条件
はじめに、本稿で説明するデータ分析プロセスの前提条件を確認します。
第一に、データ分析を行う目的はすでに決まっており、その目的自体が妥当なものであるとします。本来は、最初にどのような目的に対してどのようなデータ分析を行おうとしており、その方針が妥当かどうかをよく検討する必要があります。
第二に、データ分析の目的は、ある変数(目的変数:次項で説明)を、それとは別の変数(説明変数:次項で説明)から予測する予測モデルを作成し、将来においては未知である目的変数を、既知の説明変数から予測し、その予測結果をビジネスに活用するため、とします。予測タスクには、お店の売上金額の予測(回帰)や、写真に写っている動物が犬なのか猫なのかの予測(分類)などがあります。タスクはその他にも、データをいくつかのグループに分けるクラスタリングや、他の多数のデータと振る舞いが異なるデータを検出する異常検知など、多種多様なものがあります。
最後に、過去から現在においての目的変数、および目的変数を予測するのに適当だと判断された説明変数はすでに用意されているとします。データ分析を行う際には、目的に適したデータを事前に検討するとともに、収集することが非常に重要です。
用語について
用語について事前に認識を共有しておきましょう。図1は分析に利用するための一般的なデータ形式を表したものです。何らかの会員向けサービスにおける、会員情報のようなものをイメージしてください。列に相当するものを「変数」と呼びます。各行を「観測値」と呼びます。
分析の目的が、ある変数をその他の変数から予測することである場合は、予測したい変数を「目的変数」、予測のために利用するその他の変数を「説明変数」と呼びます。年齢のように数値で表される変数を量的変数、加入プランのように離散的なカテゴリを表す変数を質的変数、またはカテゴリ変数と呼びます。
それでは本題に入っていきましょう。