選択できるアルゴリズムが多すぎますか?適切な機械学習アルゴリズムを選択する方法

選択できるアルゴリズムが多すぎますか?適切な機械学習アルゴリズムを選択する方法

機械学習は科学であると同時に芸術でもあります。さまざまな機械学習アルゴリズムを見ると、普遍的な解決策や方法は存在しません。実際、機械学習アルゴリズムの選択にはいくつかの要因が影響します。

いくつかの問題は非常に特殊であり、特定の解決策が必要です。たとえば、レコメンデーション システムについて少しでも知っていれば、それが非常に特殊な種類の問題を解決するために使用される、非常に一般的な機械学習アルゴリズムのクラスであることがわかるでしょう。その他の問題は非常にオープンエンドであり、試行錯誤のアプローチが必要になる場合があります (強化学習など)。教師あり学習、分類、回帰などの問題は非常にオープンであり、異常検出やより一般的な予測モデルの構築に使用できます。

[[235017]]

さらに、機械学習アルゴリズムを選択する際に行う決定の一部は、最適化やアルゴリズムの技術的側面とは関係がなく、ビジネス上の決定と関係があります。次に、機械学習アルゴリズムの選択肢を絞り込むのに役立つ要素を見てみましょう。

1. データサイエンスのプロセス

さまざまな機械学習アルゴリズムを調べ始める前に、保有するデータ、直面している問題、関連する制約を明確に理解する必要があります。

1. データを理解する

どのアルゴリズムを使用するかを決定する際には、保有するデータのタイプと形状が重要な役割を果たします。一部のアルゴリズムはより少ないサンプル セットで動作しますが、他のアルゴリズムでは膨大な数のサンプルが必要になります。特定のアルゴリズムは特定の種類のデータに対して機能します。たとえば、Naive Bayes アルゴリズムは分類された入力の処理に特に効果的ですが、欠損値に対してはまったく敏感ではありません。

したがって、次のことを行う必要があります。

(1)データを知る

a. 概要統計とデータ視覚化結果を表示する

  • パーセンテージは、ほとんどのデータの範囲を識別するのに役立ちます。
  • 平均値と中央値は中心傾向を表すことができる
  • 相関係数は強い関係性を示している可能性がある

b. データの視覚化

  • ボックスプロットは外れ値を特定できる
  • 密度プロットとヒストグラムはデータの広がりを示すことができます。
  • 散布図は2値関係を表現できる

(2)データクリーニング

a. 欠損値の処理。欠損データは、モデルによっては他のモデルよりも大きな影響を与えます。欠損データを処理するように設計されたモデルであっても、欠損データに敏感になる可能性があります(一部の変数の欠損データは予測パフォーマンスの低下につながる可能性があります)。

b. 外れ値を処理する方法を選択する

  • 多次元データでは外れ値が非常によく見られます。
  • 一部のモデルは他のモデルよりも外れ値に対する感度が低いです。一般に、ツリー モデルは外れ値の存在に対してそれほど敏感ではありません。ただし、回帰モデル、または方程式を使用するモデルは、外れ値によって大きな影響を受けます。
  • 外れ値は、データ収集が不十分なために発生する場合もあれば、正当な極端な値である場合もあります。

c. データを集約する必要がありますか?

2. データ拡張

(1)特徴エンジニアリングとは、生データからモデリングに使用できるデータを生成するプロセスであり、次のような役割を果たすことができます。

  • モデルの解釈を容易にする(例:ビニング)
  • より複雑な関係を捉える(ニューラルネットワークなど)
  • データの冗長性を減らし、データの次元を減らす(主成分分析(PCA)など)
  • 変数の再スケーリング(標準化や正規化など)

(2)モデルによって特徴エンジニアリングの要件が異なる場合があります。一部のモデルには特徴エンジニアリングが組み込まれています。

3. 問題を分類する

