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

機能の選択は、すべてのデータ マイニング製品に必須の機能です。 それは、データ マイニング モデルを作成する場合に、モデルの作成に必要な情報以上の情報がデータセットに含まれていることがよくあるためです。 たとえば、顧客の特性を説明する 500 列が含まれているデータセットで、そのうち 50 列のみが特定のモデルの作成に使用される場合があります。 不要な列を保持したままモデルを作成すると、トレーニング処理時により多くの CPU リソースとメモリが必要となり、完成したモデルに必要な記憶領域も増大します。

リソースが問題とならない場合でも、不要な列を削除することをお勧めします。次の理由から、検出されるパターンの品質が低下する可能性があるためです。

  • ノイズになる列や冗長な列が含まれる場合があります。 こうした列が含まれていると、データから意味のあるパターンを見つけるのが困難になります。

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

機能の選択は、あまり価値のないデータが多すぎたり、価値の高いデータが少なすぎたりする問題を解決するのに役立ちます。

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

一般に機能の選択では、各属性のスコアが計算されて、ベスト スコアの属性のみが選択されます。 トップ スコアのしきい値は調整できます。 機能の選択は、常にモデルのトレーニングの前に実行されます。これにより、モデルで使用される可能性の高い属性がデータセット内で自動的に選択されます。

Analysis Services は、機能の選択のための複数の方法を提供します。 最も価値の高い属性を選択するための方法は、モデルに使用されているアルゴリズムとモデルに設定されているパラメーターによって異なります。 機能の選択は、列の入力、予測可能な属性、または状態に適用されます。 モデル作成プロセスに含まれ、予測作成に使用できるのは、アルゴリズムが選択した属性と状態のみでます。 機能の選択によって無視された予測可能列は予想作成に使用されますが、予測はモデル内に存在する全体統計のみを基礎とします。

注意

機能の選択が影響するのはモデルで使用される列だけであり、保存されているマイニング構造には影響しません。 マイニング モデルから除外された列も、マイニング構造では引き続き使用できます。また、マイニング構造列のデータはキャッシュされます。

機能の選択の方法の定義

機能の選択を実装するには、使用するデータの種類や、分析のために選択するアルゴリズムに応じて、さまざまな方法があります。 SQL Server Analysis Services には、属性のスコアリングのためによく使用される一般的な方法がいくつか用意されています。 アルゴリズムまたはデータセットで適用される方法は、データ型および列の使用法に依存します。

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

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

ここでは、機能の選択の各方法について説明します。

興味深さのスコア

機能が興味深いのは、有用な情報を提供する場合です。 何が有用であるかの定義はシナリオによって異なるため、データ マイニング業界では、興味深さを測定するためのさまざまな方法が開発されてきました。 たとえば、外れ値を検出する際には新奇性が、分類の際には密接に関連するアイテムの識別 (識別の加重) が、興味深さの対象になると考えられます。

SQL Server Analysis Services で使用される興味深さの尺度はエントロピに基づいています。したがって、ランダムに分布する属性はエントロピが高く、情報利得が低いため、このような属性の興味深さは低くなります。 次のようにして、特定の属性のエントロピが他のすべての属性のエントロピと比較されます。

Interestingness(Attribute) = - (m - Entropy(Attribute)) * (m - Entropy(Attribute))

中心エントロピ (m) は、機能セット全体のエントロピを表します。 対象となる属性のエントロピを中心エントロピから差し引くことにより、その属性が提供する情報の量を評価できます。

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

Shannon のエントロピ

Shannon のエントロピは、特定の結果に対する確率変数の不確かさを測定します。 たとえばコイン投げのエントロピは、コインが表になる確率の関数として表すことができます。

Analysis Services では、次の数式を使用して Shannon のエントロピを計算します。

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

このスコアリング方法は、不連続属性と分離された属性で使用できます。

K2 事前分布を指定したベイズ定理

Analysis Services には、ベイジアン ネットワークに基づく 2 つの機能選択スコアが用意されています。 ベイジアン ネットワークとは、状態および状態間の遷移の有向または非循環のグラフ (常に現在の状態より前にある状態と後にある状態がある、繰り返し (ループ) を含まないグラフ) です。 定義上、ベイジアン ネットワークでは事前知識を使用できます。 ただし、前の状態のうちのどれを使用して後の状態の確率を計算するかという問題が、アルゴリズムのデザイン、パフォーマンス、および精度にとって重要になります。

ベイジアン ネットワークの学習のための K2 アルゴリズムは、Cooper と Herskovits によって開発されたもので、データ マイニングでよく使用されます。 K2 アルゴリズムは拡張可能で、複数の変数を分析できますが、入力として使用する変数の順序付けが必要とされます。 詳細については、「ベイジアン ネットワークの学習: 知識と統計データの組み合わせ」(Chickering、Geiger、および Heckerman) を参照してください。

このスコアリング方法は、不連続属性と分離された属性で使用できます。

均一な事前分布を指定したベイズ ディリクレ等式 (BDE)

