マイニング モデルのフィルターの作成 (Analysis Services - データ マイニング)

データに基づくモデル フィルターは、マイニング構造内のデータのサブセットを使用するマイニング モデルを作成するのに役立ちます。フィルターを使用すると、包括的なデータ ソース ビューに基づいて 1 つのマイニング構造を作成できるため、マイニング構造とデータ ソースを柔軟に設計できます。つまり、さまざまなモデルのトレーニングとテストを行う場合に、データの各サブセットに対して個別の構造と関連モデルを作成する代わりに、データの一部だけを使用するためのフィルターを作成することができます。

たとえば、Customers テーブルと関連テーブルに、データ ソース ビューを定義します。次に、必要とするすべてのフィールドを含むマイニング構造を 1 つ定義します。最後に、Region などの特定の顧客属性に基づいてフィルター処理されるモデルを作成します。その後、このモデルをコピーし、フィルター条件を変更するだけで、別の地域に基づく新しいモデルを生成できます。

この機能が役立つ実際的なシナリオには、次のような場合があります。

  • 性別や地域など、複数の不連続値に対して個別のモデルを作成する場合。たとえば、衣料品店では、1 つのデータ ソースにすべての顧客の売上データが含まれていても、顧客の統計区分を使用して性別に基づく個別のモデルを作成できます。

  • 20 ~ 30 才、20 ~ 40 才、20 ~ 25 才など、同じデータの複数のグループ分けを作成およびテストして、モデルを試す場合。

  • 特定の品目を 2 個以上購入した顧客のケースのみをモデルに含めるようにするなど、入れ子になったテーブルの内容に複雑なフィルターを指定する場合。

ここでは、マイニング モデルのフィルターを作成、使用、および管理する方法について説明します。

モデル フィルターの作成

フィルターは、次の方法で作成および適用できます。

  • データ マイニング デザイナーの [マイニング モデル] タブで、フィルター エディターのダイアログ ボックスを利用して条件を作成します。

  • マイニング モデルの Filter プロパティにフィルター式を直接入力します。

  • AMO を使用して、モデルのフィルター条件をプログラムによって設定します。

データ マイニング デザイナーによるモデル フィルターの作成

データ マイニング デザイナーでは、マイニング モデルの Filter プロパティを変更することによってモデルをフィルター処理します。[プロパティ] ペインにフィルター式を直接入力することも、フィルターのダイアログ ボックスを開いて条件を作成することもできます。

フィルターのダイアログ ボックスは 2 つあります。最初のダイアログ ボックスでは、ケース テーブルに適用する条件を作成できます。データ ソースに複数のテーブルが含まれる場合は、まずテーブルを選択してから列を選択し、その列に適用する演算子と条件を指定します。AND 演算子または OR 演算子を使用すると、複数の条件を結合できます。値の定義に使用できる演算子は、列に含まれている値が不連続値か連続値かによって異なります。たとえば、連続値には、greater than 演算子および less than 演算子を使用できます。一方、不連続値に対しては、= (equal to) 演算子、!= (not equal to) 演算子、および is null 演算子のみを使用できます。

注意

LIKE キーワードはサポートされません。複数の不連続属性を含める場合は、個々の条件を作成し、それらを OR 演算子で結合する必要があります。

条件が複雑な場合、2 番目のフィルター ダイアログ ボックスを使用して、一度に 1 つのテーブルを処理するように設定できます。2 番目のフィルター ダイアログ ボックスを閉じると、式が評価された後、ケース テーブルの他の列で設定されたフィルター条件と結合されます。

入れ子になったテーブルに対するフィルターの作成

入れ子になったテーブルがデータ ソース ビューに含まれている場合は、2 番目のフィルター ダイアログ ボックスを使用して、入れ子になったテーブル内の行に対する条件を作成できます。

たとえば、顧客に関連したケース テーブルがあり、入れ子になったテーブルに顧客が購入した製品が表示されている場合、入れ子になったテーブルのフィルターで [ProductName]='Water Bottle' OR ProductName='Water Bottle Cage' という構文を使用すると、特定の品目を購入した顧客を選択するフィルターを作成できます。

また、EXISTS または NOT EXISTS のキーワードとサブクエリを使用すると、入れ子になったテーブルに特定の値があるかどうかに基づいてフィルター処理を行うことができます。これにより、EXISTS (SELECT * FROM Products WHERE ProductName='Water Bottle') のような条件を作成できます。入れ子になったテーブルに値 Water Bottle を持つ行が 1 つ以上含まれている場合、EXISTS SELECT(<subquery>) から true が返されます。

ケース テーブルに対する条件と入れ子になったテーブルに対する条件は、結合することができます。たとえば、次の構文には、ケース テーブルに対する条件 (Age > 30)、入れ子になったテーブルに対するサブクエリ (EXISTS (SELECT * FROM Products))、および入れ子になったテーブルに対する複数の条件 (WHERE ProductName=’Milk’ AND Quantity>2) が含まれています。

(Age > 30 AND EXISTS (SELECT * FROM Products WHERE ProductName=’Milk’  AND Quantity>2) )

フィルターの作成が完了したら、Analysis Services によってフィルター テキストが評価され、DMX 式に変換された後、モデルと共に保存されます。

Business Intelligence Development Studio のフィルター ダイアログ ボックスの使用方法については、「マイニング モデルにフィルターを適用する方法」を参照してください。

マイニング モデルのフィルターの管理

データに基づくモデル フィルターを使用すると、同一の構造に基づく複数のモデルを簡単に作成できるため、マイニング構造とマイニング モデルの管理作業が大幅に簡素化されます。既存のマイニング モデルをすばやくコピーして、フィルター条件だけを変更することもできます。モデル フィルターの管理に関する注意事項は次のとおりです。

  • モデルに適用されるフィルターを特定するには、マイニング モデルの Filter プロパティを確認します。

  • モデルの名前は、フィルターの内容を反映した名前に変更できます。こうすると、関連する複数のモデルどうしを区別しやすくなります。

  • フィルター式はスクリプトとして保存され、関連付けられたマイニング モデルまたは入れ子になったテーブルと共に格納されます。フィルター テキストを削除した場合、復元するにはフィルター式を手動で再作成するしかありません。このため、複雑なフィルター式を作成する場合は、フィルター テキストのバックアップ コピーを作成することをお勧めします。

  • フィルター式の変更や追加を行った場合、フィルターの効果を確認するには、構造およびモデルを再処理する必要があります。

フィルター構文の詳細およびフィルター式の例については、「モデル フィルターの構文と例 (Analysis Services - データ マイニング)」を参照してください。

マイニング モデルのテスト時にモデル フィルターを使用する方法については、「マイニング モデルの精度の測定 (Analysis Services - データ マイニング)」を参照してください。