次の方法で共有


ロジスティック回帰モデルの照会 (Analysis Services - データ マイニング)

データ マイニング モデルに対するクエリを作成する際には、コンテンツ クエリを作成することも、予測クエリを作成することもできます。コンテンツ クエリでは、分析で検出されたパターンの詳細情報を取得できます。予測クエリでは、モデル内のパターンを使用して新しいデータによる予測を行うことができます。

ここでは、Microsoft ロジスティック回帰アルゴリズムに基づいたモデルに対するクエリの作成方法について説明します。

コンテンツ クエリ

データ マイニング スキーマ行セットを使用してモデル パラメーターを取得する

DMX を使用してモデルに関する追加の詳細を取得する

予測クエリ

連続値の予測を作成する

不連続値の予測を作成する

ロジスティック回帰モデルに関する情報の入手

ロジスティック回帰モデルは、Microsoft ニューラル ネットワーク アルゴリズムでパラメーターの特殊なセットを使用して作成されます。そのため、ロジスティック回帰モデルには、ニューラル ネットワーク モデルと同じ情報がいくつか含まれますが、ニューラル ネットワーク モデルほど複雑ではありません。モデル コンテンツの構造、および各種類のノードに格納されている情報の種類を把握するには、「ロジスティック回帰モデルのマイニング モデル コンテンツ (Analysis Services - データ マイニング)」を参照してください。

クエリ シナリオを理解するために、「中級者向けデータ マイニング チュートリアル : レッスン 5: ニューラル ネットワークおよびロジスティック回帰モデルの作成 (中級者向けデータ マイニング チュートリアル)」の説明に従ってロジスティック回帰モデルを作成できます。

基本的なデータ マイニング チュートリアル」のマイニング構造 Targeted Mailing を使用することもできます。次に、以下の DMX スクリプトを実行してロジスティック回帰モデルを追加します。

ALTER MINING STRUCTURE [Targeted Mailing]
ADD MINING MODEL [TM_Logistic Regression]
([Customer Key],
[Age],
[Bike Buyer] PREDICT,
[Yearly Income] PREDICT,
[Commute Distance],
[English Education],
Gender,
[House Owner Flag],
[Marital Status],
[Number Cars Owned],
[Number Children At Home],
[Region],
[Total Children]
)
USING Microsoft_Logistic_Regression

サンプル クエリ 1 : データ マイニング スキーマ行セットを使用してモデル パラメーターを取得する

データ マイニング スキーマ行セットに対してクエリを実行すると、モデルに関するメタデータを取得できます (作成された日時、最後に処理された日時、基になるマイニング構造の名前、予測可能な属性として使用されている列の名前など)。次の例では、モデルが最初に作成されたときに使用されたパラメーター、モデルの名前と種類、およびモデルが作成された日付が返されます。

SELECT MODEL_NAME, SERVICE_NAME, DATE_CREATED, MINING_PARAMETERS 
FROM $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = 'Call Center_LR'

サンプルの結果 :

MODEL_NAME

SERVICE_NAME

DATE_CREATED

MINING_PARAMETERS

Call Center_LR

Microsoft_Logistic_Regression

04/07/2009 20:38:33

HOLDOUT_PERCENTAGE=30, HOLDOUT_SEED=1, MAXIMUM_INPUT_ATTRIBUTES=255, MAXIMUM_OUTPUT_ATTRIBUTES=255, MAXIMUM_STATES=100, SAMPLE_SIZE=10000

トップに戻る

サンプル クエリ 2 : DMX を使用してモデルに関する追加の詳細を取得する

次のクエリは、ロジスティック回帰モデルに関する基本的な情報を返します。ロジスティック回帰モデルは、入力として使用される値を表すマージナル統計ノード (NODE_TYPE = 24) がある点など、多くの点でニューラル ネットワーク モデルに似ています。このサンプル クエリでは、Targeted Mailing モデルを使用し、入れ子になったテーブル NODE_DISTRIBUTION から入力値を取得することにより、考えられるすべての入力値を取得します。

SELECT FLATTENED NODE_DISTRIBUTION AS t
FROM [TM_Logistic Regression].CONTENT 

結果の一部 :

t.ATTRIBUTE_NAME

t.ATTRIBUTE_VALUE

t.SUPPORT

t.PROBABILITY

t.VARIANCE

t.VALUETYPE

Age

Missing

0

0

0

1

Age

45.43491192

17484

1

126.9544114

3

Bike Buyer

Missing

0

0

0

1

Bike Buyer

0

8869

0.507263784

0

4

Bike Buyer

1

8615

0.492736216

0

4

Commute Distance

Missing

0

0

0

1

Commute Distance

5-10 Miles

3033

0.173472889

0

4

実際のクエリではさらに多くの行が返されますが、このサンプルでは、入力に関して提供される情報の種類の例を示しています。たとえば、不連続値に対して使用可能な各値はテーブルに示されていますが、連続する入力は分散されています。マージナル統計ノードでの情報の使用方法の詳細については、「ロジスティック回帰モデルのマイニング モデル コンテンツ (Analysis Services - データ マイニング)」を参照してください。

注意注意

結果は見やすくするためにフラット化されていますが、プロバイダーが階層的な行セットをサポートしている場合は、1 つの列で入れ子になったテーブルを返すことができます。詳細については、OLE DB プログラマ ガイドの「階層行セット」を参照してください。

トップに戻る

ロジスティック回帰モデルからの予測の作成

