次の方法で共有


機能の選択 (データ マイニング)

特徴の選択 は、データ マイニングでよく使用される用語で、処理と分析のために管理可能なサイズに入力を減らすために使用できるツールと手法を記述します。 特徴選択とは、 カーディナリティの低下を意味します。つまり、モデルの構築時に考慮できる属性の数に対して任意または定義済みのカットオフを課すだけでなく、属性の選択も行います。つまり、アナリストまたはモデリング ツールは、分析の有用性に基づいて属性をアクティブに選択または破棄します。

データセットには、モデルの構築に必要な情報よりもはるかに多くの情報が含まれていることが多いため、効果的な分析には特徴選択を適用する機能が重要です。 たとえば、データセットには顧客の特性を表す 500 個の列が含まれている場合がありますが、一部の列のデータが非常に疎な場合は、モデルに追加することでほとんどメリットを得ません。 モデルの構築中に不要な列を保持する場合、トレーニング プロセス中に必要な CPU とメモリが増え、完成したモデルに必要な記憶域が増えます。

リソースが問題でない場合でも、通常、不要な列は、検出されたパターンの品質が低下する可能性があるため、次の理由で削除する必要があります。

  • 一部の列はノイズまたは冗長です。 このノイズにより、データから意味のあるパターンを見つけにくくなります。

  • 品質パターンを検出するために、ほとんどのデータ マイニング アルゴリズムでは、高次元データ セットに対してはるかに大きなトレーニング データセットが必要です。 ただし、一部のデータ マイニング アプリケーションでは、トレーニング データは非常に小さくなります。

データ ソース内の 500 列のうち、モデルの構築に役立つ情報が 50 列しかない場合は、モデルから除外するか、特徴選択手法を使用して最適な特徴を自動的に検出し、統計的に重要でない値を除外することができます。 機能の選択は、価値の少ないデータが多すぎるか、価値の高いデータが少なすぎるというツインの問題を解決するのに役立ちます。

Analysis Services データ マイニングでの機能の選択

通常、特徴選択は Analysis Services で自動的に実行され、各アルゴリズムには、特徴の削減をインテリジェントに適用するための一連の既定の手法があります。 特徴の選択は、モデルがトレーニングされる前に常に実行され、モデルで使用される可能性が最も高いデータセット内の属性を自動的に選択します。 ただし、フィーチャ選択の動作に影響を与えるパラメーターを手動で設定することもできます。

一般に、特徴の選択は、各属性のスコアを計算し、最適なスコアを持つ属性のみを選択することによって機能します。 上位スコアのしきい値を調整することもできます。 Analysis Services には、これらのスコアを計算するための複数の方法が用意されており、どのモデルにも適用される正確な方法は、次の要因によって異なります。

  • モデルで使用されるアルゴリズム

  • 属性のデータ型

  • モデルに設定した可能性があるパラメーター

特徴選択は、入力、予測可能な属性、または列の状態に適用されます。 特徴選択のスコア付けが完了すると、アルゴリズムによって選択された属性と状態のみがモデル構築プロセスに含まれるため、予測に使用できます。 特徴選択のしきい値を満たしていない予測可能な属性を選択した場合でも、属性は予測に使用できますが、予測はモデルに存在するグローバル統計のみに基づきます。

特徴の選択は、モデルで使用される列にのみ影響し、マイニング構造の格納には影響しません。 マイニング モデルから除外した列は構造で引き続き使用でき、マイニング構造列のデータはキャッシュされます。

特徴選択方法の定義

使用しているデータの種類と、分析用に選択したアルゴリズムに応じて、機能の選択を実装する方法は多数あります。 SQL Server Analysis Services には、属性をスコア付けするための一般的で確立された方法がいくつか用意されています。 アルゴリズムまたはデータ セットに適用されるメソッドは、データ型と列の使用方法によって異なります。

興味深さのスコアは、非バイナリの連続する数値データを含む列の属性をランク付けおよび並べ替えるために使用されます。

不連続データと分離データを含む列では、シャノンのエントロピと 2 つのベイジアン スコアを使用できます。 ただし、モデルに連続する列が含まれている場合は、一貫性を確保するために、すべての入力列を評価するために興味深さのスコアが使用されます。

次のセクションでは、機能選択の各方法について説明します。

興味深さのスコア

