ニューラル ネットワーク構造およびモデルの作成 (中級者向けデータ マイニング チュートリアル)
対象: SQL Server 2016 Preview
データ マイニング モデルを作成するには、まずデータ マイニング ウィザードを使用して、新しいデータ ソース ビューに基づく新しいマイニング構造を作成する必要があります。 ここでは、ウィザードを使用してマイニング構造を作成し、同時に、Microsoft ニューラル ネットワーク アルゴリズムに基づく関連マイニング モデルを作成します。
ニューラル ネットワークは高い柔軟性を持ち、さまざまな入力と出力の組み合わせを分析できるため、最良の結果を得るためにはいくつかのデータ処理方法を試す必要があります。 サービスの品質の数値目標は、方法をカスタマイズするたとえば、 ビン分割, 、または特定のビジネス要件の対象とする、グループ化します。 そのためには、数値データを別の方法でグループ化する新しい列をマイニング構造に追加して、その新しい列を使用するモデルを作成します。 その後、それらのマイニング モデルを使用して探索を行います。
実務上の目的に最も大きい影響を与える要因がニューラル ネットワーク モデルからわかったら、最後に、予測およびスコアリングのための別のモデルを作成します。 そのためには、Microsoft ロジスティック回帰アルゴリズムを使用します。このアルゴリズムは、ニューラル ネットワーク モデルが基になっていますが、特定の入力に基づくソリューションの検索用に最適化されています。
手順
既定のマイニング構造とモデルを作成する
分離を使用して予測可能列をビン分割する
列をコピーして別のモデル用に分離メソッドを変更する
モデルを比較できるように予測可能列の別名を作成する
すべてのモデルを処理します。
既定のコール センター構造を作成する
ソリューション エクスプ ローラーで SQL Server Data Tools (SSDT), を右クリックして マイニング構造 選択 新しいマイニング構造します。
[データ マイニング ウィザードへようこそ] ページで [次へ] をクリックします。
定義方法の選択 いることを確認] ページで、 既存のリレーショナル データベースまたはデータ ウェアハウスから クリックして選択すると、 次します。
データ マイニング構造の作成 いることを確認] ページで、オプション マイニング モデルを含むマイニング構造の作成 が選択されています。
オプションのドロップダウン リストをクリックして を使用するデータ マイニング技法を指定?, 選択してから、 Microsoft ニューラル ネットワークします。
ロジスティック回帰モデルはニューラル ネットワークに基づくため、同じ構造を再利用して新しいマイニング モデルを追加できます。
**[次へ]**をクリックします。
[データ ソース ビュー ページが表示されます。
[ 利用可能なデータ ソース ビュー, を選択 コール センター, 、] をクリック 次します。
テーブルの種類の指定 ] ページで、[、 ケース ] の横のチェック ボックス、 FactCallCenter テーブルです。 に対しては何も選択しないでください DimDateします。 **[次へ]**をクリックします。
トレーニング データの指定 ] ページで、[ キー 列の横にある FactCallCenterID します。
選択、 Predict と 入力 のチェック ボックスです。
選択、 キー, 、入力, 、および Predict チェック ボックスを次の表に示すようにします。
テーブルまたは列 [キー]/[入力]/[予測] AutomaticResponses 入力 AverageTimePerIssue [入力]/[予測] Calls 入力 DateKey 使用しない DayOfWeek 入力 FactCallCenterID [キー] IssuesRaised 入力 LevelOneOperators [入力]/[予測] LevelTwoOperators 入力 Orders [入力]/[予測] ServiceGrade [入力]/[予測] Shift キー 入力 TotalOperators 使用しない WageType 入力 予測可能列が複数選択されていることに注意してください。 ニューラル ネットワーク アルゴリズムには、入力属性と出力属性のあらゆる組み合わせを分析できるという利点があります。 データ セットが大きい場合は、処理時間が指数関数的に長くなる可能性があるため、この処理は適していません。
指定列のコンテンツおよびデータ型 ] ページで、グリッドには、列、コンテンツの種類、および次の表に示すように、データ型が含まれていることを確認してをクリックし、 次します。
|列|コンテンツの種類|データ型|
|-----------|----------------|--------------|
|AutomaticResponses|Continuous|Long|
|AverageTimePerIssue|Continuous|Long|
|Calls|Continuous|Long|
|DayOfWeek|Discrete|テキスト|
|FactCallCenterID|[キー]|Long|
|IssuesRaised|Continuous|Long|
|LevelOneOperators|Continuous|Long|
|LevelTwoOperators|Continuous|Long|
|Orders|Continuous|Long|
|ServiceGrade|Continuous|Double|
|Shift キー|Discrete|テキスト|
|WageType|Discrete|テキスト|
テストの設定を作成 ] ページで、オプションとして、テキスト ボックスをオフに テスト用データの割合します。 **[次へ]**をクリックします。
ウィザードの完了 ] ページでの マイニング構造名, 、型 コール センターします。
マイニング モデル名, 、型 Call Center Default NN, 、クリックして 完了します。
ドリルスルーを許可する ニューラル ネットワーク モデルでのデータにドリルスルーすることはできませんので、ボックスは無効になります。
ソリューション エクスプ ローラーで名前を右クリックしたデータ マイニング構造の作成、および選択 プロセスします。
分離を使用して対象列をビン分割する
既定では、予測可能な数値属性を持つニューラル ネットワーク モデルを作成したとき、Microsoft ニューラル ネットワーク アルゴリズムではその属性は連続する数値として扱われます。 たとえば、ServiceGrade 属性は、理論上は 0.00 (すべての電話に応答している状態) ~ 1.00 (すべての発信元が電話を切っている状態) の範囲の数値です。 このデータセットにおいて、数値の分布は次のようになります。
その結果、モデルを処理したときに、その出力が期待どおりにグループ化されないことがあります。 たとえば、値の最適なグループを識別するためにクラスタ リングを使用する場合、アルゴリズムの値を除算 ServiceGrade でこのような範囲に: 0.0748051948 - 0.09716216215 です。 この分類は数学的には正確ですが、このような範囲がビジネス ユーザーにとって有意なものではない場合もあります。
この手順では、結果をより直感的にわかりやすくするために、数値データ列のコピーを作成し、さまざまな方法で数値をグループ化します。
分離のしくみ
Analysis Services には、数値データのビン分割や処理のためのさまざまな方法が用意されています。 次の表は、出力属性 ServiceGrade を次の 3 とおりの方法で処理した場合の結果の違いを示しています。
連続する数値として処理する。
アルゴリズムでクラスタリングを使用して値の最適な分配を特定する。
Equal Areas メソッドを使用して数値をビン分割することを指定する。
既定のモデル (連続) | クラスタリングによるビン分割 | Equal Areas メソッドによるビン分割 |
---|---|---|
値: 見つからない サポート: 0 値: 0.09875 サポート: 120 |
値: < 0.0748051948 サポート: 34 値: 0.0748051948 - 0.09716216215 サポート: 27 値: 0.09716216215 - 0.13297297295 サポート: 39 値: 0.13297297295 - 0.167499999975 サポート: 10 値: > = 0.167499999975 サポート: 10 |
値: < 0.07 サポート: 26 値: 0.07 - 0.00 サポート: 22 値: 0.09 - 0.11 サポート: 36 値: > = 0.12 サポート: 36 |
注意
これらの統計は、すべてのデータが処理された後のモデルのマージナル統計ノードから取得できます。 マージナル統計ノードの詳細については、次を参照してください。 マイニング モデル コンテンツのニューラル ネットワーク モデルと #40 です。Analysis Services - データ マイニング )します。
この表の "値" 列には、ServiceGrade の数値がどのように処理されたかが示されています。 "サポート" 列には、その値またはその範囲に分類されたケースの数が示されています。
連続する数値の使用 (既定)
既定の方法を使用した場合、120 個の一意の値の結果が計算され、その平均値は 0.09875 になります。 また、不足値の数も確認できます。
クラスタ リングによるビン分割します。
Microsoft クラスタリング アルゴリズムでオプションの値のグループを特定する場合、ServiceGrade の値が 5 つの範囲にグループ化されます。 "サポート" 列に示されているように、それぞれの範囲に分配されるケースの数は均等にはなりません。
Equalareas によるビン分割します。
この方法を選択した場合、等しいサイズのバケットに値が分配されてから、各範囲の上限と下限が変更されます。 バケットの数は指定できますが、それぞれのバケットに含まれる値の数が数個だけにならないようにしてください。
ビン分割オプションの詳細については、次を参照してください。 分離メソッド ( データ マイニング )します。
または、数値を使用するには、追加することも、サービス グレードをなどを定義済みの対象範囲に分類する別の派生列 ベスト (ServiceGrade < = 0.05)、 不可 (0.10 > ServiceGrade > 0.05)、および が低い (ServiceGrade > = 0.10)。
列のコピーを作成し、分離メソッドを変更します。
対象となる属性 ServiceGrade を含むマイニング列のコピーを作成して、数値をグループ化する方法を変更します。 予測可能な属性を含め、マイニング構造の任意の列の複数のコピーを作成することができます。
このチュートリアルでは、Equal Areas 分離メソッドを使用して、バケット数を 4 に指定します。 結果のグループ化は、ビジネス ユーザーの興味の対象となるターゲット値に非常に近いものになります。
マイニング構造の列のカスタマイズされたコピーを作成するには
ソリューション エクスプローラーで、作成したマイニング構造をダブルクリックします。
マイニング構造] タブをクリックして マイニング構造列の追加します。
Select 列 ] ダイアログ ボックスの一覧から [ServiceGrade 基になる列, 、クリックして **[ok]**します。
マイニング構造列の一覧に新しい列が追加されます。 新しいマイニング列の既定の名前は、元の列と同じ名前に数値の接尾辞を付けたものです (例 : ServiceGrade 1)。 この列の名前を、よりわかりやすい名前に変更します。
分離メソッドも指定します。
ServiceGrade 1 を右クリックして プロパティします。
プロパティ ウィンドウで、検索、 名前 プロパティには、名前を変更して Service Grade Binned します。
関連するすべてのマイニング モデル列の名前を同じように変更するかどうかを確認するダイアログ ボックスが表示されます。 [いいえ] をクリックします。
プロパティ ウィンドウで、セクションを探します データ型 し、必要に応じて展開します。
プロパティの値を変更する コンテンツ から Continuous に Discretizedします。
次のプロパティがあるようになりました。 次の表に従ってプロパティの値を変更します。
プロパティ 既定値 新しい値 DiscretizationMethod Continuous EqualAreas DiscretizationBucketCount 値なし 4 注意
既定値の DiscretizationBucketCount が実際には 0 で、アルゴリズムは、最適なバケット数を自動的に決定します。 したがって、このプロパティの値を既定値に戻すには、「0」と入力します。データ マイニング デザイナーで、クリックして、 マイニング モデル ] タブをクリックします。
マイニング構造列のコピーを追加すると、コピーの使用法フラグに自動的に設定されていることを確認 無視します。 マイニング構造に列のコピーを追加する場合、通常は、そのコピーを元の列と一緒に分析に使用することはありません。一緒に使用すると、アルゴリズムでその 2 つの列の間に強力な相関関係が検出されて、他の関係がわかりにくくなってしまう可能性があります。
新しいマイニング モデルをマイニング構造に追加する
対象となる属性の新しいグループ化を作成できたら、次に、その離散化列を使用する新しいマイニング モデルを追加する必要があります。 この手順が完了すると、CallCenter マイニング構造に次の 2 つのマイニング モデルが含まれるようになります。
ServiceGrade 値を連続する範囲として処理するマイニング モデル Call Center Default NN
新しいマイニング モデル Call Center Binned NN、等しいサイズの 4 つのバケットに分配、ServiceGrade 列の値を対象となる結果として使用するを作成します。
新しい離散化列に基づくマイニング モデルを追加するには
ソリューション エクスプ ローラーで右クリックしたマイニング構造を作成し、選択 開くします。
[マイニング モデル] タブをクリックします。
クリックして 関連するマイニング モデルを作成します。
新しいマイニング モデル ] ダイアログ ボックスの モデル名, 、型 Call Center Binned NNします。 アルゴリズム名 ドロップダウン リストで、 Microsoft ニューラル ネットワークします。
新しいマイニング モデルに含まれる列の一覧で ServiceGrade を見つけて、使用法を変更 Predict に 無視します。
同様に、ServiceGrade Binned を見つけて、使用法を変更 無視 に Predictします。
対象列の別名を作成する
通常は、別の予測可能な属性を使用するマイニング モデルを比較することはできませんが、 マイニング モデル列の別名を作成することができるため、 つまり、元の列と同じ名前を持つように内の列、ServiceGrade Binned をマイニング モデルの名前を変更できます。 データが別の方法で分離されていても、この 2 つのモデルを精度チャートで直接比較することができます。
マイニング モデルにマイニング構造列の別名を追加するには
- マイニング モデル ] タブの [ 構造, 、ServiceGrade Binned を選択します。
なお、 **プロパティ** ウィンドウに、scalarminingstructurecolumn オブジェクトのプロパティが表示されます。
マイニング モデル ServiceGrade Binned NN の列で、ServiceGrade Binned 列に対応するセルをクリックします。
今度、 プロパティ ウィンドウに MiningModelColumn オブジェクトのプロパティが表示されます。
検索、 名前 プロパティには、値に変更 ServiceGradeします。
検索、 説明 プロパティと型 一時列の別名します。
プロパティ ウィンドウは、次の情報を含める必要があります。
プロパティ 値 Description Temporary column alias ID ServiceGrade Binned ModelingFlags 名前 Service Grade SourceColumn ID Service Grade 1 使用方法 Predict 任意の場所をクリックして、 マイニング モデルの ] タブをクリックします。
グリッドが更新され、新しい一時列の別名を表示する ServiceGrade, 、列の使用法の横にあります。 マイニング構造と 2 つのマイニング モデルを含むグリッドは次のようになります。
構造体 Call Center Default NN Call Center Binned NN Microsoft ニューラル ネットワーク Microsoft ニューラル ネットワーク AutomaticResponses 入力 入力 AverageTimePerIssue Predict Predict Calls 入力 入力 DayOfWeek 入力 入力 FactCallCenterID [キー] [キー] IssuesRaised 入力 入力 LevelOneOperators 入力 入力 LevelTwoOperators 入力 入力 Orders 入力 入力 ServiceGrade Binned Ignore Predict (ServiceGrade) ServiceGrade Predict Ignore Shift キー 入力 入力 Total Operators 入力 入力 WageType 入力 入力
すべてのモデルを処理する
最後に、作成したモデルを簡単に比較できるように、既定のモデルとビン分割モデルのシード パラメーターを設定します。 シード値を設定すると、各モデルで同じポイントからデータの処理が開始されるようになります。
注意
シード パラメーターに数値を指定しなかった場合は、SQL Server Analysis Services により、モデルの名前に基づいてシードが生成されます。 モデルには必ず異なる名前が付けられるため、データが同じ順序で処理されるようにするにはシード値を設定する必要があります。
シードを指定してモデルを処理するには
マイニング モデルの ] タブで、名前付き Call Center - LR、モデルの列を右クリックし、選択 アルゴリズム パラメーターの設定します。
HOLDOUT_SEED パラメーターの行の下の空のセルをクリックして 値, 、および種類 1します。 **[OK]**をクリックします。 構造に関連付けられている各モデルに対してこの手順を繰り返します。
注意
関連するすべてのモデルで同じシードを使用する限り、シードとしてどのような値を選択するかは特に重要ではありません。マイニング モデル メニューの [ マイニング構造の処理とすべてのモデルします。 をクリックして はい 、サーバーに更新されたデータ マイニング プロジェクトを展開します。
マイニング モデルの処理 ] ダイアログ ボックスをクリックして 実行です。
をクリックして 閉じる を閉じる、 処理の進行状況 クリックしてダイアログ ボックスで、 を閉じる で再度、 マイニング モデルの処理 ] ダイアログ ボックス。
関連する 2 つのマイニング モデルを作成できたので、データを探索してデータの関係を見つけることができます。
このレッスンの次の作業
コール センター モデルと #40; 中級者向けデータ マイニング チュートリアル ) の表示