選択が難しいですか?最適な機械学習アルゴリズムの選び方を1つの記事で解説

選択が難しいですか?最適な機械学習アルゴリズムの選び方を1つの記事で解説

機械学習アルゴリズムを適用して、関心のある問題を解決したいと考えている初心者/中級のデータ サイエンティスト/アナリストであれば、この記事はあなたのためのものです。

[[192535]]

編者:江凡波、韓暁陽、銭天培

さまざまな機械学習アルゴリズムに直面する初心者にとっての典型的な質問は、「どのアルゴリズムを使用すればよいのか?」です。この質問に対する答えは、次のような多くの要因によって異なります。

  • データのサイズ、品質、性質。
  • 許容可能な計算時間。
  • タスクの緊急性。
  • データを使って何をしたいですか?

経験豊富なデータ サイエンティストであっても、さまざまなアルゴリズムを試してみなければ、どのアルゴリズムが最適かを判断することはできません。ここでは、万能のアプローチを提唱しているわけではありませんが、いくつかの明確な要因に基づいて、最初にどのアルゴリズムを試すべきかについてのガイダンスを提供したいと考えています。

1. 機械学習アルゴリズムのチートシート

この機械学習アルゴリズムのチートシートは、さまざまな機械学習アルゴリズムの中から、特定の問題に適したものを選択するのに役立ちます。この記事では、このチートシートの使い方について詳しく説明します。

このチートシートは初級レベルのデータ サイエンティストやアナリスト向けに設計されているため、アルゴリズムについて説明する際にはいくつかの単純化された仮定を立てます。

ここで推奨されるアルゴリズムは、多数のデータ サイエンティスト、機械学習の専門家、開発者からのフィードバックと経験的ガイダンスをまとめたものです。 まだ合意に達していない問題がいくつかありましたが、それらについては共通点を強調し、相違点を調整しようと努めました。

ライブラリが拡張され、より完全なメソッドのセットが含まれるようになると、他のアルゴリズムも徐々に追加される予定です。

2. チートシートの使い方

図のパスとアルゴリズムのラベルを「<パス ラベル> が必要な場合は <アルゴリズム> を使用する」と解釈します。 例えば:

  • <次元削減>が必要な場合は、<主成分分析>を使用します。
  • 高速な数値予測が必要な場合は、決定木またはロジスティック回帰を使用します。
  • <階層的な結果> が必要な場合は、<階層的クラスタリング> を使用します。

複数のブランチが適用される場合もあれば、まったく適用されない場合もあります。これらのパスは経験則に基づく提案であることに留意することが重要です。そのため、一部のアドバイスは正確ではない可能性があります。 これについて議論した何人かのデータ サイエンティストは、最適なアルゴリズムを見つける唯一の方法は、すべてを試してみることだと言いました。

機械学習アルゴリズムの種類

このセクションでは、最も人気のある種類の機械学習の概要を説明します。 これらのアルゴリズムについてすでに理解していて、特定のアルゴリズムについての説明を続けたい場合は、このセクションをスキップして、以下の「特定のアルゴリズムを使用する場合」に進んでください。

1. 教師あり学習

教師あり学習アルゴリズムは、一連の例に基づいて予測を行います。たとえば、過去の販売価格を使用して将来の販売価格を予測できます。教師あり学習では、入力変数はラベル付けされたトレーニング データと対象の出力変数で構成されます。アルゴリズムを通じてトレーニング データを分析することは、入力を出力にマッピングする関数を学習するプロセスです。この推論関数はトレーニング データを一般化します。つまり、未知の状況での結果を予測し、新しい未知の入力を出力にマッピングします。

  • 分類: データを使用してカテゴリ変数を予測する場合、教師あり学習は分類とも呼ばれます。これは、犬/猫などのラベルまたはインジケーターを写真に割り当てる場合です。ラベルが 2 つしかない場合は、バイナリ分類と呼ばれます。 2 つ以上のカテゴリがある場合、多分類と呼ばれます。
  • 回帰: 連続値を予測する場合は回帰問題になります。
  • 予測: 過去と現在のデータに基づいて将来を予測するプロセスです。トレンドを分析するために最もよく使用されます。一般的な例としては、今年と昨年の売上に基づいて来年の売上を見積もることが挙げられます。

2. 半教師あり学習

