次の方法で共有


ニューラル ネットワーク構造およびモデルの作成 (中級者向けデータ マイニング チュートリアル)

データ マイニング モデルを作成するには、まずデータ マイニング ウィザードを使用して、新しいデータ ソース ビューに基づく新しいマイニング構造を作成する必要があります。 ここでは、ウィザードを使用してマイニング構造を作成し、同時に、Microsoft ニューラル ネットワーク アルゴリズムに基づく関連マイニング モデルを作成します。

ニューラル ネットワークは高い柔軟性を持ち、さまざまな入力と出力の組み合わせを分析できるため、最良の結果を得るためにはいくつかのデータ処理方法を試す必要があります。 たとえば、特定のビジネス要件に応じて、サービス品質の数値目標をビン分割 (グループ化) する方法をカスタマイズできます。 そのためには、数値データを別の方法でグループ化する新しい列をマイニング構造に追加して、その新しい列を使用するモデルを作成します。 その後、それらのマイニング モデルを使用して探索を行います。

実務上の目的に最も大きい影響を与える要因がニューラル ネットワーク モデルからわかったら、最後に、予測およびスコアリングのための別のモデルを作成します。 そのためには、Microsoft ロジスティック回帰アルゴリズムを使用します。このアルゴリズムは、ニューラル ネットワーク モデルが基になっていますが、特定の入力に基づくソリューションの検索用に最適化されています。

手順

  1. 基になるマイニング構造を作成する (既定値を使用)

  2. 予測可能列のコピーを作成し、値をビン分割して変更する

  3. 新しいモデルを追加し、新しい列をそのモデルの出力として使用する

  4. 変更した予測可能な属性の別名を作成する

  5. 両方のモデルを同じ方法で処理できるようにシードを割り当て、両方のモデルを処理する

既定のコール センター構造の作成

既定のニューラル ネットワーク マイニング構造およびモデルを作成するには

  1. SQL Server データ ツール (SSDT) のソリューション エクスプローラーで、[マイニング構造] を右クリックして [新しいマイニング構造] をクリックします。

  2. [データ マイニング ウィザードへようこそ] ページで [次へ] をクリックします。

  3. [定義方法の選択] ページで [既存のリレーショナル データベースまたはデータ ウェアハウスを使用する] が選択されていることを確認し、[次へ] をクリックします。

  4. [データ マイニング構造の作成] ページで [マイニング モデルを含むマイニング構造を作成する] オプションが選択されていることを確認します。

  5. [使用するデータ マイニング技法を指定してください。] オプションのドロップダウン リストをクリックし、[Microsoft ニューラル ネットワーク] を選択します。

    ロジスティック回帰モデルはニューラル ネットワークに基づくため、同じ構造を再利用して新しいマイニング モデルを追加できます。

  6. [次へ] をクリックします。

    [データ ソース ビューの選択] ページが表示されます。

  7. [使用できるデータ ソース ビュー] で、[コール センター] を選択し、[次へ] をクリックします。

  8. [テーブルの種類の指定] ページで、FactCallCenter テーブルの横の [ケース] チェック ボックスをオンにします。 DimDate については選択しないでください。 [次へ] をクリックします。

  9. [トレーニング データの指定] ページで、FactCallCenterID 列の横にある [キー] を選択します。

  10. [予測] チェック ボックスと [入力] チェック ボックスをオンにします。

  11. 次の表に従って、[キー][入力]、および [予測] の各チェック ボックスをオンにします。

    テーブルまたは列

    [キー]/[入力]/[予測]

    AutomaticResponses

    [入力]

    AverageTimePerIssue

    [入力]/[予測]

    Calls

    [入力]

    DateKey

    使用しない

    DayOfWeek

    [入力]

    FactCallCenterID

    キー

    IssuesRaised

    [入力]

    LevelOneOperators

    [入力]/[予測]

    LevelTwoOperators

    [入力]

    Orders

    [入力]/[予測]

    ServiceGrade

    [入力]/[予測]

    Shift

    [入力]

    TotalOperators

    使用しない

    WageType

    [入力]

    予測可能列が複数選択されていることに注意してください。 ニューラル ネットワーク アルゴリズムには、入力属性と出力属性のあらゆる組み合わせを分析できるという利点があります。 データ セットが大きい場合は、処理時間が指数関数的に長くなる可能性があるため、この処理は適していません。

  12. [列のコンテンツおよびデータ型の指定] ページで、次の表に示す列、コンテンツの種類、およびデータ型がグリッドにあることを確認して、[次へ] をクリックします。

    コンテンツの種類

    データ型

    AutomaticResponses

    Continuous

    Long

    AverageTimePerIssue

    Continuous

    Long

    Calls

    Continuous

    Long

    DayOfWeek

    Discrete

    Text

    FactCallCenterID

    Key

    Long

    IssuesRaised

    Continuous

    Long

    LevelOneOperators

    Continuous

    Long

    LevelTwoOperators

    Continuous

    Long

    Orders

    Continuous

    Long

    ServiceGrade

    Continuous

    Double

    Shift

    Discrete

    Text

    WageType

    Discrete

    Text

  13. [テスト セットの作成] ページで、[テスト用データの割合] オプションのテキスト ボックスをクリアします。 [次へ] をクリックします。

  14. [ウィザードの完了] ページで、[マイニング構造名] に「Call Center」と入力します。

  15. [マイニング モデル名] に「Call Center Default NN」と入力し、[完了] をクリックします。

    ニューラル ネットワーク モデルではデータのドリルスルーを行うことができないため、[ドリルスルーを許可する] ボックスは無効になっています。

  16. ソリューション エクスプローラーで、作成したデータ マイニング構造の名前を右クリックし、[処理] を選択します。

