Pythonを使用した機械学習-メソッド

データを使用して実際の問題を解決するためのモデルを構築するために使用できるさまざまなMLアルゴリズム、手法、および方法があります。この章では、このようなさまざまな方法について説明します。

さまざまな種類の方法

以下は、いくつかの幅広いカテゴリに基づくさまざまなMLメソッドです-

人間の監督に基づく

学習過程において、人間の監督に基づくいくつかの方法は次のとおりです。

Supervised Learning

教師あり学習アルゴリズムまたは方法は、最も一般的に使用されるMLアルゴリズムです。この方法または学習アルゴリズムは、データサンプル、つまりトレーニングデータとそれに関連する出力、つまりトレーニングプロセス中の各データサンプルのラベルまたは応答を取得します。

教師あり学習アルゴリズムの主な目的は、複数のトレーニングデータインスタンスを実行した後、入力データサンプルと対応する出力の間の関連付けを学習することです。

たとえば、

x:入力変数と

Y:出力変数

ここで、アルゴリズムを適用して、入力から出力へのマッピング関数を次のように学習します。

Y = f(x)

ここで、主な目的は、新しい入力データ(x)がある場合でも、その新しい入力データの出力変数(Y)を簡単に予測できるように、マッピング関数を適切に近似することです。

教師または監督者によって監督されているので、学習のプロセス全体が考えられるため、教師ありと呼ばれます。教師あり機械学習アルゴリズムの例には、Decision tree, Random Forest, KNN, Logistic Regression

MLタスクに基づいて、教師あり学習アルゴリズムは次の2つの大まかなクラスに分類できます。

  • Classification
  • Regression

Classification

分類ベースのタスクの主な目的は、特定の入力データのカテゴリ出力ラベルまたは応答を予測することです。出力は、モデルがトレーニングフェーズで学習した内容に基づいています。カテゴリの出力応答は順序付けられていない離散値を意味することがわかっているため、各出力応答は特定のクラスまたはカテゴリに属します。分類と関連するアルゴリズムについては、次の章でも詳しく説明します。

Regression

回帰ベースのタスクの主な目的は、指定された入力データについて、継続的な数値である出力ラベルまたは応答を予測することです。出力は、モデルがトレーニングフェーズで学習した内容に基づいています。基本的に、回帰モデルは、入力データの特徴(独立変数)とそれに対応する連続数値出力値(従属変数または結果変数)を使用して、入力と対応する出力の間の特定の関連付けを学習します。回帰および関連するアルゴリズムについては、以降の章でも詳しく説明します。

教師なし学習

名前が示すように、教師ありMLの方法やアルゴリズムとは反対です。つまり、教師なし機械学習アルゴリズムでは、あらゆる種類のガイダンスを提供するスーパーバイザーがいません。教師なし学習アルゴリズムは、教師あり学習アルゴリズムのように、事前にラベル付けされたトレーニングデータを使用する自由がなく、入力データから有用なパターンを抽出したい場合に便利です。

たとえば、次のように理解できます。

私たちが持っていると仮定します-

x: Input variablesの場合、対応する出力変数はなく、アルゴリズムは学習のためにデータ内の興味深いパターンを検出する必要があります。

教師なし機械学習アルゴリズムの例には、K-meansクラスタリングが含まれます。 K-nearest neighbors

MLタスクに基づいて、教師なし学習アルゴリズムは次の幅広いクラスに分類できます-

  • Clustering
  • Association
  • 次元削減

Clustering

クラスタリング手法は、最も有用な教師なしML手法の1つです。これらのアルゴリズムは、データサンプル間の類似性と関係パターンを見つけ、それらのサンプルを特徴に基づいて類似性を持つグループにクラスター化するために使用されました。クラスタリングの実際の例は、購入行動によって顧客をグループ化することです。

Association

もう1つの有用な教師なしMLメソッドは Associationこれは、大規模なデータセットを分析して、さまざまなアイテム間の興味深い関係をさらに表すパターンを見つけるために使用されます。とも呼ばれますAssociation Rule Mining または Market basket analysis これは主に顧客の買い物パターンを分析するために使用されます。

Dimensionality Reduction

この教師なしML法は、主要な特徴または代表的な特徴のセットを選択することにより、各データサンプルの特徴変数の数を減らすために使用されます。ここで疑問が生じるのは、なぜ次元を減らす必要があるのか​​ということです。背後にある理由は、データサンプルから数百万の特徴を分析および抽出し始めるときに発生する特徴空間の複雑さの問題です。この問題は一般的に「次元の呪い」を指します。PCA(主成分分析)、K最近傍分析、判別分析は、この目的でよく使用されるアルゴリズムの一部です。

Anomaly Detection

この教師なしMLメソッドは、通常は発生しないまれなイベントまたは観測の発生を見つけるために使用されます。学習した知識を使用することにより、異常検出方法は異常なデータポイントと正常なデータポイントを区別することができます。クラスタリングなどの教師なしアルゴリズムの一部であるKNNは、データとその機能に基づいて異常を検出できます。

半教師あり学習

