Fisher 線形判別分析

重要

Machine Learning Studio (クラシック) のサポートは、2024 年 8 月 31 日に終了します。 その日までに、Azure Machine Learning に切り替えすることをお勧めします。

2021 年 12 月 1 日以降、新しい Machine Learning Studio (クラシック) リソースは作成できません。 2024 年 8 月 31 日まで、既存の Machine Learning Studio (クラシック) リソースを引き続き使用できます。

ML Studio (クラシック) のドキュメントは廃止予定であり、今後更新されない可能性があります。

データを個別のクラスへと最適にグループ分けできる特徴変数の線形結合を特定します

カテゴリ: 機能選択モジュール

注意

適用対象: Machine Learning Studio (クラシック) のみ

類似のドラッグ アンド ドロップ モジュールは Azure Machine Learning デザイナーで使用できます。

モジュールの概要

この記事では、Machine Learning Studio (クラシック) の [Linear Discriminant Analysis] モジュールを使用して、2 つ以上のクラスを最も分離する特徴の組み合わせをキャプチャする新しい特徴データセットを作成する方法について説明します。

この方法では、クラス間で区別する情報を保持しながら、特徴セットをより小さな特徴領域に射影します。このため、次元の縮小によく使用されます。 これは特定の分類タスクの計算コストを削減するだけでなく、オーバーフィットを防ぐことにも役立ちます。

スコアを生成するには、ラベル列と数値特徴列のセットを入力として指定します。 アルゴリズムは各グループ内の距離を最小限に抑えながら、データの各グループを直線的に分離する入力列の最適な組み合わせを決定します。 モジュールは、コンパクトな変換された特徴を含むデータセットと、別のデータセットに保存して適用できる変換を返します。

線形判別分析の詳細

線形判別分析は、変数の平均を比較することで機能する点で、分散分析 (ANOVA) に似ています。 ANOVA と同様に、次の前提条件に依存します。

  • 予測子が独立している
  • 各サンプルの条件付き確率密度関数は、通常は分散されます
  • グループ間の差異が相似している

線形判別分析は LDA と省略される場合がありますが、これは潜在的なディリッチレット割り当て と簡単に混同されます。 手法は完全に異なっています。そのため、このドキュメントでは、可能な限り完全な名前を使用します。

線形判別分析を構成する方法

  1. 入力データセットを追加し、入力データが次の要件を満たしていることを確認します。

    • データは可能な限り完全である必要があります。 欠損値がある行は無視されます。
    • 値は正規分布を持つ必要があります。 Linear Discriminant Analysis を使用する前に、外れ値のデータを確認するか、分布をテストします。
    • サンプルよりも少ない予測子が必要です。
    • 数値以外の列を削除します。 アルゴリズムは、入力 に含 まれるすべての有効な数値列を調べ、無効な列が含まれている場合はエラーを返します。 数値列を除外する必要がある場合は、Linear Discriminant Analysis の前に Select Columns in Dataset (データセット内の列の選択) モジュールを追加して、分析する列のみを含むビューを作成します。 列は、後で [列の追加] を使用 して再び追加できます。 行の元の順序は保持されます。
  2. Connect線形判別分析モジュールに入力データを入力します。

  3. [ クラス ラベル列] で、[列セレクター の起動] をクリックし 、1 つのラベル列を選択します。

  4. [ 特徴抽出子の数] に、結果として必要な列の数を入力します。

    たとえば、データセット 3 に 8 つの数値特徴列が含まれている場合は、「」と入力して、3 列だけの新しい縮小された特徴空間に折りたたむ場合があります。

    出力列が入力列に正確に対応するのではなく、入力列の値のコンパクトな変換を表すのを理解することが重要です。

    [特徴抽出子の数] の値として 0 を使用し、n 列を入力として使用すると、n 次元特徴空間を表す新しい値を含む n つの特徴抽出子が返されます。

  5. 実験を実行します。

結果

アルゴリズムは、各グループ内の距離を最小限に抑えながらデータの各グループを直線的に分離する入力列の値の組み合わせを決定し、2 つの出力を作成します。

  • 変換された特徴col1col2col3 などという名前の指定された数の特徴抽出列を含むデータセット。 出力には、クラス変数またはラベル変数も含まれます。

    このコンパクトな値セットを使用して、モデルをトレーニングできます。

  • 釣り線状判別分析変換。 同じスキーマを持つデータセットに保存して適用できる変換。 これは、同じ種類の多数のデータセットを分析し、それぞれに同じ特徴量削減を適用する場合に便利です。 適用するデータセットのスキーマは同じ必要があります。

機械学習での特徴選択の例については、次のページを Azure AI Gallery

テクニカル ノート

このセクションには、実装の詳細、ヒント、よく寄せられる質問への回答が含まれています。

使用上のヒント

  • この方法は連続変数でのみ機能し、カテゴリ変数または順序変数では機能しません。

  • 欠損値がある行は、変換行列を計算するときに無視されます。

  • 実験から変換を保存した場合、元の実験から計算された変換は、新しいデータ セットごとに再適用され、再計算されません。 したがって、データ セットごとに新しい特徴セットを計算する場合は、各データセットに対して 、新しいインスタンスの Linear Discriminant Analysis を使用します。

実装の詳細

特徴のデータセットは、固有ベクトル を使用して変換されます。 入力データセットの固有ベクトルは、指定された特徴列 (識別行列とも呼ばれる) に基 づいて計算されます

モジュールによる変換出力には、これらの固有ベクトルが含まれます。このベクトルは、同じスキーマを持つ別のデータセットを変換するために適用できます。

固有値の計算方法の詳細については、この論文 (PDF: 分類のための固有ベクトルベースの特徴抽出) を参照してください。 Tymbal、Puuronen 他。

想定される入力

名前 説明
データセット データ テーブル 入力データセット

モジュールのパラメーター

名前 種類 Range 省略可能 Default 説明
クラス ラベル列 ColumnSelection 必須 なし カテゴリ クラス ラベルを含む列を選択します
特徴抽出の数 Integer >=0 必須 0 使用する特徴抽出の数。 0 の場合、すべての特徴抽出が使用されます

出力

名前 説明
変換済みの特徴 データ テーブル 固有ベクトル空間に変換された線形判別分析の特徴
Fisher 線形判別分析の変換 ITransform インターフェイス Fisher 線形判別分析の変換

例外

例外 説明
エラー 0001 データ セットで指定した列のうち 1 つまたは複数が見つからない場合、例外が発生します。
エラー 0003 1 つまたは複数の入力が null または空の場合、例外が発生します。
エラー 0017 指定した 1 つ以上の列の型が現在のモジュールでサポートされていない場合に、例外が発生します。

Studio (クラシック) モジュールに固有のエラーの一覧については、「エラー コードMachine Learning参照してください

API の例外の一覧については、「エラー コードMachine Learning REST API参照してください

こちらもご覧ください

特徴選択
フィルターに基づく特徴選択
主成分分析を参照してください