教師あり学習の課題は、データのラベル付けのプロセスにコストと時間がかかる可能性があることです。 ラベルが限られている場合は、ラベルなしの例を使用して教師あり学習を強化できます。 この場合、マシンは完全に監視されていないため、半監視型であると言えます。 半教師あり学習では、ラベルなしデータと少量のラベル付きデータを組み合わせて使用​​し、学習精度を向上させます。

3. 教師なし学習

教師なし学習を実行する場合、マシンには完全にラベル付けされていないデータが供給されます。このアルゴリズムは、クラスタリング構造、低次元多様体、スパースツリー/グラフなど、基礎となるデータ内の固有のパターンを発見するためによく使用されます。

  • クラスタリング: データ サンプルのセットをグループ化し、類似のサンプルを 1 つのグループ (またはクラスター) に分類します (特定の基準に従って)。 これは、データ セット全体を複数のグループに分割して、各グループ内で分析を実行し、ユーザーが固有のパターンを見つけられるようにするためによく使用されます。
  • 次元削減: 考慮する必要がある変数の数を削減します。多くのアプリケーションでは、生データには非常に高次元の特徴があり、一部の特徴は冗長であったり、タスクに無関係であったりします。次元削減は、実際の根本的な関係を見つけるのに役立ちます。

4. 強化学習

強化学習は、環境からのフィードバックに基づいてエージェントの動作を分析および最適化します。機械は、行動の指示を受動的に受け入れるのではなく、さまざまなシナリオを試して、どの行動が最高の報酬を生み出すかを発見します。試行錯誤と遅延報酬が強化学習を他の手法と区別します。

IV. アルゴリズムを選択する際の考慮事項

アルゴリズムを選択するときは、精度、トレーニング時間、使いやすさなどの側面を考慮してください。多くのユーザーは正確さを重視しますが、初心者は自分が最もよく知っているアルゴリズムに重点を置く傾向があります。

データ セットを取得したら、結果が何であれ、まず最初に検討すべきことは、結果をどのように取得するかということです。初心者は、実装が簡単ですぐに結果が得られるアルゴリズムを選択する傾向があります。これをプロセスの最初のステップとして考える限り、実行しても何も問題はありません。いくつかの結果が得られ、データに慣れてきたら、より複雑なアルゴリズムを使用してデータへの理解を深め、結果をさらに改善するために、より多くの時間を費やすことができます。

通常、アルゴリズムでは、最良のパフォーマンスを実現するために慎重な調整と広範囲にわたるトレーニングが必要となるため、この段階でも、最良の精度を達成する方法がまだ最良のアルゴリズムであるとは限りません。

特定のアルゴリズムを使用する場合

個々のアルゴリズムを詳しく調べると、その機能と使用方法を理解するのに役立ちます。次のテキストでは、さらに詳しい情報と、特定のアルゴリズムをいつ使用するかについてのヒントが示されており、チートシートと照らし合わせて確認できます。

1. 線形回帰とロジスティック回帰

線形回帰

ロジスティック回帰

線形回帰は、連続従属変数 y と 1 つ以上の予測変数 X 間の関係をモデル化する方法です。 yとXの関係は、y = βTX + εとして線形モデル化できます。トレーニング セット{xi、yi} Ni = 1 が与えられると、パラメーター ベクトル β を学習できます。

従属変数が連続変数ではなくカテゴリ変数である場合、対数変換を使用して線形回帰をロジスティック回帰に変換できます。ロジスティック回帰は、シンプルで高速かつ強力な分類アルゴリズムです。ここでは、従属変数 y がバイナリ値 {yi∈(-1,1)} Ni = 1 のみを取るバイナリ分類のケースについて説明します (これは、マルチクラス分類問題に簡単に拡張できます)。

ロジスティック回帰では、異なる仮説クラスを使用して、特定の例が「-1」クラスに属する確率ではなく、「1」クラスに属する確率を予測します。具体的には、p(yi = 1 | xi) = σ(βTxi) および p(yi = -1 | xi) = 1-σ(βTxi) という形式の関数を学習します。ここでσ(x) = 1/(1 + exp(-x))はシグモイド関数です。トレーニング例{xi, yi} Ni = 1が与えられた場合、パラメータベクトルβは、与えられたデータセットのβの対数尤度を見つけることによって取得できます。

SAS における線形回帰

SAS におけるロジスティック回帰

2. 線形SVMとカーネルSVM

