マイニング モデルへのフィルターの適用
入れ子になったテーブルがマイニング構造に含まれている場合は、ケース テーブル、入れ子になったテーブル、またはその両方にフィルターを適用できます。
次の手順は、ケース フィルター、入れ子になったテーブル行に適用するフィルターの両方を作成する方法を示しています。
ケース テーブルの条件は、収入が 30000 ~ 40000 である顧客に限定することです。 入れ子になったテーブルの条件は、特定の品目を購入していない顧客に限定することです。
この例で作成された、完全なフィルター条件は次のとおりです。
[Income] > '30000'
AND [Income] < '40000'
AND EXISTS (SELECT * FROM [<nested table name>]
WHERE [Model] <> 'Water Bottle' )
マイニング モデルに対してケース フィルターを作成するには
SQL Server データ ツール (SSDT) のソリューション エクスプローラーで、フィルターを適用するマイニング モデルを含むマイニング構造をクリックします。
[マイニング モデル] タブをクリックします。
モデルを選択し、右クリックしてショートカット メニューを開きます。
- または -
モデルを選択します。 次に、[マイニング モデル] メニューの [モデル フィルターの設定] をクリックします。
[モデル フィルター] ダイアログ ボックスで、[マイニング構造列] ボックスのグリッドの先頭行をクリックします。
データ ソースに 1 つのフラット テーブルが含まれる場合、ドロップダウン リストには該当のテーブルの列名のみが表示されます。
マイニング構造に複数のテーブルが含まれる場合、リストにはソース テーブルの名前が示されます。 テーブルを選択するまで列名は表示されません。
マイニング構造にケース テーブルと入れ子になったテーブルが含まれる場合は、ドロップダウン リストにケース テーブルの列、入れ子になったテーブルの名前が表示されます。
ドロップダウン リストから列を選択します。
テキスト ボックスの左側のアイコンが変化して、選択されたアイテムがテーブルであるか列であるかが示されます。
[演算子] ボックスをクリックし、一覧から演算子を選択します。 有効な演算子は、選択した列のデータ型によって変わります。
[値] ボックスをクリックし、ボックスに値を入力します。
たとえば、列に [Income] を選択して、"次の値より大きい" 演算子 (>) を選択し、「30000」と入力します。
グリッドの次の行をクリックします。
作成したフィルター条件が [式] ボックスに自動的に追加されます。 たとえば、[Income] > '30000' のようになります。
グリッドの次の行の [ルールの適用条件] ボックスをクリックし、条件を追加します。
たとえば、BETWEEN 条件を作成するには、論理演算子のドロップダウン リストから [AND] を選択します。
演算子を選択し、手順 7. と手順 8. に示したように値を入力します。
たとえば、列に再度 [Income] を選択して、"次の値より小さい" 演算子 (<) を選択し、「40000」と入力します。
グリッドの次の行をクリックします。
[式] ボックスのフィルター条件が自動的に更新され、新しい条件が追加されます。 完成した式は [Income] > '30000'AND [Income] < '40000' のようになります。
マイニング モデルの入れ子になったテーブルにフィルターを追加するには
[<name> モデル フィルター] ダイアログ ボックスで、[マイニング構造列] の下のグリッドの空の行をクリックします。
ドロップダウン リストから、入れ子になったテーブルの名前を選択します。
テキスト ボックスの左側のアイコンが変化して、選択されたアイテムがテーブルの名前であることが示されます。
[演算子] ボックスをクリックし、[次の値を含む] または [次の値を含まない] を選択します。
ケース テーブルでは入れ子になったテーブルの特定の値を含むケースのみに制限しているため、[モデル フィルター] ダイアログ ボックスで入れ子になったテーブルに対して選択できる条件はこれだけです。 次の手順で入れ子になったテーブルの条件に値を設定します。
[値] ボックスをクリックし、([...]) ボタンをクリックして式を作成します。
[<name> データのフィルター選択] ダイアログ ボックスが開きます。 このダイアログ ボックスでは、現在のテーブルにのみ条件を設定できます。ここでは、入れ子になったテーブルです。
[マイニング構造列] ボックスをクリックし、入れ子になったテーブル列のドロップダウン リストから列名を選択します。
[演算子] をクリックし、列に対して有効な演算子の一覧から演算子を選択します。
[値] をクリックし、値を入力します。
たとえば、[マイニング構造列] には、[モデル] を選択します。 [演算子] には、[<>] を選択し、「Water Bottle」という値を入力します。 この条件で次のフィルター式が作成されます。
EXISTS (SELECT * FROM [<nested table name>] WHERE [Model] <> 'Water Bottle' )
注 |
---|
入れ子になったテーブルの属性数に制限はないため、Analysis Services では選択できる値の一覧を表示しません。 値を正確に入力する必要があります。 また、入れ子になったテーブルに LIKE 演算子を使用することはできません。 |
必要に応じて、さらに条件を追加します。[条件] グリッドの左側にある [ルールの適用条件] ボックスで AND または OR を選択して、条件を結合します。 [OK] をクリックします。
[モデル フィルター] ダイアログ ボックスで、[フィルター] ダイアログ ボックスを使用して作成した条件を確認します。 入れ子になったテーブルの条件は、ケース テーブルの条件に追加され、フィルター条件の完全なセットは [式] ボックスに表示されます。
必要に応じて、[クエリの編集] をクリックして、フィルター式を手動で変更できます。
注 フィルター式の一部を手動で変更すると、グリッドが無効になり、その後はテキスト編集モードでしかフィルター式を操作できなくなります。 グリッド編集モードに戻すには、フィルター式を消去して最初からやり直す必要があります。
関連項目
タスク
概念
マイニング モデルのフィルター選択 (Analysis Services - データ マイニング)