すべての種類のマイニング モデルで Predict (DMX) 関数を使用して、新しいデータを提供し、予測を作成できます。また、予測が正しい確率など、予測に関する追加情報を返す関数も使用できます。ここでは、ロジスティック回帰モデルでの予測クエリの例をいくつか紹介します。

サンプル クエリ 3 : 連続値の予測を作成する

ロジスティック回帰は入力と予測の両方について連続属性の使用をサポートしているため、データ内のさまざまな要素を相互に関連付けるモデルを簡単に作成できます。予測クエリを使用して、これらの要素間のリレーションシップを調査できます。

次のサンプル クエリは、Call Center モデルに基づいており、金曜日の午前のシフトについてのサービス グレードを予測する単一クエリを作成します。PredictHistogram (DMX) 関数は入れ子になったテーブルを返します。このテーブルには、予測される値の有効性の理解に関連する統計が含まれます。

SELECT
  Predict([Call Center_LR].[Service Grade]) as Predicted ServiceGrade,
  PredictHistogram([Call Center_LR].[Service Grade]) as [Results],
FROM
  [Call Center_LR]
NATURAL PREDICTION JOIN
(SELECT 'Friday' AS [Day Of Week],
  'AM' AS [Shift]) AS t

サンプルの結果 :

Predicted Service Grade

Results

0.102601830123659

Service Grade$SUPPORT$PROBABILITY$ADJUSTEDPROBABILITY$VARIANCE$STDEV
0.10260183012365983.02325581395350.98837209302325600.001205526606000870.034720694203902
0.9767441860465120.01162790697674420.011627906976744200

入れ子になった NODE_DISTRIBUTION テーブルの確率、サポート、および標準偏差の値の詳細については、「ロジスティック回帰モデルのマイニング モデル コンテンツ (Analysis Services - データ マイニング)」を参照してください。

トップに戻る

サンプル クエリ 4 : 不連続値の予測を作成する

ロジスティック回帰は、バイナリ結果を構成する要素を分析するシナリオでよく使用されます。中級者向けチュートリアルで使用されている元のモデルは連続値 Service Grade を予測しますが、現実のシナリオでは、サービス グレードがいくつかの分離した目標値を満たすかどうかを予測する必要があります。または、連続値を使用して予測を出力した後で、予測された出力を Good、Fair、または Poor にグループ化することもできます。

次のサンプルは、予測可能な属性をグループ化する方法をどのように変更するかを示しています。これを行うには、マイニング構造のコピーを作成して、対象列の分離メソッドを変更します。次の手順は、Call Center データの Service Grade 値のグループ化を変更する方法を示しています。

Call Center マイニング構造およびモデルの分離バージョンを作成するには

  1. Business Intelligence Development Studio のソリューション エクスプローラーで、[マイニング構造] を展開します。

  2. [Call Center.dmm] を右クリックし、[コピー] をクリックします。

  3. [マイニング構造] を右クリックし、[貼り付け] をクリックします。Call Center 1 という名前の新しいマイニング構造が追加されます。

  4. その新しいマイニング構造を右クリックし、[名前の変更] をクリックします。新しい名前として、「Call Center Discretized」と入力します。

  5. 新しいマイニング構造をダブルクリックしてデザイナーで開きます。マイニング モデルもすべてコピーされていること、それぞれに extension 1 が含まれていることを確認します。これらの名前は当面そのままにしておきます。

  6. [マイニング構造] タブで、Service Grade の列を右クリックし、[プロパティ] をクリックします。

  7. Content プロパティを Continuous から Discretized に変更します。DiscretizationMethod プロパティを Clusters に変更します。Discretization BucketCount に「3」と入力します。

    注意注意

    これらのパラメーターは例として使用されているだけです。有効なモデルが生成されるとは限りません。

  8. [マイニング モデル] メニューの [構造および全モデルの処理] をクリックします。

この分離モデルに基づく次のサンプル クエリは、指定した曜日のサービス グレードを予測し、各予測結果の確率と共に返します。

SELECT
  (PredictHistogram([Call Center_LR 1].[Service Grade])) as [Predictions]
FROM
  [Call Center_LR 1]
NATURAL PREDICTION JOIN
(SELECT 'Saturday' AS [Day Of Week]) AS t  

期待される結果 :

Predictions

Service Grade$SUPPORT$PROBABILITY$ADJUSTEDPROBABILITY$VARIANCE$STDEV
0.1087271838312535.72465047706410.4252934580602870.017016836003029300
0.0585576923062531.70988808007030.3774986676198850.02088202006045400
0.17016949152515.61091598832020.1858442379561920.066138657138604900
0.9545454545454550.01136363636363640.011363636363636400

予測結果は、指定どおりに 3 つのカテゴリにグループ化されています。ただし、このグループ化は、データの実際の値のクラスターに基づくものであり、ビジネスの目標として設定できる任意の値に基づくものではありません。

トップに戻る

予測関数の一覧

すべての Microsoft アルゴリズムでは、共通の関数セットがサポートされています。これに加え、Microsoft ロジスティック回帰アルゴリズムでは、次の表に示す関数もサポートされています。

すべての Microsoft アルゴリズムに共通の関数の一覧については、「クエリ型への関数のマップ (DMX)」を参照してください。特定の関数の構文については、「データ マイニング拡張機能 (DMX) 関数リファレンス」を参照してください。

注意注意

ニュートラル ネットワーク モデルとロジスティック回帰モデルの場合、PredictSupport (DMX) 関数はモデル全体のトレーニング セットのサイズを表す 1 つの値を返します。