分離について

既定では、予測可能な数値属性を持つニューラル ネットワーク モデルを作成したとき、Microsoft ニューラル ネットワーク アルゴリズムではその属性は連続する数値として扱われます。 たとえば、ServiceGrade 属性は、理論上は 0.00 (すべての電話に応答している状態) ~ 1.00 (すべての発信元が電話を切っている状態) の範囲の数値です。 このデータセットにおいて、数値の分布は次のようになります。

サービス グレード値の分布

その結果、モデルを処理したときに、その出力が期待どおりにグループ化されないことがあります。 たとえば、クラスタリングを使用して最適な値のグループを特定する場合、ServiceGrade の値が 0.0748051948 ~ 0.09716216215 のような範囲に分類されることがあります。 この分類は数学的には正確ですが、このような範囲がビジネス ユーザーにとって有意なものではない場合もあります。 数値を別の方法でグループ化するには、数値データ列のコピーを作成し、データ マイニング アルゴリズムで値をどのように処理するかを指定します。 たとえば、アルゴリズムによる値のビン分割で、ビン数の上限を 5 に指定することができます。

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

注意

これらの統計は、すべてのデータが処理された後のモデルのマージナル統計ノードから取得できます。 マージナル統計ノードの詳細については、「ニューラル ネットワーク モデルのマイニング モデル コンテンツ (Analysis Services - データ マイニング)」を参照してください。

この表の "値" 列には、ServiceGrade の数値がどのように処理されたかが示されています。 "サポート" 列には、その値またはその範囲に分類されたケースの数が示されています。

  1. 連続する数値の使用 (既定)

    既定の方法を使用した場合、120 個の一意の値の結果が計算され、その平均値は 0.09875 になります。 また、不足値の数も確認できます。

  2. クラスタリングによるビン分割

    Microsoft クラスタリング アルゴリズムでオプションの値のグループを特定する場合、ServiceGrade の値が 5 つの範囲にグループ化されます。 "サポート" 列に示されているように、それぞれの範囲に分配されるケースの数は均等にはなりません。

  3. Equal Areas メソッドによるビン分割

    この方法を選択した場合、等しいサイズのバケットに値が分配されてから、各範囲の上限と下限が変更されます。 バケットの数は指定できますが、それぞれのバケットに含まれる値の数が数個だけにならないようにしてください。

ビン分割オプションの詳細については、「分離メソッド (データ マイニング)」を参照してください。

数値を使用する代わりに、サービス グレードを定義済みの対象範囲 (Best (ServiceGrade <= 0.05)、Acceptable (0.10 > ServiceGrade > 0.05)、Poor (ServiceGrade >= 0.10) など) に分類する別の派生列を追加することもできます。

列のコピーの作成および分離メソッドの変更

