フィルターに基づく特徴選択
重要
Machine Learning Studio (クラシック) のサポートは、2024 年 8 月 31 日に終了します。 その日までに、Azure Machine Learning に切り替えすることをお勧めします。
2021 年 12 月 1 日以降、新しい Machine Learning Studio (クラシック) リソースは作成できません。 2024 年 8 月 31 日まで、既存の Machine Learning Studio (クラシック) リソースを引き続き使用できます。
- ML Studio (クラシック) から Azure Machine Learning への機械学習プロジェクトの移動に関する情報を参照してください。
- Azure Machine Learning についての詳細を参照してください。
ML Studio (クラシック) のドキュメントは廃止予定であり、今後更新されない可能性があります。
データセット内の予測力が最も高い特徴を特定します
カテゴリ: 機能選択モジュール
注意
適用対象: Machine Learning Studio (クラシック)のみ
類似のドラッグ アンド ドロップ モジュールは Azure Machine Learning デザイナーで使用できます。
モジュールの概要
この記事では Machine Learning Studio (クラシック) のフィルターベースの特徴選択モジュールを使用して、予測力が最も高い入力データセットの列を識別する方法について説明します。
一般に、特徴選択とは、指定された出力を前提として、出力の予測能力がより高い列を特定するために、統計的検定を入力に適用するプロセスを指します。 フィルターベースの特徴選択モジュールは、Pearsons の関連付け、Kendall の相関関係、相互情報のスコア、カイ二乗値などの関連付け方法を含む、選択できる複数の特徴選択アルゴリズムを提供します。 Machine Learning は、情報値のインジケーターとして機能値カウントもサポートします。
フィルターに基づく特徴選択モジュールを使用する場合は、データセットを指定し、ラベルまたは従属変数を含む列を特定して、特徴の重要度の測定に使用する 1 つの手法を指定します。
このモジュールは、予測能力によってランク付けされた最適な特徴列を含むデータセットを出力します。 また、選択されたメトリックから特徴の名前とそのスコアも出力します。
フィルターに基づく特徴選択の概要と使用する理由
この特徴選択のためのモジュールは、"フィルターに基づく" と呼ばれています。これは、選択したメトリックを使用して関連性のない属性を特定し、モデルから冗長な列を除外するためです。 データに適した 1 つの統計的尺度を選択すると、モジュールによって各特徴列のスコアが計算されます。 列は、特徴スコアによってランク順に返されます。
適切な特徴を選択することで、分類の精度と効率が向上する可能性があります。
予測モデルを構築するには、通常はスコアが最適な列のみを使用します。 特徴選択スコアが低い列はデータセットに残しておくことができ、モデルの構築時には無視できます。
特徴選択メトリックを選択する方法
フィルターに基づく特徴選択には、各列の情報値を評価するためのさまざまなメトリックが用意されています。 ここでは、各メトリックの一般的な説明と、その適用方法について説明します。 各メトリックを使用するためのその他の要件については、「テクニカル ノート」のセクションと、各モジュールを構成するための手順を参照してください。
ピアソンの相関関係
ピアソンの相関統計 (ピアソンの相関係数) は、
r
値としての統計モデルでも知られています。 任意の 2 つの変数について、相関関係の強度を示す値を返しますピアソンの相関係数は、2 つの変数の共分散を求め、その標準偏差の積で割ることによって計算されます。 係数は、2 つの変数の尺度の変更の影響を受けません。
相互情報量
相互情報スコアは、別の変数の値 (つまり、ラベル) の不確実性を減らすために、変数の貢献度を測定します。 さまざまな分布に合わせ、さまざまな相互情報量スコアリングが開発されています。
相互情報量スコアリングは特徴を選択する際に特に便利です。さまざまな次元のデータセットにおいて、結合分布と目標変数の間の相互情報量を最大化するためです。
ケンドールの相関関係
ケンドールの順位相関は、さまざまな順序変数のランク付けまたは同じ変数のさまざまなランク付けの間の関係を測定する統計値の 1 つです。 つまり、数量でランク付けしたときに順序付けの類似性を測定します。 この係数とスピアマンの相関係数は両方とも、ノンパラメトリックおよび非正規分布データで使用するように設計されています。
スピアマンの相関関係
スピアマンの係数は 2 つの変数の間の統計的依存性をノンパラメトリックに測定したものであり、ギリシャ文字の P で示されることがあります。 スピアマンの係数は、2 つの変数が単調に関連する度合いを表します。 これはスピアマンの順位相関とも呼ばれています。順序変数と共に使用できるためです。
カイ二乗
双方向カイ二乗検定は、期待値が実際の結果にどれだけ近いかを測定する統計的手法です。 この手法は、変数がランダムであり、独立変数の適切な標本から抽出されることを前提としています。 結果として得られるカイ二乗統計は、期待される (ランダムな) 結果からどの程度遠いかを示します。
フィッシャー スコア
フィッシャー スコア (フィッシャー メソッドやフィッシャーの複合確率スコアとも呼ばれます) は情報スコアと呼ばれることもあります。それが依存する一部の未知のパラメーターに関して 1 つの変数が与える情報量を表すためです。
このスコアは、情報の予測値と観察値の間の差を測定することで計算されます。 差異が最小化されるとき、情報は最大化されます。 スコアの期待値は 0 であるため、フィッシャーの情報はスコアの偏差でもあります。
カウント ベース
カウント ベースの特徴の選択は、予測子に関する情報を見つけることにおいて、単純ですが比較的強力な方法です。 カウントベースの特性付けの基になっている基本的な考え方は単純です。列内の個々の値の数を計算することによって、値の分布と重みを把握できます。また、最も重要な情報が含まれている列について理解することもできます。
カウントベースの特徴選択は、特徴選択の監視されていない方法です。つまり、ラベル列は必要ありません。 また、この方法を使用すると、情報を失うことなくデータの次元を減らすことができます。
カウントベースの機能がどのように作成され、機械学習で役立つかの詳細については、「カウントを使用したラーニング」を参照してください。
ヒント
カスタムの特徴選択手法に別のオプションが必要な場合は、R スクリプトの実行モジュールを使用します。
フィルターに基づく特徴選択の構成方法
このモジュールには、特徴スコアを決定する2つの方法が用意されています。
-
標準の統計メトリックを選択すると、モジュールによって、列のペア、ラベル列、特徴列の相関関係が計算されます。
-
カウントベースのメソッドを使用すると、モジュールによって、列の値のみに基づいてスコアが計算されます。
従来の統計メトリックを使用して特徴スコアを生成する
フィルターに 基づく特徴選択 モジュールを実験に追加します。 これは、Studio の 機能の選択 カテゴリ (クラシック) で見つけることができます。
特徴である可能性がある列が少なくとも 2 つ含まれている入力データセットを接続します。
確実に列が分析され、特徴スコアが生成されるようにするには、メタデータの編集モジュールを使用して、IsFeature 属性を設定します。
重要
入力として指定する列が特徴である可能性があることを確認します。 たとえば、1 つの値が含まれている列に情報値がないとします。
不適切な特徴になる列があることがわかっている場合は、その列を列の選択から削除できます。 メタデータの編集モジュールを使用して、カテゴリとしてフラグを付けることもできます。
特徴スコア付けの方法の場合は、スコアの計算に使用する次のいずれかの統計手法を選択します。
Method 必要条件 ピアソンの相関 ラベルはテキストまたは数値にできます。 特徴は数値でなければなりません。 相互情報量 ラベルと特徴はテキストまたは数値にできます。 2 つのカテゴリ列の特徴の重要度を計算するには、この手法を使用します。 ケンドールの相関関係 ラベルにはテキストまたは数値を指定できますが、機能は数値である必要があります。 スピアマンの相関関係 ラベルにはテキストまたは数値を指定できますが、機能は数値である必要があります。 カイ二乗 ラベルと特徴はテキストまたは数値にできます。 2 つのカテゴリ列の特徴の重要度を計算するには、この手法を使用します。 フィッシャー スコア ラベルにはテキストまたは数値を指定できますが、特徴は数値である必要があります。 カウント 参照: 機能の選択Count-Based使用するには ヒント
選択したメトリックを変更すると、他のすべての選択がリセットされます。そのため、このオプションは最初に設定してください。
[Operate on feature columns only]\(特徴列のみを処理\) オプションを選択すると、以前に特徴としてマークされていた列に対してのみスコアが生成されます。
このオプションの選択を解除すると、モジュールによって、それ以外で条件を満たしている列 (最大で [Number of desired features]\(目的の特徴の数\) で指定された列の数まで) に対するスコアが作成されます。
ターゲット列の場合は、[Launch column selector]\(列セレクターの起動\) をクリックして、名前またはインデックス (インデックスは 1 から始まります) のいずれかによってラベル列を選択します。
ラベル列は、統計的相関に関わるすべての手法で必要です。 ラベル列を選択しない場合や複数のラベル列を選択した場合は、モジュールがデザイン時エラーを返します。
[Number of desired features]\(目的の特徴の数\) には、結果として返される特徴列の数を入力します。
指定できる特徴の最小数は 1 ですが、この値を大きくすることをお勧めします。
指定された目的の特徴の数がデータセット内の列数よりも大きい場合は、スコアがゼロであっても、すべての特徴が返されます。
特徴列よりも少ない数の結果列を指定した場合、特徴は降順のスコアによって順位付けされ、上位の特徴のみが返されます。
実験を実行するか、フィルター ベースの特徴選択 モジュールを選択し 、[選択した実行 ] をクリックします。
機能選択の結果
処理の完了後は、次の操作を実行します。
分析された特徴列とそのスコアの完全な一覧を表示するには、モジュールを右クリックし、[特徴] を選択し、[視覚化] をクリックします。
特徴選択条件に基づいて生成されたデータセットを表示するには、モジュールを右クリックし、[データセット] を選択して、[視覚化] をクリックします。
データセットに含まれる列の数が予想よりも多い場合は、モジュールの設定と、入力として指定された列のデータ型を確認します。 たとえば、 [Number of desired features]\(目的の特徴の数\) を 1 に設定した場合、出力データセットには、ラベル列と最も高いランクの特徴列の 2 つの列のみが含まれます。
カウントベースの特徴選択を使用する
フィルターベース の特徴選択モジュールを 実験に追加します。 これは、Studio (クラシック) の [機能の選択] グループのモジュールの 一覧で確認 できます。
Connect可能な 2 つ以上の列を含む入力データセットを作成します。
[ 特徴スコアリング方法 ] ドロップダウン リストの統計方法の一覧から [ カウント ベース] を選択します。
[ 0 以外の要素の最小数] で、出力に含める特徴列の最小数を指定します。
既定では、モジュールは要件を満たすすべての列を出力します。 モジュールは、スコア 0 を取得する列を出力できません。
実験を実行するか、モジュールを選択して [選択したファイルを実行 ] をクリックします。
カウントベースの特徴選択の結果
- 特徴列の一覧とそのスコアを表示するには、モジュールを右クリックし、[機能] を選択して、[視覚化] をクリックします。
- 分析された列を含むデータセットを表示するには、モジュールを右クリックし、[データセット] を選択して、[ 視覚化] をクリック します。
他の方法とは異なり、 カウント ベースの特徴選択メソッドは、変数を最高スコアでランク付けするのではなく、ゼロ以外のスコアを持つすべての変数を元の順序で返します。
文字列特徴は常にゼロ (0) スコアを取得するため、出力されません。
例
次のページで、機能の選択の使用例を確認 Azure AI Gallery。
テキスト分類;このサンプルの 3 番目の手順 では、フィルター ベースの特徴選択を使用して、最適な 15 の特徴を識別します。 特徴ハッシュは、テキスト ドキュメントを数値ベクトルに変換するために使用されます。 その後、ピアソンの相関関係がベクター特徴で使用されます。
機械学習機能の選択と特徴エンジニアリング: この記事では、機械学習での特徴選択と特徴エンジニアリングの概要について説明します。
特徴スコアの例については、「比較されたスコア のテーブル」を参照してください。
テクニカル ノート
このモジュールは、[データ変換] の [フィルター] カテゴリ で確認 できます。
実装の詳細
数値特徴とカテゴリ ラベルにピアソン相関、Kendall 相関、またはスピアマン相関を使用する場合、特徴スコアは次のように計算されます。
カテゴリ列のレベルごとに、数値列の条件付き平均値を計算します。
条件付き平均値の列と数値列を相関させます。
必要条件
ラベル列またはスコア列として指定されている列に対しては、特徴選択スコアを生成できません。
この方法でサポートされていないデータ型の列でスコア付けの方法を使用しようとすると、モジュールによってエラーが発生するか、ゼロのスコアが列に割り当てられます。
列に論理 (true/false) 値が含まれている場合、それらは True = 1 および False = 0 として処理されます。
列がラベルまたはスコアとして指定されている場合、その列は特徴にはできません。
欠損値の処理方法
すべての欠損値を含む列は、ターゲット (ラベル) 列としては指定できません。
欠損値が含まれている列は、列のスコアを計算するときに無視されます。
特徴列として指定された列にすべての欠損値が含まれている場合は、ゼロのスコアが割り当てられます。
比較したスコアの表
さまざまなメトリックを使用する場合にスコアがどのように比較されるのかについて説明するために、次の表は、従属変数 の highway-mpg を指定して、自動車価格データセット内の複数の特徴から特徴選択スコアを示しています。
機能列 | ピアソン スコア | カウント スコア | Kendall スコア | 相互情報 |
---|---|---|---|---|
highway-mpg | 1 | 205 | 1 | 1 |
city-mpg | 0.971337 | 205 | 0.892472 | 0.640386 |
curb-weight | 0.797465 | 171 | 0.673447 | 0.326247 |
horsepower | 0.770908 | 203 | 0.728289 | 0.448222 |
price | 0.704692 | 201 | 0.651805 | 0.321788 |
length | 0.704662205 | 205 | 0.53193 | 0.281317 |
engine-size | 0.67747 | 205 | 0.581816 | 0.342399 |
width | 0.677218 | 205 | 0.525585 | 0.285006 |
bore | 0.594572 | 201 | 0.467345 | 0.263846 |
wheel-base | 0.544082 | 205 | 0.407696 | 0.250641 |
compression-ratio | 0.265201 | 205 | 0.337031 | 0.288459 |
燃料-システム | NA | NA | NA | 0.308135 |
make | NA | NA | NA | 0.213872 |
ドライブホイール | NA | NA | NA | 0.213171 |
height | NA | NA | NA | 0.1924 |
正規化された損失 | NA | NA | NA | 0.181734 |
symboling | NA | NA | NA | 0.159521 |
シリンダー数 | NA | NA | NA | 0.154731 |
エンジン-型 | NA | NA | NA | 0.135641 |
切望 | NA | NA | NA | 0.068217 |
body-style | NA | NA | NA | 0.06369 |
燃料型 | NA | NA | NA | 0.049971 |
ドアの数 | NA | NA | NA | 0.017459 |
エンジン-場所 | NA | NA | NA | 0.010166 |
すべての列の型 (文字列を含む) に対して、相互情報のスコアを作成できます。
このテーブルに含まれるその他のスコア (ピアソンの相関関係やカウントベースの特徴の選択など) には数値が必要です。 文字列特徴のスコアは0であるため、出力には含まれません。 例外については、「 テクニカルノート 」のセクションを参照してください。
カウントベースのメソッドでは、ラベル列を特徴列とは異なる方法で処理しません。
想定される入力
名前 | 型 | 説明 |
---|---|---|
データセット | データ テーブル | 入力データセット |
モジュールのパラメーター
名前 | Range | Type | Default | 説明 |
---|---|---|---|---|
特徴スコア付けの方法 | 一覧 | スコアリング方法 | スコア付けに使用する方法を選択します | |
特徴列のみが対象 | Any | Boolean | true | スコア付けプロセスで特徴列のみを使用するかどうかを示します |
対象列 | Any | ColumnSelection | なし | 対象列を指定します |
目的の特徴の数 | >=1 | Integer | 1 | 結果に出力する特徴の数を指定します |
ゼロ以外の要素の最小数 | >=1 | Integer | 1 | 出力する特徴の数を指定します (CountBased メソッド用) |
出力
名前 | 型 | 説明 |
---|---|---|
フィルター処理されたデータセット | データ テーブル | フィルター処理されたデータセット |
機能 | データ テーブル | 出力列と特徴の選択スコアの名前 |
例外
例外 | 説明 |
---|---|
エラー 0001 | データ セットで指定した列のうち 1 つまたは複数が見つからない場合、例外が発生します。 |
エラー 0003 | 1 つまたは複数の入力が null または空の場合、例外が発生します。 |
エラー 0004 | パラメーターが特定の値以下の場合、例外が発生します。 |
エラー 0017 | 指定した 1 つ以上の列の型が現在のモジュールでサポートされていない場合に、例外が発生します。 |
Studio (クラシック) モジュール固有のエラーの一覧については、「 Machine Learning エラーコード」を参照してください。
API 例外の一覧については、「 Machine Learning REST API のエラーコード」を参照してください。