データセットがあるとき、例えば説明変数 x と目的変数 y の間で機械学習によりモデル y = f(x) を構築します。モデルに x の値を入力することで、y の値を予測でき、予測結果を活用します。このように機械学習によりデータセットを有効活用できます。
データ解析や機械学習をするときに最も重要なことは、データ解析や機械学習によって得られた結果を何に使用するか、目的を明確にすることです。目的が異なると、データ解析・機械学習の手法や、やり方や手順などが異なることがあります。目的に合致しない、誤ったやり方で進めてしまうと、解析結果はよく見える一方で、結局目的を達成できない、といったことが起きてしまいます。
例えば、データ解析や機械学習において、モデルの予測精度を向上させようとすることがありますし、そのような研究もあります。このとき、モデルの予測精度を評価する必要がありますが、何をもってモデルの予測精度とするのかは、データ解析や機械学習の目的によって異なります。
例えば材料設計において、材料のサンプルを集めてきて、材料の合成条件 x と実験・分析結果 (材料の物性や活性など) y との間でモデル y = f(x) を構築することで、y の値がよくなるような合成条件を提案できます。ただ、合成条件を提案すると一言でいっても、合成条件として既存の原料の (新たな) 組み合わせを設計することが目的なのか、新たな原料を用いるときにその種類や量を設計するのが目的なのかによって、モデルの予測精度の評価方法は異なります。
新たな原料を設計したいときは、モデルを評価するときにも、トレーニングデータで用いていない新たな原料を、テストデータでのみ用いて予測したときに、どれくらいの誤差で予測できるかを検証しなければいけません。ある原料について、トレーニングデータとテストデータのどちらにもあると、テストデータで評価された予測精度は、目的には合致しません。このときの予測精度がいくら高くても、目的達成とはなんら関係ないわけです。
このように、データ解析や機械学習をすることで達成したい目的によって、解析のやり方は異なりますので注意が必要です。機械学習をやっているといつも感じますが、機械学習の結果をよく見せることは、いくらでもできます。ただその結果が、機械学習で達成したい目的に対して、どれくらい寄与しているかは、いつも考える必要があります。よく見える結果でも、まったく目的に寄与していなければ意味がありませんし、それほどよくなさそうな結果でも、目的に寄与しているのであれば、非常に重要な結果となります。
データ解析や機械学習に慣れてきたら、一般的な手順をそのままするだけでなく、解析の目的を考えながら、手順ややり方について再考して進めるとよいと思います。
以上です。
質問やコメントなどありましたら、twitter, facebook, メールなどでご連絡いただけるとうれしいです。