Analysis Services のデータ マイニングでは、対象データを含む列のコピーを追加して分離メソッドを変更することにより、マイニング構造内で数値データがビン分割される方法を簡単に変更できます。

次の手順は、対象となる属性 (ServiceGrade) を含むマイニング列のコピーを作成する方法を示しています。 予測可能な属性を含め、マイニング構造の任意の列の複数のコピーを作成することができます。

その後、そのコピーの数値のグループ化をカスタマイズして、グループ化の複雑さを軽減します。 このチュートリアルでは、Equal Areas 分離メソッドを使用して、バケット数を 4 に指定します。 結果のグループ化は、ビジネス ユーザーの興味の対象となるターゲット値に非常に近いものになります。

注意

データの初期探索の際には、さまざまな分離メソッドを試すことも、先にデータをクラスター化してみることもできます。

マイニング構造の列のカスタマイズされたコピーを作成するには

  1. ソリューション エクスプローラーで、作成したマイニング構造をダブルクリックします。

  2. [マイニング構造] タブで、[マイニング構造列の追加] をクリックします。

  3. [列の選択] ダイアログ ボックスの [基になる列] の一覧の [ServiceGrade] をクリックし、[OK] をクリックします。

    マイニング構造列の一覧に新しい列が追加されます。 新しいマイニング列の既定の名前は、元の列と同じ名前に数値の接尾辞を付けたものです (例 : ServiceGrade 1)。 この列の名前を、よりわかりやすい名前に変更します。

    分離メソッドも指定します。

  4. [ServiceGrade 1] を右クリックし、[プロパティ] をクリックします。

  5. [プロパティ] ウィンドウで、Name プロパティを見つけ、名前を「Service Grade Binned」に変更します。

  6. 関連するすべてのマイニング モデル列の名前を同じように変更するかどうかを確認するダイアログ ボックスが表示されます。 [いいえ] をクリックします。

  7. [プロパティ] ウィンドウで、[データ型] セクションを見つけ、必要に応じて展開します。

  8. Content プロパティの値を Continuous から Discretized に変更します。

    使用できるプロパティは次のとおりです。 次の表に従ってプロパティの値を変更します。

    プロパティ

    既定値

    新しい値

    DiscretizationMethod

    Continuous

    EqualAreas

    DiscretizationBucketCount

    値なし

    4

    注意

    DiscretizationBucketCount の既定値は実際は 0 です。これは、最適なバケット数がアルゴリズムによって自動的に決定されることを表します。 したがって、このプロパティの値を既定値に戻すには、「0」と入力します。

  9. データ マイニング デザイナーで、[マイニング モデル] タブをクリックします。

    マイニング構造列のコピーを追加すると、そのコピーの使用法フラグが自動的に Ignore に設定されます。 マイニング構造に列のコピーを追加する場合、通常は、そのコピーを元の列と一緒に分析に使用することはありません。一緒に使用すると、アルゴリズムでその 2 つの列の間に強力な相関関係が検出されて、他の関係がわかりにくくなってしまう可能性があります。

マイニング構造への新しいマイニング モデルの追加

対象となる属性の新しいグループ化を作成できたら、次に、その離散化列を使用する新しいマイニング モデルを追加する必要があります。 この手順が完了すると、CallCenter マイニング構造に次の 2 つのマイニング モデルが含まれるようになります。

  • ServiceGrade 値を連続する範囲として処理するマイニング モデル Call Center Default NN

  • 等しいサイズの 4 つのバケットに分配された ServiceGrade 列の値を対象となる結果として使用する新しいマイニング モデル Call Center Binned NN

新しい離散化列に基づくマイニング モデルを追加するには

  1. ソリューション エクスプローラーで、作成したマイニング構造を右クリックし、[開く] をクリックします。

  2. [マイニング モデル] タブをクリックします。

  3. [関連するマイニング モデルの作成] をクリックします。

  4. [新しいマイニング モデル] ダイアログ ボックスで、[モデル名] に「Call Center Binned NN」と入力します。 [アルゴリズム名] ボックスの一覧で、[Microsoft ニューラル ネットワーク] を選択します。

  5. 新しいマイニング モデルに含まれる列の一覧で ServiceGrade を見つけて、使用法を Predict から Ignore に変更します。

  6. 同様に、ServiceGrade Binned を見つけて、使用法を Ignore から Predict に変更します。

