ナード戦隊データマン

データサイエンスを用いて悪と戦うぞ

機械学習アルゴリズムを選択するための8つの基準

データサイエンスを学んでいると、様々な機械学習アルゴリズムがあることを知ることになります。私のような初学者は、きれいで小さなデータセットで練習することが多く、ニューラルネットワークディープラーニングのような強力な手法を使いがちになってしまいます。しかし、現実問題としていくつかの基準に基づいて選択すべきです。ここでは、その基準を考えます。

問題の種類

どのような問題に機械学習を使うのかによって、使えるアルゴリズムが異なります。教師あり学習の場合、典型的には以下の問題があります。

  • 数値予測
  • 2項分類
  • 多項分類

線形性

線形性をもっているか否かによってアルゴリズムを使い分けることができます。 線形性をもったモデルは記述的にもわかりやすく、モデルの理解もしやすいといえます。多くの場合、最初に試されるのは、線形回帰です。

実行時間

アルゴリズムの実行時間には大きな差があります。実行時間がかかるほど正確性が増す可能性はありますが、一概にそうとも言えません。

データが多いほど実行時間は増えていくため、最初は実行時間のかからないアルゴリズムから試したほうがよいでしょう。

正確性

アルゴリズムの精度は異なっており、ランダムフォレストやニューラルネットワークは高い精度を出すことが多いです。

一方で、正確性の高いアルゴリズムは実行時間がかかる場合があり、精度が高いものを使うのが良いとは必ずしも言えません。

解釈の容易さ

多くの場合、ビジネスのためにモデルを解釈する必要があります。決定木はオーバーフィッティングしやすいのですが、解釈のしやすさから選ばれやすいアルゴリズムです。結果を説明する責任がある場合、ある程度正確性を諦めて理解しやすさを優先することがあるでしょう。場合によっては、法的理由から説明を要求されます。

汎化性能

汎化性能はモデルの複雑性と関係することが多いため、必ずしもアルゴリズムだけの問題ではありません。しかし、分類問題において、SVMと決定木を比較してみた場合では、SVMのほうが汎化性能が高くなりやすかったりします。

交差検証を行ってあるアルゴリズムがオーバーフィッティングしてしまうのであれば、別のアルゴリズムを使うことを検討したほうが良いでしょう。

自分自身のアルゴリズムに対する理解

アルゴリズムをちゃんと理解できているかどうか、という点は人のもつ問題ではありますが、アルゴリズムを使いこなすために徹底的な知識が要求されるケースがあります。

例えば、線形回帰を使いたい場合、特徴量をどのように選択するのかについて形式的な方法がありますが、特徴量が膨大な場合、ステップワイズ法について知らなければとても時間がかかってしまうでしょう。

実運用時のコスト

実運用時のコストは、学習時間よりも、評価時間やモデル保存サイズのほうが大きな影響を与えます。言い換えれば、新しいデータを評価するための時間がかかりすぎるかどうか、メモリをどの程度消費するかによって、実運用時のコストは変化します。

参考

  1. Microsoft Azure Machine Learning Studio の機械学習アルゴリズム チート シート docs.microsoft.com

  2. Doing Data Science - Cathy O'Neil shop.oreilly.com