次のステップは問題を分類することです。これは 2 段階のプロセスです。

(1)入力分類別:

  • ラベル付けされたデータがある場合、これは教師あり学習の問題です。
  • ラベル付けされていないデータがあり、その中に有用な構造を見つけたい場合、これは教師なし学習の問題です。
  • 環境と相互作用することで目的関数を最適化したい場合、これは強化学習の問題です。

(2)出力分類別:

  • モデルの出力が(連続した)数値である場合、これは回帰問題です。
  • モデルの出力がクラスである場合、これは分類問題です。
  • モデルの出力が入力データから分割されたクラスターのセットである場合、これはクラスタリングの問題です。
  • 異常を見つけたいですか? この時点で、異常検出の問題に直面しています。

4. 満たすべき制約を理解する

  • どのくらいの量のデータを保存できるかを考慮する必要があります。システムのストレージ容量によっては、数 GB の分類、回帰モデル、またはクラスター分析用の数 GB のデータを保存できない場合があります。たとえば、組み込みシステムではこのような状況に直面します。
  • 予測プロセスの速度に関する要件はありますか? リアルタイム アプリケーションでは、予測結果をできるだけ早く得ることが非常に重要です。たとえば、自動運転の問題では、交通事故を避けるために、アプリケーションはできるだけ早く道路標識を分類する必要があります。
  • 学習プロセスの速度に関する要件はありますか? 場合によっては、モデルを迅速にトレーニングする必要があります。また、異なるデータセットを使用して、モデルをリアルタイムで迅速に更新する必要がある場合もあります。

5. 利用可能なアルゴリズムを見つける

タスクのコンテキストを明確に理解したら、利用可能なツールを使用して、解決しようとしている問題に適した実行可能なアルゴリズムを特定できます。モデルの選択に影響する要因は次のとおりです。

  • モデルはビジネス目標を満たしていますか?
  • モデルにはどの程度のデータ前処理が必要ですか?
  • このモデルの精度はどの程度ですか?
  • モデルはどの程度解釈可能ですか?
  • モデルの実行速度: モデルの構築にはどのくらいの時間がかかりますか? モデルが予測を行うにはどのくらいの時間がかかりますか?
  • モデルはどの程度スケーラブルですか?

モデルの複雑さは、アルゴリズムの選択に影響を与える重要な基準です。一般に、より複雑なモデルには次のような特性があります。

  • 学習と予測にはより多くの特徴に依存します(例:ターゲットを予測するために 2 つの特徴ではなく 10 の特徴を使用します)
  • より複雑な特徴エンジニアリング(多項式特徴、相互作用特徴、主成分の使用など)に依存します。
  • 計算オーバーヘッドが大きい(例えば、1つの決定木ではなく、100の決定木のランダムフォレストが必要)

これに加えて、同じ機械学習アルゴリズムでも、パラメータの数や特定のハイパーパラメータの選択によって、より複雑になる可能性があります。例えば:

  • 回帰モデルには、より多くの機能、つまり多項式項と相互作用項が含まれる場合があります。
  • 決定木の深さは、より深くすることも、より浅くすることもできます。

同じアルゴリズムをより複雑にすると、過剰適合の可能性が高まります。

2. よく使われる機械学習アルゴリズム

1. 線形回帰

これはおそらく機械学習における最も単純なアルゴリズムです。たとえば、出力を分類するのではなく、連続した値を計算する場合は、回帰アルゴリズムを使用できます。したがって、実行中のプロセスの将来の値を予測する必要がある場合は、回帰アルゴリズムを使用します。ただし、特徴が冗長な場合、つまり多重共線性がある場合、線形回帰は安定しません。

線形回帰は次のような状況で考慮できます。

  • ある場所から別の場所へ移動するのにかかる時間
  • 来月の特定商品の売上を予測する
  • 血中アルコール濃度が協調性に与える影響
  • 月間ギフトカード売上を予測し、年間収益見積もりを改善