この機能は、役に立つ情報を伝える場合に役立ちます。 有用なものの定義はシナリオによって異なるため、データ マイニング業界では 興味深さを測定するさまざまな方法が開発されています。 たとえば、 ノベルティ は外れ値検出で興味深い場合がありますが、密接に関連する項目を区別する機能や 、重みを区別する機能は、分類の方が興味深い場合があります。

SQL Server Analysis Services で使用される興味深さの尺度は エントロピベースであり、ランダム分布を持つ属性のエントロピが高く、情報ゲインが低いことを意味します。したがって、このような属性はあまり興味深く見えなくなります。 特定の属性のエントロピは、次のように他のすべての属性のエントロピと比較されます。

興味深さ(属性) = - (m - エントロピー(属性)) * (m - エントロピー(属性))

中心エントロピ (m) は、特徴セット全体のエントロピを意味します。 ターゲット属性のエントロピを中心エントロピから減算することで、属性が提供する情報の量を評価できます。

このスコアは、列に非binary連続数値データが含まれている場合に、既定で使用されます。

シャノンのエントロピー

シャノンのエントロピーは、特定の結果に対するランダム変数の不確実性を測定します。 たとえば、コイン投げのエントロピは、それが頭を上がる確率の関数として表すことができます。

Analysis Services では、次の式を使用してシャノンのエントロピが計算されます。

H(X) = -∑ P(xi) log(P(xi))

このスコア付け方法は、不連続属性と分離属性で使用できます。

ベイジアンと K2 Prior

Analysis Services には、ベイジアン ネットワークに基づく 2 つの特徴選択スコアが用意されています。 ベイジアン ネットワークは、状態と状態間の遷移の 有向 グラフまたは 非環式 グラフです。つまり、一部の状態は常に現在の状態より前であり、一部の状態は事後であり、グラフは繰り返されたりループしたりしません。 定義上、ベイジアン ネットワークでは、事前知識を使用できます。 ただし、後の状態の確率を計算するために使用する以前の状態は、アルゴリズムの設計、パフォーマンス、および精度にとって重要です。

ベイジアン ネットワークから学習するための K2 アルゴリズムは、Cooper と Herskovits によって開発され、データ マイニングでよく使用されます。 これはスケーラブルであり、複数の変数を分析できますが、入力として使用される変数の順序付けが必要です。 詳細については、「 Learning Bayesian Networks by Chickering、Geiger、Heckerman」を参照してください。

このスコア付け方法は、不連続属性と分離属性で使用できます。

ベイジアン・ディリクレ同等分布(等質事前分布を使用)

ベイジアン Dirichlet Equivalent (BDE) スコアでは、ベイジアン分析を使用して、データセットが指定されたネットワークを評価します。 BDE スコアリング方法は Heckerman によって開発され、Cooper と Herskovits によって開発された BD メトリックに基づいています。 Dirichlet 分布は、ネットワーク内の各変数の条件付き確率を記述する多項式分布であり、学習に役立つ多くのプロパティがあります。

Bayesian Dirichlet Equivalent with Uniform Prior (BDEU) メソッドは、前の状態の固定または均一分布を作成するために数学定数を使用する、Dirichlet 分布の特殊なケースを想定しています。 BDE スコアでは、尤度の等価性も想定されます。つまり、データが同等の構造を区別することは期待できません。 つまり、If A Then B のスコアが If B Then A のスコアと同じ場合、データに基づいて構造を区別できず、因果関係を推論することはできません。

ベイジアン ネットワークとこれらのスコア付け方法の実装の詳細については、「 ベイジアン ネットワークの学習」を参照してください。

Analysis Services アルゴリズムで使用される特徴選択方法

次の表に、特徴選択をサポートするアルゴリズム、アルゴリズムで使用される特徴選択方法、および特徴選択動作を制御するために設定したパラメーターを示します。

アルゴリズム 分析方法 コメント
ナイーブ・ベイズ シャノンのエントロピー

ベイジアンと K2 Prior

ベイジアン・ディリッチレット(一様な事前分布、デフォルト)
Microsoft Naïve Bayes アルゴリズムは、個別の属性または分離された属性のみを受け入れます。したがって、興味深さのスコアを使用することはできません。

このアルゴリズムの詳細については、「 Microsoft Naive Bayes Algorithm Technical Reference」を参照してください
デシジョン ツリー 興味深さのスコア

シャノンのエントロピー

ベイジアンと K2 Prior