カーネル トリックは、非線形に分離可能な関数を、高次元の線形に分離可能な関数にマッピングするために使用されます。 サポート ベクター マシン (SVM) は、法線ベクトル w と超平面のバイアス b によって表される分類器を見つけます。 この超平面 (境界) は、異なるクラスを可能な限り大きなマージンで分離します。この問題は制約付き最適化問題に変換されます。

カーネル トリックは、非線形に分離可能な関数を高次元の線形に分離可能な関数にマッピングするために使用されます。

クラスが線形に分離不可能な場合、カーネル トリックを使用して、非線形に分離可能な空間を高次元の線形に分離可能な空間にマッピングできます。

従属変数のほとんどが数値である場合、分類の最初の試みとしてロジスティック回帰と SVM を使用する必要があります。これらのモデルは実装が簡単で、パラメータの調整も簡単で、パフォーマンスも非常に優れています。したがって、これらのモデルは初心者に適しています。

3. ツリーとアンサンブルツリー

決定木、ランダム フォレスト、勾配ブースティング決定木はすべて決定木に基づくアルゴリズムです。決定木にはさまざまなバリエーションがありますが、すべて同じことを行います。つまり、特徴空間を同じラベルを持つ領域に分割します。決定木は理解しやすく、実装も簡単です。ただし、ブランチが非常に深くまで使い果たされると、過剰適合が発生する可能性があります。ランダム フォレストと勾配ブースティング決定木は、過剰適合の問題を克服しながら優れた精度を達成するためにツリー アルゴリズムを使用する 2 つの一般的な方法です。

4. ニューラルネットワークとディープラーニング

1980 年代半ば、ニューラル ネットワークは並列処理と分散処理の機能により普及しました。しかし、ニューラル ネットワーク パラメータを最適化するために広く使用されているバックプロパゲーション トレーニング アルゴリズムがこの分野では効果がないという事実により、この分野の研究は妨げられてきました。サポートベクターマシン (SVM) などの単純なモデルは、簡単なトレーニングを通じて凸最適化問題を解決でき、機械学習におけるニューラルネットワークを徐々に置き換えることができます。

近年、教師なし事前トレーニングやレイヤーごとの貪欲トレーニングなどの新しい改良されたトレーニング手法により、ニューラル ネットワークへの関心が再燃しています。 グラフィックス プロセッシング ユニット (GPU) や超並列処理 (MPP) などのますます強力になるコンピューティング機能も、ニューラル ネットワークのルネッサンスを引き起こしています。ニューラル ネットワークの研究の復興により、何千もの層を持つモデルが発明されました。

ニューラルネットワーク

言い換えれば、浅いニューラル ネットワークが深層学習ニューラル ネットワークへと進化したのです。ディープニューラルネットワークは教師あり学習に非常に効果的です。音声認識や画像認識に使用する場合、ディープラーニングは人間と同等かそれ以上の性能を発揮します。ディープラーニングを特徴抽出などの教師なし学習タスクに適用すると、人間の介入をほとんど必要とせずに、生の画像や音声から特徴を抽出できます。

ニューラル ネットワークは、入力層、隠れ層、出力層の 3 つの部分で構成されます。トレーニング サンプルは入力層と出力層を定義します。出力層がカテゴリ変数の場合、ニューラル ネットワークを使用して分類問題を解決できます。出力層が連続変数の場合、ニューラル ネットワークを回帰に使用できます。出力層が入力層と同じ場合、ニューラル ネットワークを使用して固有の特徴を抽出できます。隠し層の数によって、モデルの複雑さとモデリング能力が決まります。

5. K平均法/Kモード法、ガウス混合モデルクラスタリング(GMMクラスタリング)

ガウス混合モデル

K 平均法 / k モード、GMM クラスタリングは n 個の観測値を k 個のクラスターに分類することを目的としています。 K-means はハード割り当てを定義します。つまり、サンプルは 1 つのクラスターにのみ関連付けられます。 GMM は各サンプルに対してソフト割り当てを定義しますが、各サンプルには各クラスターに関連付けられた確率があります。クラスターの数 k が指定されている場合、両方のアルゴリズムは単純かつ十分に高速です。

SAS Visual Analytics におけるクラスタリング

DBSCAN画像

クラスター数 k が指定されていない場合は、密度拡散によってサンプルを接続する DBSCAN (Density-Based Spatial Clustering) を使用できます。

6. 階層的クラスタリング

