シーケンス クラスター モデルでの予測の作成 (中級者向けデータ マイニング チュートリアル)
ビューアーで参照することでシーケンス クラスタリング モデルの理解を深めてから、データ マイニング Designerの [マイニング モデル予測] タブで予測クエリ ビルダーを使用して予測クエリを作成できます。 予測を作成するには、まずシーケンス クラスター モデルを選択し、次に入力データを選択します。 入力については、外部データ ソースを使用するか、単一クエリを作成してダイアログ ボックスで値を指定することができます。
このレッスンでは、予測クエリ ビルダーの使用方法について理解していることを前提に、シーケンス クラスター モデルに固有のクエリの作成方法について説明します。 予測クエリ ビルダーの使用方法に関する一般的な情報については、「 データ マイニング クエリ インターフェイス」 または基本的なデータ マイニング チュートリアルの「 予測の作成 (基本的なデータ マイニング チュートリアル)」セクションを参照してください。
地域モデルでの予測の作成
このシナリオでは、まずいくつかの単一予測クエリを作成し、予測が地域ごとにどのように異なるかについて確認します。
シーケンス クラスター モデルに対する単一クエリを作成するには
[データ マイニング Designer] の [マイニング モデル予測] タブをクリックします。
[ マイニング モデル ] 列メニューで、[ シングルトン クエリ] を選択します。
[ マイニング モデル ] ペインと [シングルトン クエリ入力 ] ペインが表示されます。
[ マイニング モデル ] ウィンドウで、[ モデルの選択] をクリックします。 (既にシーケンス クラスター モデルが選択されている場合は、この手順を省略します)。
[ マイニング モデルの選択 ] ダイアログ ボックスが開きます。
マイニング構造を表すノードを展開 します。[リージョンを使用したシーケンス クラスタリング] を選択し、モデル [ Sequence Clustering with Region]\(リージョンを使用したシーケンス クラスタリング\) を選択します。 [OK] をクリックします。 ここでは、入力ペインは無視します。入力は予測関数の設定後に指定します。
グリッドで、[ ソース ] の下にある空のセルをクリックし、[ 予測関数 ] を選択します。[ フィールド] の下のセルで、[ PredictSequence] を選択します。
注意
Predict 関数を使用することもできます。 その場合は、テーブル列を引数として受け取る Predict 関数のバージョンを必ず選択してください。
[マイニング モデル] ペインで、入れ子になったテーブル
v Assoc Seq Line Items
を選択し、それをグリッド内の PredictSequence 関数の [抽出条件/引数] ボックスにドラッグします。テーブル名と列名をドラッグ アンド ドロップすると、構文エラーなしで複雑なステートメントを作成できます。 ただし、 PredictSequence 関数の他の省略可能な引数を含む、セルの現在の内容を置き換えます。 その他の引数を表示するには、関数の 2 番目のインスタンスを参照用として一時的にグリッドに追加します。
予測クエリ ビルダーの右上隅にある [ 結果 ] ボタンをクリックします。
予想される結果には、 Expression という見出しを持つ 1 つの列が含まれます。 Expression 列には、次の 3 つの列を含む入れ子になったテーブルが含まれています。
$SEQUENCE | Line Number | モデル |
---|---|---|
1 | Mountain-200 |
この結果からわかることは何でしょうか。 入力を指定していないことに注意してください。 予測はケースの母集団全体に対して作成され、Analysis Services からは最も可能性の高い全体的な予測が返されます。
単一予測クエリへの入力の追加
この時点では、まだ入力を指定していません。 次のタスクでは、[ Singleton Query Input]\(シングルトン クエリ入力 \) ペインを使用して、クエリへの入力をいくつか指定します。 まず、予測されたシーケンスがすべての地域で同じかどうかを判断するために、地域シーケンス クラスター モデルへの入力として [Region] を使用します。 次に、各予測の確率を追加するようにクエリを変更し、結果をフラット化して見やすくする方法について説明します。
特定の顧客グループの予測を生成するには
予測クエリ ビルダーの左上隅にある [ デザイン ] ボタンをクリックして、クエリ作成グリッドに戻ります。
[ シングルトン クエリ入力 ] ダイアログ ボックスで、 の [値 ] ボックス
Region
をクリックし、 [ ヨーロッパ] を選択します。[ 結果 ] ボタンをクリックして、ヨーロッパの顧客の予測を表示します。
予測クエリ ビルダーの左上隅にある [ デザイン ] ボタンをクリックして、クエリ作成グリッドに戻ります。
[シングルトン クエリ入力] ダイアログ ボックスで、 の [値] ボックス
Region
をクリックし、 [北米] を選択します。[結果] ボタンをクリックして、北米の顧客の予測を表示します。
カスタム式を使用した確率の追加
確率は予測の属性であり、入れ子になったテーブルとして出力されるので、各予測の確率を出力するのはやや複雑です。 データ マイニング拡張機能 (DMX) に慣れている場合は、入れ子になったテーブルに対する下位選択ステートメントを追加するようにクエリを簡単に変更できます。 また、予測クエリ ビルダーでカスタム式を追加して下位選択ステートメントを作成することもできます。
カスタム式を使用して予測されたシーケンスの確率を出力するには
予測クエリ ビルダーの左上隅にある [ デザイン ] ボタンをクリックして、クエリ作成グリッドに戻ります。
グリッドの [ ソース] で新しい行をクリックし、[ カスタム式] を選択します。
[フィールド] の下のボックスは空白のままにします。
[ エイリアス] に「」と入力します
t
。[ 抽出条件/引数 ] ボックスに、次のコード サンプルに示すように、完全なサブ select ステートメントを入力します。 必ず開始かっこと終了かっこも入力してください。
(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
をクリックし、(...) ボタンをクリックします。[ 入れ子になったテーブルの入力 ] ダイアログ ボックスで、[ 追加] をクリックします。
新しい行で、 の下の
Model
ボックスをクリックし、一覧から [ツーリング タイヤ] を選択します。 [OK] をクリックします。[ 結果 ] ボタンをクリックして予測を表示します。
最初のアイテムとして Touring Tire を選択したすべての顧客に、次のアイテムとして以下のものがモデルによって提案されます。 モデルの調査によって、顧客が Touring Tire 製品と Touring Tire Tube 製品を一緒に購入することが多いとわかっているので、この提案は適切です。
$SEQUENCE | Line Number | モデル |
---|---|---|
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 を使用したデータ マイニング モデルの作成とクエリ: チュートリアル (Analysis Services - データ マイニング)」を参照してください。
プログラミングの概念について理解している場合は、分析管理オブジェクト (AMO) を使用してデータ マイニング オブジェクトをプログラムで操作することもできます。 詳細については、「 AMO データ マイニング クラス」を参照してください。
参照
Sequence Clustering Model Query Examples
シーケンス クラスター モデルのマイニング モデル コンテンツ (Analysis Services - データ マイニング)