このような種類のアルゴリズムまたはメソッドは、完全に監視されているわけでも、完全に監視されていないわけでもありません。これらは基本的に、教師あり学習方法と教師なし学習方法の2つに分類されます。これらの種類のアルゴリズムは、一般に、小さな教師あり学習コンポーネント、つまり、事前にラベル付けされた少量の注釈付きデータと、大きな教師なし学習コンポーネント、つまり、トレーニング用の多くの教師なしデータを使用します。半教師あり学習方法を実装するには、次のいずれかのアプローチに従うことができます。

  • 最初の簡単なアプローチは、少量のラベル付きおよび注釈付きデータに基づいて教師ありモデルを構築し、次にそれを大量のラベルなしデータに適用してより多くのラベル付きサンプルを取得することにより、教師なしモデルを構築することです。次に、それらでモデルをトレーニングし、プロセスを繰り返します。

  • 2番目のアプローチには、追加の作業が必要です。このアプローチでは、最初に教師なしメソッドを使用して類似のデータサンプルをクラスター化し、これらのグループに注釈を付けてから、この情報の組み合わせを使用してモデルをトレーニングできます。

強化学習

これらの方法は以前に研究された方法とは異なり、非常にまれにしか使用されません。この種の学習アルゴリズムでは、特定の環境と相互作用できるように、一定期間にわたってトレーニングしたいエージェントが存在します。エージェントは、環境と対話するための一連の戦略に従い、環境を観察した後、環境の現在の状態に関してアクションを実行します。以下は強化学習法の主なステップです-

  • Step 1 −最初に、いくつかの初期戦略セットを備えたエージェントを準備する必要があります。

  • Step 2 −次に、環境とその現在の状態を観察します。

  • Step 3 −次に、環境の現状に応じた最適なポリシーを選択し、重要なアクションを実行します。

  • Step 4 −これで、エージェントは、前のステップで実行したアクションに従って、対応する報酬またはペナルティを取得できます。

  • Step 5 −必要に応じて、戦略を更新できるようになりました。

  • Step 6 −最後に、エージェントが最適なポリシーを学習して採用するまで、手順2〜5を繰り返します。

機械学習に適したタスク

次の図は、さまざまなML問題に適したタスクのタイプを示しています-

学習能力に基づく

学習過程において、以下は学習能力に基づくいくつかの方法です-

Batch Learning

多くの場合、利用可能なトレーニングデータ全体を使用してモデルを一度にトレーニングする必要があるエンドツーエンドの機械学習システムがあります。このような学習方法やアルゴリズムは、Batch or Offline learning。これは1回限りの手順であり、モデルが1つのバッチでデータを使用してトレーニングされるため、バッチ学習またはオフライン学習と呼ばれます。バッチ学習方法の主な手順は次のとおりです-

  • Step 1 −まず、モデルのトレーニングを開始するために、すべてのトレーニングデータを収集する必要があります。

  • Step 2 −次に、トレーニングデータ全体を一度に提供して、モデルのトレーニングを開始します。

  • Step 3 −次に、満足のいく結果/パフォーマンスが得られたら、学習/トレーニングプロセスを停止します。

  • Step 4−最後に、このトレーニング済みモデルを本番環境にデプロイします。ここでは、新しいデータサンプルの出力を予測します。

オンライン学習

これは、バッチまたはオフラインの学習方法とは完全に反対です。これらの学習方法では、トレーニングデータは、ミニバッチと呼ばれる複数の増分バッチでアルゴリズムに提供されます。以下は、オンライン学習方法の主なステップです-

  • Step 1 −まず、モデルのトレーニングを開始するために、すべてのトレーニングデータを収集する必要があります。

  • Step 2 −次に、アルゴリズムにトレーニングデータのミニバッチを提供して、モデルのトレーニングを開始します。

  • Step 3 −次に、トレーニングデータのミニバッチを複数の増分でアルゴリズムに提供する必要があります。

  • Step 4 −バッチ学習のように停止しないため、ミニバッチでトレーニングデータ全体を提供した後、新しいデータサンプルも提供します。

  • Step 5 −最後に、新しいデータサンプルに基づいて一定期間学習を続けます。

一般化アプローチに基づく

学習プロセスにおいて、以下は一般化アプローチに基づくいくつかの方法です-

インスタンスベースの学習

インスタンスベースの学習方法は、入力データに基づいて一般化を行うことでMLモデルを構築する便利な方法の1つです。この種の学習にはMLシステムや、トレーニングデータに明示的なモデルを構築せずに、生データポイント自体を使用して新しいデータサンプルの結果を描画する方法が含まれるという点で、以前に研究された学習方法とは反対です。

簡単に言うと、インスタンスベースの学習は基本的に、入力データポイントを確認することから始まり、類似性メトリックを使用して、新しいデータポイントを一般化して予測します。

モデルベースの学習

モデルベースの学習方法では、ハイパーパラメータと呼ばれるさまざまなモデルパラメータに基づいて構築され、入力データを使用して特徴を抽出するMLモデルで反復プロセスが実行されます。この学習では、ハイパーパラメータはさまざまなモデル検証手法に基づいて最適化されます。そのため、モデルベースの学習方法では、一般化に向けてより伝統的なMLアプローチを使用していると言えます。