階層的クラスタリングでは、ツリー構造 (デンドログラム) を使用して階層区分を視覚化できます。入力としてクラスターの数を必要とせず、異なる K を使用して、異なる粒度でパーティション (クラスター) を表示できます (つまり、クラスターを細分化/粗くすることができます)。

7. 主成分分析(PCA)、特異値分解(SVD)、潜在ディリクレ配分法(LDA)

一部の特徴は無関係であったり、「固有の」次元が特徴の数よりも小さい可能性があるため、通常は多数の特徴を機械学習アルゴリズムに直接投入することは望ましくありません。主成分分析 (PCA)、特異値分解 (SVD)、潜在ディリクレ配分 (LDA) はすべて次元削減に使用できます。

PCA は、可能な限り多くの情報を保持しながら、元のデータ空間をより低次元の空間にマッピングする、教師なしクラスタリング手法です。 PCA は基本的に、データの分散を最もよく保存するサブスペースを見つけます。サブスペースは、データ共分散行列の主要な固有ベクトルによって定義されます。

SVD は、中心化データ マトリックス (特徴とサンプル) の SVD によって提供される主左特異ベクトルも PCA と同じサブスペースを定義するという点で PCA と関連しています。ただし、SVD は PCA ではできないことも実行できるため、より一般的な手法です。たとえば、ユーザー - 映画マトリックスを使用すると、SVD を通じて推奨システムで使用できるユーザー プロファイルと映画プロファイルを抽出できます。さらに、SVD は、潜在的意味解析とも呼ばれるトピック モデリング ツールとして、自然言語処理 (NLP) でも広く使用されています。

自然言語処理における関連技術として、潜在的ディリクレ分布 (LDA) があります。 LDA は確率的トピック モデルです。ガウス混合モデル (GMM) が連続データをガウス密度に分解するのと同じように、LDA はドキュメントをトピックに分解できます。 GMM とは異なり、LDA は離散データ (ドキュメント内の単語) をモデル化し、トピックがディリクレ分布の事前分布に従って分布するように制約します。

VI. 結論

これは簡単に実行できるワークフローです。以下の点に留意してください:

  • 問題を定義します。 どのような問題を解決しようとしていますか?
  • 簡単なアルゴリズムから始めましょう。 データとベースライン結果を理解します。
  • 次に、もっと複雑なものを試してみましょう。

SAS Visual Data Mining and Machine Learning Platform は、初心者が機械学習を学習し、適用して問題を解決するための優れたプラットフォームを提供します。

出典: http://blogs.sas.com/content/subconsciousmusings/2017/04/12/machine-learning-algorithm-use/

[この記事は51CTOコラムBig Data Digest、WeChatパブリックアカウント「Big Data Digest(id: BigDataDigest)」のオリジナル翻訳です]

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

<<:  IT運用保守プラットフォームアルゴリズムの背後にある2つの「神の助け」

>>:  AI が「長すぎて読めない」問題の解決を支援: 深層要約モデルの構築方法

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

ビッグデータと人工知能の違いすら分からないのに、あなたはまだトップへの道を歩んでいる

ビッグデータと AI は公平に比較​​できるでしょうか? ある程度は公平ですが、まずはその違いを明確...

人工知能: スマートシティを支える頭脳

[[347829]]私たちが知っているかどうかに関わらず、人工知能 (AI) はすでに私たちの生活の...

このレーシングAIはもはや短期的な楽しみを求めるのではなく、長期的な戦略を考慮することを学んだ。

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

AIを慎重に導入するためのベストプラクティス

人工知能を正しく使用するために、いくつかの提案があります。人工知能を実際に使用する際にこれらの提案を...

AI 音声ジェネレーターとは何ですか? どのように機能しますか?

近年、AI 音声ジェネレーターは、人々が機械と対話し、デジタル コンテンツを受け取る方法を変える強力...

業界の洞察 | 世界の人工知能とその産業チェーン

18 世紀半ば以降、3 度の産業革命により、蒸気駆動の機械生産から電気駆動の機械生産へと、人類社会に...

中国は人工知能研究で米国を追い越している

米スタンフォード大学の報告によると、2020年の学術誌におけるAI関連論文の引用率は中国が20.7%...

「中国版GPT-3」が登場。算術演算が可能で、紅楼夢を書き続けることができる。64枚のV100画像で3週間トレーニングされた。

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

...

...

推薦システムで学ぶべき対照的な学習方法

みなさんこんにちは。私はDiaobaiです。今日は、レコメンデーションシステムで学ぶべき対照学習法に...