ベイズ ディリクレ等式 (BDE) スコアも、与えられたデータセットについて、ベイズ解析を使用してネットワークを評価します。 BDE のスコアリング方法は Heckerman によって開発されたもので、Cooper と Herskovits によって開発された BD メトリックに基づいています。 ディリクレ分布は、ネットワークの各変数の条件付き確率を表す多項分布で、学習に役立つ数多くの特性があります。

均一な事前分布を指定したベイズ ディリクレ等式 (BDEU) の方法では、数学定数を使用して事前状態の固定分布 (均一な分布) が作成されるディリクレ分布の特殊なケースが想定されています。 また尤度等価も想定されているため、データで等価な構造が区別されることを期待できません。 つまり、If A Then B のスコアが If B Then A のスコアと同じ場合、そのデータに基づいて構造を区別することはできず、因果関係を推論できません。

ベイジアン ネットワークの詳細およびこれらのスコアリング方法の実装の詳細については、「ベイジアン ネットワークの学習 : 知識と統計データの組み合わせ」を参照してください。

Analysis Services のアルゴリズムで使用される機能の選択の方法

次の表は、機能の選択をサポートするアルゴリズム、そのアルゴリズムによって使用される機能の選択の方法、および機能の選択の動作を制御するために設定するパラメーターの一覧です。

アルゴリズム

分析の方法

備考

Naive Bayes

Shannon のエントロピ

K2 事前分布を指定したベイズ定理

均一な事前分布を指定したベイズ ディリクレ等式 (既定値)

Microsoft Naïve Bayes アルゴリズムで使用できる属性は、不連続属性と分離された属性だけです。したがって、興味深さのスコアは使用できません。

このアルゴリズムの詳細については、「Microsoft Naive Bayes アルゴリズム テクニカル リファレンス」を参照してください。

デシジョン ツリー

興味深さのスコア

Shannon のエントロピ

K2 事前分布を指定したベイズ定理

均一な事前分布を指定したベイズ ディリクレ等式 (既定値)

非バイナリの連続する値を含む列がある場合は、一貫性を保つため、すべての列に対して興味深さのスコアが使用されます。 それ以外の場合は、既定の機能の選択の方法か、モデルを作成したときに指定した方法が使用されます。

このアルゴリズムの詳細については、「Microsoft デシジョン ツリー アルゴリズム テクニカル リファレンス」を参照してください。

ニューラル ネットワーク

興味深さのスコア

Shannon のエントロピ

K2 事前分布を指定したベイズ定理

均一な事前分布を指定したベイズ ディリクレ等式 (既定値)

Microsoft ニューラル ネットワーク アルゴリズムでは、データに連続列が含まれている限り、両方の方法を使用できます。

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

ロジスティック回帰

興味深さのスコア

Shannon のエントロピ

K2 事前分布を指定したベイズ定理

均一な事前分布を指定したベイズ ディリクレ等式 (既定値)

Microsoft ロジスティック回帰アルゴリズムは Microsoft ニューラル ネットワーク アルゴリズムに基づいていますが、ロジスティック回帰モデルをカスタマイズして機能の選択動作を制御することはできません。したがって、機能の選択では、常に属性に最も適した方法が既定で使用されます。

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

このアルゴリズムの詳細については、「Microsoft ロジスティック回帰アルゴリズム テクニカル リファレンス」を参照してください。

クラスター

興味深さのスコア

Microsoft クラスタリング アルゴリズムでは、不連続なデータまたは分離されたデータを使用できます。 ただし、各属性のスコアは距離として計算され、連続する数値として表現されるため、興味深さのスコアを使用する必要があります。

このアルゴリズムの詳細については、「Microsoft クラスタリング アルゴリズム テクニカル リファレンス」を参照してください。

線形回帰

興味深さのスコア

Microsoft 線形回帰アルゴリズムでは、連続列のみをサポートするため、使用できるのは興味深さのスコアだけです。

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

アソシエーション ルール

シーケンス クラスター

使用しない

これらのアルゴリズムでは、機能の選択は実行されません。

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

詳細については、「Microsoft アソシエーション アルゴリズム テクニカル リファレンス」および「Microsoft シーケンス クラスタ アルゴリズム テクニカル リファレンス (Analysis Services - データ マイニング)」を参照してください。

時系列

使用しない

機能の選択は、時系列モデルには適用されません。

このアルゴリズムの詳細については、「Microsoft タイム シリーズ アルゴリズム テクニカル リファレンス」を参照してください。

機能の選択の動作の制御

機能の選択をサポートするアルゴリズムでは、以下のパラメーターを使用して、機能の選択をいつオンにするかを制御できます。 各アルゴリズムには、許可される入力数の既定値がありますが、その既定値をオーバーライドして属性の数を指定できます。

MAXIMUM_INPUT_ATTRIBUTES

MAXIMUM_INPUT_ATTRIBUTES パラメーターで指定した数より多い列がモデルにある場合、アルゴリズムでは、計算により無意味であると判断されたすべての列が無視されます。

MAXIMUM_OUTPUT_ATTRIBUTES

同様に、MAXIMUM_OUTPUT_ATTRIBUTES パラメーターで指定した数より多い予測可能列がモデルにある場合、アルゴリズムでは、計算により無意味であると判断されたすべての列が無視されます。

MAXIMUM_STATES

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