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

適用対象:SQL Server 2019 以前の Analysis Services Azure Analysis Services Fabric/Power BI Premium

重要

データ マイニングは SQL Server 2017 Analysis Services で非推奨となり、SQL Server 2022 Analysis Services で停止されました。 非推奨および停止された機能については、ドキュメントの更新は行われません。 詳細については、「Analysis Services 下位互換性」を参照してください。

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

データの処理: ソースから構造、モデルへの

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

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

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

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

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

このセクションでは、データ マイニング構造の基本的なアーキテクチャについて説明します。マイニング構造の定義方法、その構造にデータを設定する方法、モデル作成のためにそれを使用する方法などが含まれます。 既存のデータ マイニング構造の管理方法またはエクスポート方法の詳細については、「 データ マイニング ソリューションおよびオブジェクトの管理」を参照してください。

マイニング構造の定義

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

  • データ ソースを定義します。

  • 構造に含めるデータの列を選択し (モデルにはすべての列を含める必要はありません)、キーを定義します。

  • 必要に応じて入れ子になったテーブルのキーも含めて、構造のキーを定義します。

  • ソース データをトレーニング セットとテスト セットに分割する必要があるかどうかを指定します。 この手順は省略可能です。

  • 構造を処理します。

これらの手順は、以下のセクションで詳しく説明します。

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

マイニング構造を定義する際には、既存のデータ ソース ビューで使用できる列を指定します。 データ ソース ビューは、複数のデータ ソースをまとめて 1 つのデータ ソースとして使用することができる共有オブジェクトです。 元のデータ ソースはクライアント アプリケーションでは表示されません。データ型の変更や、集計列またはエイリアス列の作成には、データ ソース ビューのプロパティを使用できます。

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

また、各モデルでは、構造からさまざまな方法で列を使用できます。 たとえば、データ ソース ビューに Income 列が含まれるとすると、それを異なるモデルに対して異なる方法でバインドすることができます。

データ マイニング構造には、データ ソースおよびそれに含まれる列の定義がソース データへの バインド という形で保存されます。 データ ソース バインドの詳細については、「 データ ソースとバインド (SSAS 多次元)」を参照してください。 ただし、DMX CREATE MINING STRUCTURE (DMX) ステートメントを使用して、特定のデータ ソースにバインドせずにデータ マイニング構造を作成することもできます。

マイニング構造列

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

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

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

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

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

トレーニング セットとテスト セットへのデータの分割

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

詳しくは、「 Training and Testing Data Sets」をご覧ください。

ドリルスルーの有効化

特定のマイニング モデルで使用する予定がない列でも、マイニング構造に追加することができます。 これは、分析プロセスで電子メール アドレスを使用せずに、クラスター モデルで顧客の電子メール アドレスを検索する場合などに便利です。 分析および予測のフェーズで列を無視するには、それを構造に追加しますが、使用法フラグを Ignore に設定するか、その列の使用を指定しません。 マイニング モデルでドリルスルーが有効であり、ユーザーが適切な権限を持っている場合には、この方法でフラグを設定したデータをクエリで使用できます。 たとえば、モデルの作成にそれらの列のデータが使用されなかった場合でも、すべての顧客の分析結果のクラスターを確認してから、ドリルスルー クエリを使用して特定のクラスターの顧客の名前と電子メールを取得できます。

詳細については、「 ドリルスルー クエリ (データ マイニング)」を参照してください。

マイニング構造の処理

マイニング構造は、処理されるまでは単なるメタデータ コンテナーです。 マイニング構造を処理すると、SQL Server Analysis Servicesは、データに関する統計、連続属性の分離方法に関する情報、および後でマイニング モデルで使用されるその他の情報を格納するキャッシュを作成します。 マイニング モデル自体には、このサマリー情報は保存されませんが、代わりに、マイニング構造の処理時にキャッシュに保存された情報が参照されます。 したがって、既存の構造に新しいモデルを追加するたびに構造を再処理する必要はなく、モデルのみを処理できます。

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

ただし、キャッシュを破棄した後は、マイニング構造に新しいモデルを追加することはできません。 新しいマイニング モデルを追加したり、既存のモデルのプロパティを変更した場合は、マイニング構造を最初に再処理する必要があります。 詳細については、「 処理の要件と考慮事項 (データ マイニング)」を参照してください。

マイニング構造の表示

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

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

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

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

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

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

マイニング構造の定義、管理、使用の詳細については、次のリンクを使用してください。

タスク リンク
リレーショナル マイニング構造の操作 新しいリレーショナル マイニング構造の作成

マイニング構造への入れ子になったテーブルの追加
OLAP キューブに基づくマイニング構造の操作 新規の OLAP マイニング構造の作成
マイニング構造の列を操作する マイニング構造への列の追加

マイニング構造からの列の削除
マイニング構造のプロパティおよびデータの変更またはクエリ マイニング構造のプロパティの変更
基になるデータ ソースの操作とソース データの更新 マイニング構造に使用されるデータ ソース ビューの編集

マイニング構造の処理

参照

データベース オブジェクト (Analysis Services - 多次元データ)
マイニング モデル (Analysis Services - データ マイニング)