マイニング構造 (Analysis Services - データ マイニング)

マイニング構造には、マイニング モデルの作成元となる、データ ソース ビュー、列の数と型、トレーニング セットとテスト セットに分ける省略可能なパーティションなどのデータを定義します。1 つのマイニング構造には、同じドメインを共有する複数のマイニング モデルを含めることができます。次の図は、データ マイニング構造とデータ ソースの関係、およびデータ マイニング構造とそれを構成するデータ マイニング モデルの関係を示しています。

データの処理 : ソース、構造、およびモデル

図内のマイニング構造は、CustomerID フィールドで結合された複数のテーブルまたはビューを含むデータ ソースを基にしています。1 つのテーブルには顧客に関する情報 (地理的な領域、年齢、収入、性別など) が格納され、入れ子になった関連テーブルには各顧客の追加情報 (顧客が購入した製品など) を含む複数の行が格納されます。この図は、同じマイニング構造から複数のモデルを作成し、それぞれのモデルに構造からさまざまな列を採用できることを示しています。

モデル 1    CustomerID、Income、Age、Region を使用し、Region でデータをフィルタリングします。

モデル 2    CustomerID、Income、Age、Region を使用し、Age でデータをフィルタリングします。

モデル 3    CustomerID、Age、Gender と入れ子になったテーブルを使用し、フィルタは適用しません。

それぞれのモデルは入力に異なる列を使用しており、うち 2 つのモデルはフィルタ適用によってモデル内で使用するデータをさらに絞り込んでいるため、同じデータに基づいていても結果は著しく異なる場合があります。CustomerID 列は、ケース キーとして使用できる唯一の有効な列であるため、すべてのモデルに必要となります。

ここでは、データ マイニング構造の基本的なアーキテクチャについて説明します。データ マイニング構造の作成、管理、変更、および表示方法の詳細については、「データ マイニング構造とデータ マイニング モデルの管理」を参照してください。

マイニング構造の定義

データ マイニング構造の設定は、次の手順で行います。

  • データ ソースの定義

  • 構造列の選択とキーの定義

  • トレーニング セットと省略可能なテスト セットへのソース データのパーティション分割

  • 構造の処理

マイニング構造のデータ ソース

マイニング構造を定義する際には、既存のデータ ソース ビューで使用できる列を指定します。データ ソース ビューによって、複数のデータ ソースを結合して、作成された構造またはマイニング モデル内で 1 つのソースとして取り扱うことができます。元のデータ ソースはクライアント アプリケーションに対して非表示です。

データ ソース ビューの詳細については、「データ ソース ビュー (Analysis Services - 多次元データ)」を参照してください。

同じマイニング構造から複数のマイニング モデルを作成する場合、それぞれのモデルに構造からさまざまな列を採用し、異なる方法で列を使用することができます。たとえば、1 つの構造を作成してデシジョン ツリー モデルとクラスタ モデルを別々に作成し、各モデルが別々の列を使用したり、異なる属性を予測したりできます。

データ マイニング構造には、ソース データへのバインドのみが格納されます。DMX の CREATE MINING STRUCTURE (DMX) ステートメントを使用して、特定のデータ ソースにバインドせずにデータ マイニング構造を作成することもできます。

マイニング構造列

マイニング構造の構成要素は、データ ソースに格納されているデータについて記述したマイニング構造列です。マイニング構造列には、データ型、コンテンツの種類、データの配布方法などの情報が格納されます。マイニング構造には、特定のマイニング モデルに対する列の使用方法や、モデルを構築するために使用されるアルゴリズムの種類などの情報は含まれていません。これらの情報は、マイニング モデルの内部で定義されます。

マイニング構造には、入れ子になったテーブルを含めることもできます。入れ子になったテーブルは、ケースのエンティティとその関連属性との間の一対多の関係を表します。たとえば、顧客に関する情報と顧客の購入記録が別々のテーブルに格納されている場合は、入れ子になったテーブルを使用すると、これらの情報を単一のケースにまとめることができます。この場合、顧客の識別子はエンティティで、購入記録は関連する属性となります。入れ子になったテーブルを使用する場合の詳細については、「入れ子になったテーブル (Analysis Services - データ マイニング)」を参照してください。

Business Intelligence Development Studio でデータ マイニング モデルを作成するには、まずデータ マイニング構造を作成する必要があります。データ マイニング ウィザードを使用すると、マイニング構造の作成、データの選択、およびマイニング モデルの追加の手順を段階的に実行できます。

