シーケンス クラスタ モデルでの予測の作成 (中級者向けデータ マイニング チュートリアル)
シーケンス クラスタ モデルをビューアで参照して理解を深めたら、データ マイニング デザイナの [マイニング モデル予測] タブをクリックし、予測クエリ ビルダを使用して予測クエリを作成します。予測を作成するには、まずシーケンス クラスタ モデルを選択し、次に入力データを選択します。入力については、外部データ ソースを使用するか、単一クエリを作成してダイアログ ボックスで値を指定することができます。
このレッスンでは、予測クエリ ビルダの使用方法について理解していることを前提に、シーケンス クラスタ モデルに固有のクエリの作成方法について説明します。予測クエリ ビルダの使用方法に関する一般的な情報については、「DMX 予測クエリの作成」または「基本的なデータ マイニング チュートリアル」の「予測の作成 (基本的なデータ マイニング チュートリアル)」を参照してください。
地域モデルでの予測の作成
このシナリオでは、まずいくつかの単一予測クエリを作成し、予測が地域ごとにどのように異なるかについて確認します。
シーケンス クラスタ モデルに対する単一クエリを作成するには
データ マイニング デザイナの [マイニング モデル予測] タブをクリックします。
[マイニング モデル] 列メニューの [単一クエリ] をクリックします。
[マイニング モデル] ペインと [単一クエリ入力] ペインが表示されます。
[マイニング モデル] ペインの [モデルの選択] をクリックします (既にシーケンス クラスタ モデルが選択されている場合は、この手順を省略します)。
[マイニング モデルの選択] ダイアログ ボックスが表示されます。
マイニング構造 [Sequence Clustering with Region] を表すノードを展開し、モデル [Sequence Clustering with Region] を選択します。[OK] をクリックします。ここでは、入力ペインは無視します。入力は予測関数の設定後に指定します。
グリッドの [ソース] で空のセルをクリックし、[予測関数] を選択します。[フィールド] のセルで、[PredictSequence] を選択します。
注意 Predict 関数を使用することもできます。この関数を使用する場合は、引数としてテーブル列を受け取るバージョンの Predict 関数を選択してください。
[マイニング モデル] ペインで入れ子になったテーブル [v Assoc Seq Line Items] を選択し、グリッドの PredictSequence 関数の [条件と引数] ボックスにドラッグします。
テーブル名と列名をドラッグ アンド ドロップすると、構文エラーを発生させずに複雑なステートメントを作成できます。ただし、PredictSequence 関数のその他の省略可能な引数を含むセルの現在の内容が置き換えられます。その他の引数を表示するには、関数の 2 番目のインスタンスを参照用として一時的にグリッドに追加します。
予測クエリ ビルダの上隅にある [結果] ボタンをクリックします。
結果には、[式] という見出しの単一の列が含まれると予想されます。[式] 列には、次のような 3 列を示す入れ子になったテーブルが含まれます。
$SEQUENCE |
行番号 |
モデル |
---|---|---|
1 |
|
Mountain-200 |
この結果からわかることは何でしょうか。入力を指定していないことに注意してください。予測はケースの母集団全体に対して作成され、Analysis Services からは最も可能性の高い全体的な予測が返されます。
単一予測クエリへの入力の追加
この時点では、まだ入力を指定していません。次の作業では、[単一クエリ入力] ペインを使用してクエリへの入力を指定します。まず、予測されたシーケンスがすべての地域で同じかどうかを判断するために、地域シーケンス クラスタ モデルへの入力として [Region] を使用します。次に、各予測の確率を追加するようにクエリを変更し、結果をフラット化して見やすくする方法について説明します。
特定の顧客グループの予測を生成するには
予測クエリ ビルダの左上隅にある [デザイン] ボタンをクリックして、クエリ作成グリッドに戻ります。
[単一クエリ入力] ダイアログ ボックスで、[Region] の [値] ボックスをクリックして [Europe] を選択します。
[結果] ボタンをクリックして、ヨーロッパの顧客の予測を表示します。
予測クエリ ビルダの左上隅にある [デザイン] ボタンをクリックして、クエリ作成グリッドに戻ります。
[単一クエリ入力] ダイアログ ボックスで、[Region] の [値] ボックスをクリックして [North America] を選択します。
[結果] ボタンをクリックして、北米の顧客の予測を表示します。
カスタム式を使用した確率の追加
確率は予測の属性であり、入れ子になったテーブルとして出力されるので、各予測の確率を出力するのはやや複雑です。データ マイニング拡張機能 (DMX) に慣れている場合は、入れ子になったテーブルに対する下位選択ステートメントを追加するようにクエリを簡単に変更できます。また、予測クエリ ビルダでカスタム式を追加して下位選択ステートメントを作成することもできます。
カスタム式を使用して予測されたシーケンスの確率を出力するには
予測クエリ ビルダの左上隅にある [デザイン] ボタンをクリックして、クエリ作成グリッドに戻ります。
グリッドの [ソース] で新しい行をクリックし、[カスタム式] を選択します。
[フィールド] のボックスは空白のままにしておきます。
[別名] に「t」と入力します。
[条件と引数] ボックスに、次のコード サンプルのように下位選択ステートメント全体を入力します。必ず開始かっこと終了かっこも入力してください。
(SELECT PredictProbability([Model]) FROM PredictSequence([Sequence Clustering with Region].[v Assoc Seq Line Items]))
[結果] ボタンをクリックして、ヨーロッパの顧客の予測を表示します。
結果に、2 つの入れ子になったテーブルが含まれるようになります。一方のテーブルには予測、もう一方のテーブルには予測の確率が示されます。クエリが機能しない場合は、クエリ デザイン ビューに切り替えて、次のようなクエリ ステートメント全体を確認できます。
SELECT
PredictSequence([Sequence Clustering with Region].[v Assoc Seq Line Items]),
( (SELECT PredictProbability([Model]) FROM PredictSequence([Sequence Clustering with Region].[v Assoc Seq Line Items]))) as [t]
FROM
[Sequence Clustering with Region]
NATURAL PREDICTION JOIN
(SELECT 'Europe' AS [Region]) AS t
結果の操作
結果に多数の入れ子になったテーブルが含まれている場合は、結果をフラット化して見やすくすることができます。そのためには、クエリを手動で変更し、FLATTENED キーワードを追加します。
予測クエリで入れ子になった行セットをフラット化するには
予測クエリ ビルダの隅にある [クエリ] ボタンをクリックします。
グリッドが開いたペインに変わり、予測クエリ ビルダで作成された DMX ステートメントを表示および変更できるようになります。
SELECT キーワードの後に、「FLATTENED」と入力します。
クエリの全テキストは次のようになります。
SELECT FLATTENED PredictSequence([Sequence Clustering with Region].[v Assoc Seq Line Items]), ( (SELECT PredictProbability([Model]) FROM PredictSequence([Sequence Clustering with Region].[v Assoc Seq Line Items]))) as [t] FROM [Sequence Clustering with Region] NATURAL PREDICTION JOIN (SELECT 'Europe' AS [Region]) AS t
予測クエリ ビルダの上隅にある [結果] ボタンをクリックします。
クエリを手動で編集した後、デザイン ビューに戻ると変更は失われます。ただし、手動で作成した DMX ステートメントをテキスト ファイルに保存してからデザイン ビューに戻ることはできます。この場合、クエリはデザイン ビューで有効であった最後のバージョンに戻ります。
関連モデルでの予測の作成
ここまでの例では、モデルで地域間の違いが見られたかどうかを確認するために、ケース テーブル列 [地域] を単一予測クエリへの入力として使用しました。ただし、モデルの調査後に、その違いは地域ごとに製品の提案をカスタマイズするほど顕著なものではないと判断しました。実際に予測する必要があるのは顧客が選択するアイテムです。したがって、次のクエリでは、地域を含まないシーケンス クラスタ モデルを使用して、すべての顧客に対する提案を生成します。
入力としての入れ子になったテーブル列の使用
まず、単一のアイテムを入力として受け取り、次に選択される可能性が高いアイテムを返す単一予測クエリを作成します。このような予測を得るには、入力値として入れ子になったテーブル列を使用する必要があります。これは、予測する属性 "モデル" が入れ子になったテーブルの一部であるためです。Analysis Services には [入れ子になったテーブルの入力] ダイアログ ボックスが用意されており、予測クエリ ビルダを使用して入れ子になったテーブルの属性に対する予測クエリを簡単に作成できます。
入れ子になったテーブルを予測への入力として使用するには
予測クエリ ビルダの左上隅にある [デザイン] ボタンをクリックして、クエリ作成グリッドに戻ります。
[単一クエリ入力] ダイアログ ボックスで、[Region] の [値] ボックスをクリックし、空の行を選択してこのフィールドの入力をクリアします。
[単一クエリ入力] ダイアログ ボックスで、[vAssocSeqLineItems] の [値] ボックスをクリックして [...] ボタンをクリックします。
[入れ子になったテーブルの入力] ダイアログ ボックスの [追加] をクリックします。
新しい行の [モデル] のボックスをクリックし、一覧から Touring Tire を選択します。[OK] をクリックします。
[結果] ボタンをクリックして、予測を表示します。
最初のアイテムとして Touring Tire を選択したすべての顧客に、次のアイテムとして以下のものがモデルによって提案されます。モデルの調査によって、顧客が Touring Tire 製品と Touring Tire Tube 製品を一緒に購入することが多いとわかっているので、この提案は適切です。
$SEQUENCE |
行番号 |
モデル |
---|---|---|
1 |
|
Touring Tire Tube |
2 |
|
Sport-100 |
3 |
|
Long-Sleeve Logo Jersey |
入れ子になったテーブルの入力を使用する一括予測クエリの作成
提案に使用できる予測がモデルによって作成されることを確認したので、次は外部データ ソースにマップされる予測クエリを作成します。そのデータ ソースは、現在の製品を表す値を提供します。顧客 ID と製品一覧を入力として提供する予測クエリを作成することが目的であるため、ケース テーブルとして顧客テーブルを、入れ子になったテーブルとして購入記録テーブルをそれぞれ追加します。その後、提案を作成したときと同様に予測関数を追加します。
この手順は、レッスン 3 でマーケット バスケット シナリオ用の予測を作成したときと同じ手順です。ただし、シーケンス クラスタ モデルの予測では、入力として注文も必要になります。
入れ子になったテーブルの入力を使用する予測クエリを作成するには
[マイニング モデル] ペインで、シーケンス クラスタ モデルを選択します (選択されていない場合)。
[入力テーブルの選択] ダイアログ ボックスで、[ケース テーブルの選択] をクリックします。
[テーブルの選択] ダイアログ ボックスの [データ ソース] で、[注文] を選択します。[テーブル名またはビュー名] ボックスの一覧で [vAssocSeqOrders] を選択し、[OK] をクリックします。
[入力テーブルの選択] ダイアログ ボックスで、[入れ子になったテーブルの選択] をクリックします。
[テーブルの選択] ダイアログ ボックスの [データ ソース] で、[注文] を選択します。[テーブル名またはビュー名] ボックスの一覧で [vAssocSeqLineItems] を選択し、[OK] をクリックします。
Analysis Services でリレーションシップの検出が試行され、データ型が一致して列名が類似している場合は、リレーションシップが自動的に作成されます。作成されたリレーションシップが正しくない場合は、結合線を右クリックして [接続の変更] を選択し、列マッピングを編集するか、結合線を右クリックして [削除] を選択し、リレーションシップを完全に削除することができます。この場合、テーブルがデータ ソース ビューで既に結合されているため、これらのリレーションシップはデザイン ペインに自動的に追加されます。
グリッドに新しい行を追加します。[ソース] で [vAssocSeqOrders] を選択し、[フィールド] で [CustomerKey] を選択します。
グリッドに新しい行を追加します。[ソース] で [予測関数] を選択し、[フィールド] で [PredictSequence] を選択します。
vAssocSeqLineItems を [条件と引数] ボックスにドラッグします。[条件と引数] ボックスの末尾をクリックし、引数「2」を入力します。
[条件と引数] ボックスの全テキストは、"[Sequence Clustering].[v Assoc Seq Line Items],2" になります。
[結果] ボタンをクリックして、顧客ごとの予測を表示します。
これで、シーケンス クラスタ モデルのチュートリアルは完了です。
次の手順
「中級者向けデータ マイニング チュートリアル (Analysis Services - データ マイニング)」のすべてのセクションが完了した場合は、次に、データ マイニング拡張機能 (DMX) ステートメントを使用してモデルの作成や予測の生成を行う方法を学習します。詳細については、「チュートリアル : DMX の使用」を参照してください。
プログラミングの概念について理解している場合は、分析管理オブジェクト (AMO) を使用してデータ マイニング オブジェクトをプログラムで操作することもできます。詳細については、「AMO データ マイニング クラス」を参照してください。