2. ロジスティック回帰

ロジスティック回帰はバイナリ分類を実行するため、バイナリラベルを出力します。これは、特徴の線形結合を入力として受け取り、それに非線形関数 (シグモイド) を適用するため、ニューラル ネットワークの非常に小さなインスタンスになります。

ロジスティック回帰ではモデルを正規化するためのさまざまな方法が提供されているため、ナイーブ ベイズ アルゴリズムのように、特徴が相関しているかどうかを心配する必要はありません。このモデルには優れた確率的解釈もあります。決定木やサポート ベクター マシンとは異なり、新しいデータに対応するためにモデルを簡単に更新できます。確率的フレームワークを使用したい場合、または将来的にさらに多くのトレーニング データをモデルにすばやく組み込むことができるようにしたい場合は、ロジスティック回帰アルゴリズムを使用できます。ロジスティック回帰は、予測結果の背後にある要因を理解するのにも役立ちますが、完全にブラックボックスな方法ではありません。

ロジスティック回帰アルゴリズムは、次のような状況で検討できます。

  • 顧客離脱の予測
  • 信用スコアリングと不正検出
  • マーケティング活動の有効性を評価する

3. 決定木

決定木が単独で使用されることはほとんどありませんが、ランダム フォレストや勾配ブースティング ツリーなどのさまざまな決定木を組み合わせて、非常に効率的なアルゴリズムを作成できます。

決定木は特徴の相互作用を簡単に処理し、非パラメトリック モデルであるため、外れ値やデータが線形に分離可能かどうかを心配する必要はありません。決定木アルゴリズムの欠点の 1 つは、オンライン学習をサポートしていないため、新しいサンプルを使用する場合は、決定木を再構築する必要があることです。決定木のもう 1 つの欠点は、簡単に過剰適合してしまうことです。この場合、ランダム フォレスト (またはブースト ツリー) などのアンサンブル学習法が役立ちます。決定木には大量のメモリスペースも必要です(特徴が多ければ多いほど、決定木はより深く、より大きくなります)

意思決定ツリーは、さまざまなアクション パスの中から選択するのに役立ちます。

  • 投資決定を下す
  • 顧客離脱の予測
  • 銀行融資の返済を滞納する可能性のある人を特定する
  • 構築と購入のオプションから選択
  • 営業マネージャーの資格審査

4. K平均法

場合によっては、データのラベル情報がまったくなく、オブジェクトの特性に基づいてラベルを付けることが目的となることもあります。この種の問題はクラスタリングタスクと呼ばれます。クラスタリング アルゴリズムは、次のような状況で使用できます。たとえば、大規模なユーザー グループがあり、共通するいくつかの属性に基づいてユーザーを特定のグループに分割したい場合などです。

問題の説明に次のような質問がある場合: たとえば、個人のグループの構成を調べる、何かをグループに入れる、特定のグループを調べるなど。このとき、クラスタリング アルゴリズムを使用する必要があります。

この方法の最大の欠点は、K 平均法アルゴリズムではデータに含まれるクラスターの数を事前に知る必要があるため、最終的に定義するクラスターの最大数 (K) を「推測」するために多くの実験が必要になる可能性があることです。

5. 主成分分析(PCA)

主成分分析はデータの次元を削減できます。場合によっては、さまざまな特徴があり、これらの特徴間の相関関係が高く、大量のデータを使用するとモデルが過剰適合する可能性があります。このとき、主成分分析 (PCA) 手法を使用できます。

主成分分析 (PCA) が機能する主な要因は、低次元のサンプル表現に加えて、さまざまな変数の同期した低次元表現も提供する点です。同期サンプルと変数の表現により、サンプルのセットを特徴付ける変数を視覚的に見つける方法が提供されます。

6. サポートベクターマシン