データ マイニング拡張機能 (DMX) を使用してマイニング モデルを作成する場合は、モデルとモデル内の列を指定すると、必要なマイニング構造が DMX によって自動的に作成されます。詳細については、「CREATE MINING MODEL (DMX)」を参照してください。

詳細については、「マイニング構造列」を参照してください。

トレーニング データとテスト データ

マイニング構造のデータを定義する際に、データの一部をトレーニング用に、一部をテスト用に指定することもできます。そのため、データ マイニング構造を作成する前にデータをパーティション分割する必要はなくなりました。データの一定の割合をテスト用、残りをトレーニング用として指定できます。また、テスト データセットとして使用するケースの数を指定することもできます。パーティションの情報はマイニング構造と共にキャッシュされます。したがって、その構造に基づくすべてのモデルで同じテスト セットを使用できます。

詳細については、「トレーニング セットとテスト セットへのデータのパーティション分割 (Analysis Services - データ マイニング)」を参照してください。

ドリルスルーの有効化

特定のマイニング モデルで使用する予定がない列でも、マイニング構造に追加することができます。列に使用方法を指定しない場合、その列は分析と予測では無視されます。一方、マイニング モデルのドリルスルーを有効にすることで、クエリに使用することができます。たとえば、適切な権限があれば、マイニング モデルの特定の結果からドリルスルーを行ってノード内のケースに関する詳細情報を取得することができ、モデルで使用されていなかった構造列にもアクセスできます。

詳細については、「マイニング モデルとマイニング構造におけるドリルスルーの使用 (Analysis Services - データ マイニング)」を参照してください。

マイニング構造の処理

マイニング構造は、処理されるまでは単なるメタデータ コンテナです。マイニング構造を処理する際、Analysis Services は、データに関する統計値、連続属性を分離する方法に関する情報、および後でマイニング モデルが使用するその他の情報を格納するキャッシュを作成します。マイニング モデル自体はデータを保存せず、キャッシュ内の情報を参照します。したがって、マイニング モデルを処理するときには、構造キャッシュが使用できる状態になっている必要があります。使用できない場合は、モデルを構築する前に構造を再処理する必要があります。

データをキャッシュしない場合は、マイニング構造の CacheMode プロパティを ClearAfterProcessing に変更できます。これにより、モデルを処理した後にキャッシュが破棄されます。CacheMode プロパティを ClearAfterProcessing に設定すると、マイニング モデルからのドリルスルーが無効になります。

キャッシュされたデータを使用できる限り、構造に新しいマイニング モデルを追加するときにマイニング構造を再処理する必要はなく、モデルのみを処理できます。詳細については、「データ マイニング オブジェクトの処理」を参照してください。

マイニング構造の表示

ビューアを使用して、マイニング構造内のデータを参照することはできません。しかし、Business Intelligence Development Studio では、データ マイニング デザイナの [マイニング構造] タブを使用して構造列とその定義を表示できます。詳細については、「データ マイニング デザイナ」を参照してください。

マイニング構造のデータを確認する場合、データ マイニング拡張機能 (DMX) を使用してクエリを作成できます。たとえば、SELECT * FROM <structure>.CASES というステートメントでは、マイニング構造のすべてのデータが返されます。この情報を取得するには、マイニング構造が既に処理されていて、処理結果がキャッシュされている必要があります。

SELECT * FROM <model>.CASES というステートメントでは同じ列が返されますが、特定のモデルのケースのみです。詳細については、「SELECT FROM <structure>.CASES」および「SELECT FROM <model>.CASES (DMX)」を参照してください。

データ マイニング モデルとマイニング構造の使用

データ マイニング モデルは、マイニング構造によって表されるデータにマイニング モデル アルゴリズムを適用します。マイニング モデルは特定のマイニング構造に属するオブジェクトで、マイニング構造によって定義されるプロパティのすべての値を継承します。マイニング モデルは、マイニング構造に含まれているすべての列またはその一部を使用することができます。構造列の複数のコピーを構造に追加できます。構造列の複数のコピーをモデルに追加し、モデルの各構造列に異なる名前、つまり別名を割り当てることもできます。構造列の別名定義の詳細については、「モデル列の別名を作成する方法」および「マイニング モデルのプロパティの設定」を参照してください。

データ マイニング モデルのアーキテクチャの詳細については、「マイニング モデル (Analysis Services - データ マイニング)」を参照してください。