一様事前分布を使用したベイジアンディリクレ (デフォルト)
いずれかの列にバイナリ以外の連続値が含まれている場合は、整合性を確保するために、すべての列に興味深さのスコアが使用されます。 それ以外の場合は、既定のフィーチャ選択方法、またはモデルの作成時に指定したメソッドが使用されます。

このアルゴリズムの詳細については、「 Microsoft デシジョン ツリー アルゴリズムテクニカル リファレンス」を参照してください
ニューラルネットワーク 興味深さのスコア

シャノンのエントロピー

ベイジアンと K2 Prior

一様事前分布を持つベイズディリクレ(デフォルト)
Microsoft ニューラル ネットワーク アルゴリズムでは、データに連続列が含まれている限り、ベイジアンとエントロピベースの両方のメソッドを使用できます。

このアルゴリズムの詳細については、「 Microsoft ニューラル ネットワーク アルゴリズムテクニカル リファレンス」を参照してください
ロジスティック回帰 興味深さのスコア

シャノンのエントロピー

ベイジアンと K2 Prior

ベイジアン ディリッチレット(デフォルトで一様な事前分布)
Microsoft ロジスティック回帰アルゴリズムは Microsoft ニューラル ネットワーク アルゴリズムに基づいていますが、ロジスティック回帰モデルをカスタマイズして特徴選択の動作を制御することはできません。そのため、フィーチャの選択は常に、属性に最も適したメソッドに既定で設定されます。

すべての属性が不連続または分離されている場合、既定値は BDEU です。

このアルゴリズムの詳細については、「 Microsoft ロジスティック回帰アルゴリズムテクニカル リファレンス」を参照してください
クラスタリング 興味深さのスコア Microsoft クラスタリング アルゴリズムでは、不連続データまたは分離データを使用できます。 ただし、各属性のスコアは距離として計算され、連続する数値として表されるため、興味深さのスコアを使用する必要があります。

このアルゴリズムの詳細については、「 Microsoft クラスタリング アルゴリズムテクニカル リファレンス」を参照してください
Linear regression (線形回帰) 興味深さのスコア Microsoft 線形回帰アルゴリズムは、連続列のみをサポートするため、興味深さのスコアのみを使用できます。

このアルゴリズムの詳細については、「 Microsoft 線形回帰アルゴリズムテクニカル リファレンス」を参照してください
相関ルール

シーケンス クラスタリング
未使用 これらのアルゴリズムでは、機能の選択は呼び出されません。

ただし、パラメーターの値をMINIMUM_SUPPORTおよびMINIMUM_PROBABILIITY設定することで、アルゴリズムの動作を制御し、必要に応じて入力データのサイズを小さくすることができます。

詳細については、「 Microsoft アソシエーション アルゴリズムテクニカル リファレンス 」および 「Microsoft シーケンス クラスタリング アルゴリズムテクニカル リファレンス」を参照してください
時系列 未使用 特徴選択は時系列モデルには適用されません。

このアルゴリズムの詳細については、「 Microsoft Time Series Algorithm Technical Reference」を参照してください

機能選択パラメーター

特徴選択をサポートするアルゴリズムでは、次のパラメーターを使用して、機能の選択を有効にするタイミングを制御できます。 各アルゴリズムには、許可される入力の数の既定値がありますが、この既定値をオーバーライドして属性の数を指定できます。 このセクションでは、機能の選択を管理するために提供されるパラメーターの一覧を示します。

最大入力属性

モデルに、 MAXIMUM_INPUT_ATTRIBUTES パラメーターで指定された数よりも多くの列が含まれている場合、アルゴリズムは、計算が不要と計算された列を無視します。

最大出力属性

同様に、モデルに 、MAXIMUM_OUTPUT_ATTRIBUTES パラメーターで指定された数よりも予測可能な列が含まれている場合、アルゴリズムでは、関心のない列が無視されます。

最大状態数

モデルに MAXIMUM_STATES パラメーターで指定されているよりも多くのケースが含まれている場合、最も一般的でない状態がグループ化され、不足として扱われます。 これらのパラメーターのいずれかが 0 に設定されている場合、機能の選択はオフになり、処理時間とパフォーマンスに影響します。

これらの特徴選択方法に加えて、モデルに モデリング フラグ を設定するか、構造に 分散フラグ を設定することで、アルゴリズムで意味のある属性を識別または昇格させる機能を向上させることができます。 これらの概念の詳細については、「 モデリング フラグ (データ マイニング) 」および「 列分布 (データ マイニング)」を参照してください。

こちらもご覧ください

マイニング モデルと構造をカスタマイズする