サポート ベクター マシン (SVM) は、データが 2 つのカテゴリに分かれている場合に、パターン認識や分類の問題で広く使用されている教師あり機械学習手法です。

サポートベクターマシンは精度が高く、過剰適合を防ぐための優れた理論的保証を提供します。適切なカーネル関数を使用すると、データが基本(低次元)特徴空間で線形に分離できない場合でも、カーネル関数は適切に機能します。サポート ベクター マシンは、入力が非常に高次元の空間にあるのが普通であるテキスト分類の問題で非常に人気があります。ただし、SVM はメモリを大量に消費するアルゴリズムであり、解釈が難しく、調整も困難です。

サポート ベクター マシンは、次のような実際のアプリケーションで使用できます。

  • 糖尿病などの一般的な病気を持つ人を見つける
  • 手書き文字認識
  • テキスト分類 - トピック別に記事を分類する
  • 株式市場の価格予測

7. ナイーブベイズ

これは、ベイズの定理に基づいた分類手法であり、構築が簡単で、大規模なデータセットでもうまく機能します。単純さに加えて、ナイーブベイズは、はるかに複雑な分類方法よりも優れたパフォーマンスを発揮すると言われています。 CPU とメモリのリソースが限られている場合も、Naive Bayes は適切な選択肢です。

ナイーブベイズは非常にシンプルで、ただ大量のカウントを行うだけです。ナイーブベイズの条件付き独立性の仮定が成り立つ場合、ナイーブベイズ分類器はロジスティック回帰などの識別モデルよりも速く収束するため、必要なトレーニングデータが少なくなります。ナイーブ ベイズ分類器は、ナイーブ ベイズの仮定が成り立たない場合でも、多くの場合、良好なパフォーマンスを発揮します。パフォーマンスに優れた高速でシンプルなモデルが必要な場合は、Naive Bayes が適しています。このアルゴリズムの最大の欠点は、特徴間の相互作用を学習できないことです。

Naive Bayes を使用できる実際のアプリケーションをいくつか紹介します。

  • 感情分析とテキスト分類
  • NetflixやAmazonのような推奨システム
  • スパムの識別
  • 顔認識

8. ランダムフォレスト

ランダム フォレストは、決定木の集合体です。大規模なデータセットで回帰問題と分類問題の両方を解決でき、何千もの入力変数の中から最も重要な変数を見つけるのにも役立ちます。ランダム フォレストは拡張性が高く、あらゆる次元のデータに適用でき、一般的にパフォーマンスがかなり良好です。また、データ自体に関する最小限の知識で、あらゆる次元やあらゆるデータに適切に拡張できる遺伝的アルゴリズムもあり、その最も単純な実装は微生物遺伝的アルゴリズムです。ただし、ランダム フォレストは (パラメーター設定に応じて) ゆっくりと学習するため、このアプローチでは生成モデルを反復的に改善することはできません。

ランダム フォレストは、次のような実際のアプリケーションで使用できます。

  • 高リスク患者の予測
  • 生産における部品の故障を予測する
  • ローン不履行者の予測

9. ニューラルネットワーク

ニューラル ネットワークは、ニューロン間の接続の重みで構成されます。これらの重みはバランスが取られ、データ ポイントごとに学習されます。すべての重みがトレーニングされると、ニューラル ネットワークを使用して、新しいデータ ポイントに対して回帰が必要な場合に分類結果または特定の値を予測できます。ニューラル ネットワークを使用すると、モデルをトレーニングする前に予測不可能な複雑な特徴エンジニアリングを実行する必要なく、非常に複雑なモデルをトレーニングしてブラック ボックス メソッドとして使用できます。 「ディープメソッド」と組み合わせることで、さらに予測不可能なモデルを使用して新しいタスクを達成できるようになります。たとえば、最近ではディープ ニューラル ネットワークを使用して、物体認識タスクの結果を大幅に改善しています。ディープラーニングは、特徴抽出などの教師なし学習タスクにも適用され、人間の介入を少なくして生の画像や音声から特徴を抽出することもできます。