通常は、別の予測可能な属性を使用するマイニング モデルを比較することはできませんが、 マイニング モデル列の別名を作成することができるため、 マイニング モデル内で ServiceGrade Binned 列の名前を変更して元の列と同じ名前にすることで、 データが別の方法で分離されていても、この 2 つのモデルを精度チャートで直接比較することができます。

マイニング モデルにマイニング構造列の別名を追加するには

  1. [マイニング モデル] タブの [構造] で、[ServiceGrade Binned] を選択します。

    [プロパティ] ウィンドウに、ScalarMiningStructureColumn オブジェクトのプロパティが表示されます。

  2. マイニング モデル ServiceGrade Binned NN の列で、ServiceGrade Binned 列に対応するセルをクリックします。

    今度は、[プロパティ] ウィンドウに MiningModelColumn オブジェクトのプロパティが表示されます。

  3. Name プロパティを見つけて、値を「ServiceGrade」に変更します。

  4. Description プロパティを見つけて、「Temporary column alias」と入力します。

    [プロパティ] ウィンドウの情報が次のようになります。

    プロパティ

    Description

    Temporary column alias

    ID

    ServiceGrade Binned

    ModelingFlags

      

    Name

    Service Grade

    SourceColumn ID

    Service Grade 1

    Usage

    Predict

  5. [マイニング モデル] タブ内の任意の場所をクリックします。

    グリッドが更新されて、新しい一時列の別名 ServiceGrade が列の使用法の横に表示されます。 マイニング構造と 2 つのマイニング モデルを含むグリッドは次のようになります。

    構造

    Call Center Default NN

    Call Center Binned NN

      

    Microsoft ニューラル ネットワーク

    Microsoft ニューラル ネットワーク

    AutomaticResponses

    Input

    Input

    AverageTimePerIssue

    Predict

    Predict

    Calls

    Input

    Input

    DayOfWeek

    Input

    Input

    FactCallCenterID

    キー

    キー

    IssuesRaised

    Input

    Input

    LevelOneOperators

    Input

    Input

    LevelTwoOperators

    Input

    Input

    Orders

    Input

    Input

    ServiceGrade Binned

    Ignore

    Predict (ServiceGrade)

    ServiceGrade

    Predict

    Ignore

    Shift

    Input

    Input

    Total Operators

    Input

    Input

    WageType

    Input

    Input

モデルの処理

最後に、作成したモデルを簡単に比較できるように、既定のモデルとビン分割モデルのシード パラメーターを設定します。 シード値を設定すると、各モデルで同じポイントからデータの処理が開始されるようになります。

注意

シード パラメーターに数値を指定しなかった場合は、SQL Server Analysis Services により、モデルの名前に基づいてシードが生成されます。 モデルには必ず異なる名前が付けられるため、データが同じ順序で処理されるようにするにはシード値を設定する必要があります。

シードを指定してモデルを処理するには

  1. [マイニング モデル] タブで、Call Center - LR という名前のモデルの列を右クリックし、[アルゴリズム パラメーターの設定] を選択します。

  2. HOLDOUT_SEED パラメーターの行で、[値] の空のセルをクリックし、「1」と入力します。 [OK] をクリックします。 構造に関連付けられている各モデルに対してこの手順を繰り返します。

    注意

    関連するすべてのモデルで同じシードを使用する限り、シードとしてどのような値を選択するかは特に重要ではありません。

  3. [マイニング モデル] メニューの [マイニング構造および全モデルの処理] をクリックします。 [はい] をクリックして、更新されたデータ マイニング プロジェクトをサーバーに配置します。

  4. [マイニング モデルの処理] ダイアログ ボックスで [実行] をクリックします。

  5. [閉じる] をクリックして [処理の進行状況] ダイアログ ボックスを閉じ、[マイニング モデルの処理] ダイアログ ボックスでも [閉じる] をクリックします。

関連する 2 つのマイニング モデルを作成できたので、データを探索してデータの関係を見つけることができます。

このレッスンの次の作業

コール センター モデルの検証 (中級者向けデータ マイニング チュートリアル)

関連項目

概念

マイニング構造 (Analysis Services - データ マイニング)