レッスン 3: Market Basket マイニング構造の処理
このレッスンでは、INSERT INTO (DMX) ステートメントと AdventureWorksDW2008R2 サンプル データベースの vAssocSeqLineItems および vAssocSeqOrders を使用して、「レッスン 1: Market Basket マイニング構造の作成」および「レッスン 2: Market Basket マイニング構造へのマイニング モデルの追加」で作成したマイニング構造とマイニング モデルを処理します。
マイニング構造の処理では、Analysis Services でソース データが読み込まれ、マイニング モデルをサポートする構造が構築されます。マイニング モデルの処理では、マイニング構造で定義されたデータが、選択したデータ マイニング アルゴリズムを介して受け渡されます。このアルゴリズムでは傾向とパターンが検索され、結果の情報がマイニング モデルに保存されます。したがって、マイニング モデルには、実際のソース データではなく、アルゴリズムで検出された情報が含まれます。マイニング モデルの処理の詳細については、「データ マイニング オブジェクトの処理」を参照してください。
マイニング構造の再処理は、構造列またはソース データを変更した場合にのみ必要です。処理済みのマイニング構造にマイニング モデルを追加する場合は、INSERT INTO MINING MODEL ステートメントを使用して既存のデータに対して新しいマイニング モデルをトレーニングできます。
Market Basket マイニング構造には入れ子になったテーブルが含まれるため、入れ子になったテーブル構造でトレーニングするようにマイニング列を定義する必要があります。また、SHAPE コマンドを使用して、ソース テーブルからトレーニング データを抽出するクエリを定義する必要があります。
INSERT INTO ステートメント
Market Basket マイニング構造と、それに関連するマイニング モデルをトレーニングするには、INSERT INTO (DMX) ステートメントを使用します。ステートメントのコードは次の部分に分けられます。
マイニング構造の指定
マイニング構造の列の一覧
SHAPE によるトレーニング データの定義
INSERT INTO ステートメントの汎用例を次に示します。
INSERT INTO MINING STRUCTURE [<mining structure name>]
(
<mining structure columns>
[<nested table>]
( SKIP, <skipped column> )
)
SHAPE {
OPENQUERY([<datasource>],'<SELECT statement>') }
APPEND
(
{OPENQUERY([<datasource>],'<nested SELECT statement>')
}
RELATE [<case key>] TO [<foreign key>]
) AS [<nested table>]
コードの最初の行では、トレーニングするマイニング構造を指定します。
INSERT INTO MINING STRUCTURE [<mining structure name>]
コードの次の数行では、マイニング構造で定義される列を指定します。ここではマイニング構造の各列を指定する必要があります。各列はソース クエリ データ内の列にマップされている必要があります。SKIP を使用すると、ソース データに存在するがマイニング構造に存在しない列を無視できます。SKIP の使用方法の詳細については、「INSERT INTO (DMX)」を参照してください。
(
<mining structure columns>
[<nested table>]
( SKIP, <skipped column> )
)
コードの最後の行では、マイニング構造のトレーニングに使用されるデータを定義します。ソース データは 2 つのテーブルに格納されているため、SHAPE を使用してテーブルを関連付けます。
SHAPE {
OPENQUERY([<datasource>],'<SELECT statement>') }
APPEND
(
{OPENQUERY([<datasource>],''<nested SELECT statement>'')
}
RELATE [<case key>] TO [<foreign key>]
) AS [<nested table>]
このレッスンでは、OPENQUERY を使用してソース データを定義します。ソース データに対するクエリを定義する他の方法については、「<source data query>」を参照してください。
このレッスンの作業
このレッスンでは、次の作業を行います。
- Market Basket マイニング構造の処理
Market Basket マイニング構造の処理
INSERT INTO を使用してマイニング構造を処理するには
オブジェクト エクスプローラーで、Analysis Services インスタンスを右クリックし、[新しいクエリ] をポイントして [DMX] をクリックします。
クエリ エディターが開き、新しい空のクエリが表示されます。
上の INSERT INTO ステートメントの汎用例を空のクエリにコピーします。
次の部分を探します。
[<mining structure>]
これを次の文字列に置き換えます。
Market Basket
次の部分を探します。
<mining structure columns> [<nested table>] ( SKIP, <skipped column> )
これを次の文字列に置き換えます。
[OrderNumber], [Products] (SKIP, [Model])
このステートメントでは、Products は SHAPE ステートメントで定義される Products テーブルを参照します。SKIP は、ソース データにキーとして存在する Model 列を無視するために使用します。マイニング構造に対しては使用できません。
次の部分を探します。
SHAPE { OPENQUERY([<datasource>],'<SELECT statement>') } APPEND ( {OPENQUERY([<datasource>],'<nested SELECT statement>') } RELATE [<case key>] TO [<foreign key>] ) AS [<nested table>]
これを次の文字列に置き換えます。
SHAPE { OPENQUERY([Adventure Works DW 2008R2],'SELECT OrderNumber FROM vAssocSeqOrders ORDER BY OrderNumber')} APPEND ( {OPENQUERY([Adventure Works DWR2],'SELECT OrderNumber, Model FROM dbo.vAssocSeqLineItems ORDER BY OrderNumber, Model') } RELATE OrderNumber to OrderNumber ) AS [Products]
このソース クエリは、AdventureWorksDW2008R2 サンプル プロジェクトで定義されている AdventureWorksDW2008R2 データ ソースを参照します。ソース クエリはこのデータ ソースを使用して、vAssocSeqLineItems ビューと vAssocSeqOrders ビューにアクセスします。これら 2 つのビューには、マイニング モデルのトレーニングに使用されるソース データが含まれます。このプロジェクトやこれらのビューをまだ作成していない場合は、「基本的なデータ マイニング チュートリアル」を参照してください。
SHAPE コマンド内では、OPENQUERY を使用して 2 つのクエリを定義します。最初のクエリでは親テーブルを定義し、2 つ目のクエリでは入れ子になったテーブルを定義します。2 つのテーブルは、両方のテーブルに存在する OrderNumber 列を使用して関連付けられます。
最終的なステートメントは次のようになります。
INSERT INTO MINING STRUCTURE [Market Basket] ( [OrderNumber],[Products] (SKIP, [Model]) ) SHAPE { OPENQUERY([Adventure Works DW 2008R2],'SELECT OrderNumber FROM vAssocSeqOrders ORDER BY OrderNumber')} APPEND ( {OPENQUERY([Adventure Works DW 2008R2],'SELECT OrderNumber, Model FROM dbo.vAssocSeqLineItems ORDER BY OrderNumber, Model') } RELATE OrderNumber to OrderNumber ) AS [Products]
[ファイル] メニューで、[名前を付けて DMXQuery1.dmx を保存] をクリックします。
[名前を付けて保存] ダイアログ ボックスで、適切なフォルダーを参照して指定し、ファイルに「Process Market Basket.dmx」という名前を付けます。
ツール バーの [実行] ボタンをクリックします。
クエリの実行終了後、見つかったパターンとアイテムセットを表示したり、関連付けを表示したり、アイテムセット、確率、または重要度でフィルタリングしたりできます。この情報を表示するには、SQL Server Management Studio でデータ モデルの名前を右クリックし、[参照] をクリックします。
次のレッスンでは、Market Basket 構造に追加したマイニング モデルに基づいて、いくつかの予測を作成します。