一方、ニューラルネットワークは説明が難しく、パラメータ設定も非常に複雑です。さらに、ニューラル ネットワーク アルゴリズムは、リソースとメモリの両方を大量に消費します。

3. SCIKITリファレンスマニュアル

Scikit 学習では、適切なアルゴリズムを選択するのに役立つ、非常に詳細かつ明確に説明されたフローチャートが提供されます。この図は非常に便利だと思います。

IV. 結論

一般的に言えば、上で紹介したポイントに基づいていくつかのアルゴリズムを選別することができますが、最初はどの方法が最適であるかを知ることは困難です。アルゴリズムを選択するプロセスを複数回繰り返す必要があります。特定した潜在的に優れた機械学習アルゴリズムにデータを入力し、これらのアルゴリズムを並列または直列に実行し、最後にアルゴリズムのパフォーマンスを評価して最適なアルゴリズムを選択します。

*** で私が言いたいのは、現実の問題に対する正しい解決策を見つけることは、多くの場合、数学的手法を適用することだけの問題ではないということです。これには、ビジネスニーズ、規則や規制、利害関係者の懸念を理解し、多くの専門知識を持つことが求められます。機械学習の問題を解決する際にこれらの問題を組み合わせてバランスをとることができることが重要であり、これを実行できる人が最大の価値を生み出すことができます。

オリジナルリンク: https://hackernoon.com/choosing-the-right-machine-learning-algorithm-68126944ce1f

[この記事は51CTOコラム「Machine Heart」、WeChatパブリックアカウント「Machine Heart(id: Almosthuman2014)」からのオリジナル記事です]

この著者の他の記事を読むにはここをクリックしてください

<<:  Keras 対 PyTorch: どちらが「ナンバーワン」のディープラーニング フレームワークでしょうか?

>>:  なぜ人工知能は第四次産業革命と呼ばれるのでしょうか?

ブログ    
ブログ    

推薦する

地球は思考しており、人間は単なるニューロンです。科学者は初めて「惑星知性」を提唱した

生態圏が進化すると、地球は独自の生命を獲得しました。惑星が独自の生命を持つことができるなら、独自の知...

[ディープラーニングシリーズ] PaddlePaddle 手書き数字認識

先週、ディープラーニングの分散操作モードに関する情報を検索していたところ、偶然 PaddlePadd...

自動運転技術が盛んに進歩していますが、実際に道路上で実用化されるまでにはどれくらい時間がかかるのでしょうか?

自動運転の概念は、誕生以来、常に資本家や技術起業家が好む分野のひとつでした。新しいインフラと5G商用...

AI対詐欺: フィッシング戦術の新時代の幕開け

社会が人工知能の時代に入り、機械が生活のほぼあらゆる側面に浸透する中、攻撃者が AI をどの程度悪用...

人間と機械の統合はなぜ難しいのでしょうか?

時間と空間を結びつけるのは速度であり、エネルギーと質量を結びつけるのも速度です。事実と価値を結びつけ...

転移学習の魔法:ディープラーニングは誰でも利用できるようになる

1 年前、私は数人の友人と機械学習 API を構築するためのオープンソース プラットフォームである ...

デジタル外交はAI外交へと進化している。どのような課題に直面するのだろうか?

外交活動に関して、近年最も議論されている概念は「デジタル外交」であろう。 2010年には、当時米国務...

江長建、世界初のサイボーグと対談 - JD Smart Community 2.0 全国ローンチカンファレンス ライブプレビュー

[[374688]] 「半オーク」「半魚」… SF映画、漫画、おとぎ話では、それは驚くことではありま...

...

...

患者が人工知能から得られる恩恵

今日では、データの分析や解釈、問題解決の支援など、以前は人間が行っていたタスクを実行する高度なマシン...

...

...

...