クロス検証レポート (Analysis Services - データ マイニング)
クロス検証では、マイニング構造をセクションにパーティション分割し、それぞれのデータ セクションに対してモデルのトレーニングとテストを反復的に実行できます。データを分割するいくつかのパーティションを指定します。それぞれのパーティションは、順にテスト データとして使用されます。一方、残りのデータは、新しいモデルのトレーニングに使用されます。その後、Analysis Services により、それぞれのモデルに対して標準的な精度の基準のセットが生成されます。それぞれのセクションに対して生成されるモデルの基準を比較することで、データセット全体に対するマイニング モデルの信頼性を確認できます。
注 |
---|
KEY TIME 列または KEY SEQUENCE 列が含まれているモデルでは、クロス検証を使用できません。 |
このセクションでは、データ マイニング デザイナーの [マイニング精度チャート] タブの [クロス検証] レポートに表示される情報について説明します。レポートの作成方法の詳細については、「[相互検証] タブ ([マイニング精度チャート] ビュー)」を参照してください。
クロス検証レポートの作成
マイニング構造に関連付けられているマイニング モデルのクロス検証を行うには、データ マイニング デザイナーの [マイニング精度チャート] ビューの [クロス検証] タブ、またはクロス検証ストアド プロシージャを使用して、次のオプションを構成します。
フォールドの数を指定します。
クロス検証に使用するケースの最大数を指定します。この数がフォールドの数で除算されます。
予測可能列を指定します。必要に応じて、予測可能な状態を指定します。
注 |
---|
マイニング構造にクラスター モデルが含まれている場合は、予測可能列を選択する代わりに [#Cluster] を指定します。レポートによって、クラスター モデルに対する結果のみが返されます。 |
- 必要に応じて、予測の精度の評価方法を制御するパラメーターを設定します。
クロス検証データセットの選択
[マイニング精度チャート] ビューの [クロス検証] タブでは、2 つの方法を使用して、クロス検証時に使用されるデータの量と種類を制御できます。1 つは、フォールドの数を指定する方法で、もう 1 つはケースの数を制限する方法です。Business Intelligence Development Studio でのクロス検証では、既定でモデルごとにトレーニング ケースが使用されます。フィルターがモデルに関連付けられている場合は、そのフィルターが適用されます。
[フォールド カウント] の値は、作成するデータセットのセクションの数を指定します。それぞれのフォールドはテスト データセットとして使用されます。残りのフォールド内のデータは、新しいモデルのトレーニングに使用されます。したがって、最小値の 2 を使用した場合、データセットの半分がテスト用に使用され、残りの半分がトレーニング用に使用されます。
マイニング構造が Analysis Services のインスタンスに格納されておらず、一時的な構造、つまりセッション構造として作成される場合、フォールド数として使用できる最大値は 10 です。マイニング構造が Analysis Services のインスタンスに格納されている場合、ケースの数よりも多くのフォールドを作成することはできません。ケースの数が [フォールド カウント] に設定した数よりも少ない場合は、この少ない方の数が使用されます。
注 |
---|
フォールド数を増やすと、それに応じてクロス検証の所要時間も長くなります。フォールドごとにモデルを生成およびテストする必要があるためです。フォールド数が多すぎると、パフォーマンス上の問題が発生することがあります。 |
[ケースの最大数] の値は、クロス検証に使用できる、すべてのフォールドにおけるケースの合計数を指定します。したがって、特定のフォールド内のケースの数は、[ケースの最大数] の値を [フォールド カウント] の値で除算した結果と等しくなります。既定値は 0 で、マイニング構造内のすべてのケースが使用されることを指定します。
いずれかのストアド プロシージャを使用してクロス検証を行う場合は、ストアド プロシージャのパラメーターとして FoldCount プロパティと MaxCases プロパティに値を指定します。
注 |
---|
クロス検証ストアド プロシージャを使用する場合、テストに使用するデータセットを定義するための DataSet パラメーターを設定することもできます。データセットに関するオプションとして、トレーニング セットのみのオプション、テスト セットとトレーニング セットのオプション、トレーニング セットとテスト セットにマイニング モデル フィルターを組み合わせたオプションがあります。詳細については、「SystemGetCrossValidationResults (Analysis Services - データ マイニング)」を参照してください。 |
検証するモデルおよび列の選択
データ マイニング デザイナーの [クロス検証] タブを使用する場合、最初に一覧から予測可能列を選択する必要があります。通常、1 つのマイニング構造で複数のマイニング モデルをサポートできますが、すべてのマイニング モデルで同じ予測可能列が使用されるわけではありません。クロス検証を実行した場合、レポートに含めることができるのは、同じ予測可能列を使用するモデルのみです。
予測可能な属性を選択するには、[対象の属性] をクリックし、一覧から列を選択します。対象の属性が、入れ子になった列または入れ子になったテーブルの列である場合は、「<入れ子になったテーブルの名前>(キー).<入れ子になった列>」の形式で、入れ子になった列の名前を入力する必要があります。入れ子になったテーブルから使用される唯一の列がキー列である場合は、「<入れ子になったテーブルの名前>(キー)」の形式を使用できます。
注 ストアド プロシージャを使用する場合は、テストするモデルをより細かく制御できます。詳細については、「SystemGetCrossValidationResults (Analysis Services - データ マイニング)」を参照してください。
予測可能な属性を選択すると、Analysis Services により、同じ予測可能な属性を使用しているすべてのモデルが自動的にテストされます。
対象の属性に不連続値が含まれているときに特定の値を予測する場合は、予測可能列を選択した後で、必要に応じて対象の状態を入力することができます。
対象の状態の選択は、返されるメジャーに影響します。モデルで予測する特定の値を選択するのではなく、列名を対象の属性として指定した場合、既定では、モデルは最も可能性の高い状態の予測に対して評価されます。
クラスター モデルのクロス検証を行う場合、予測可能列は存在しません。この場合は、[対象の属性] ボックスの予測可能な属性の一覧から [#Cluster] を選択します。[クラスター] を選択すると、[対象の状態] などの、クラスター モデルに関連しない他のオプションは無効になります。マイニング構造に関連付けられたすべてのクラスター モデルが Analysis Services によってテストされます。
精度のしきい値の設定
[対象のしきい値] の値を設定することで、予測精度を測定する場合の基準を制御できます。しきい値は、精度バーの種類を表します。それぞれの予測に対して、予測される値が正しいと見なされる確率が割り当てられます。したがって、[対象のしきい値] に 1 に近い値を設定した場合、確率が非常に高い特定の予測を良い予測として数えるように指定していることになります。逆に、[対象のしきい値] に 0 に近い値を設定した場合、確率が低い予測であっても "良い" 予測として数えられます。
予測の確率はデータや予測の種類に依存するので、推奨されるしきい値はありません。異なる確率レベルの予測を調査したうえで、データに適した精度バーを決定する必要があります。この作業は重要です。なぜなら、[対象のしきい値] に設定する値は、測定されるモデルの精度に大きな影響を与えるからです。
たとえば、構造に対象の状態を予測する 3 つのモデルが含まれていて、その確率がそれぞれ 0.05、0.15、および 0.8 であるとします。ここで、しきい値を 0.5 に設定した場合、1 つの予測だけが正しい予測であると見なされます。また、[対象のしきい値] を 0.10 に設定した場合は、2 つの予測が正しい予測であると見なされます。
[対象のしきい値] を既定値の NULL に設定した場合、最も確率の高い予測がターゲットとして使用されます。前の例では、3 つのモデルの予測はすべて正しいものと見なされます。したがって、モデルを比較する場合は、それぞれのクロス検証インスタンスに使用されているしきい値を考慮する必要があります。また、クロス検証レポートに用意されている Mean Likelihood メジャーと Root Mean Square Error メジャーを使用することで、特定のモデルにおけるすべてのケースの平均確率を評価することもできます。
[クロス検証] タブを使用する際の制限事項
Business Intelligence Development Studio のクロス検証レポートを使用してクロス検証を行う場合、テストできるモデルと設定できるパラメーターに関していくつかの制限事項があります。
既定では、選択したマイニング構造に関連付けられているすべてのモデルがクロス検証されます。対象のモデルまたはモデルの一覧を指定することはできません。
Microsoft タイム シリーズ アルゴリズムまたは Microsoft シーケンス クラスター アルゴリズムに基づいているモデルの場合、クロス検証はサポートされません。
クロス検証によってテストできるモデルがマイニング構造に含まれていない場合は、レポートを作成できません。
マイニング構造にクラスター モデルと非クラスター モデルの両方が含まれているときに [#Cluster] オプションを選択しなかった場合、属性、状態、およびしきい値の設定がクラスター モデルに対して適切でない場合でも、同じレポートに両方の種類のモデルに関する結果が表示されます。
一部のパラメーター値は制限されます。たとえば、フォールドの数が 10 を超えていると警告が表示されます。これは、多数のモデルを生成した場合にレポートの表示が遅くなる可能性があるからです。
詳細設定を指定する場合は、クロス検証ストアド プロシージャを使用する必要があります。詳細については、「データ マイニングのストアド プロシージャ (Analysis Services - データ マイニング)」を参照してください。
クロス検証の結果
パラメーターを指定し、[最新の情報に更新] をクリックすると、クロス検証の結果が結果グリッドに表示されます。このセクションでは、結果グリッド内の各列の内容について説明します。
Analysis Services では、データ内のフォールドの数や各フォールド内のデータの量に関するいくつかの基本情報に加えて、各モデルに関する一連の基準が種類別に表示されます。次の表に、テスト、基準、およびその説明を示します。
テストの種類 |
基準と説明 |
---|---|
Clustering |
Case likelihoodケースが特定のクラスターに属する確率を示します。
|
Classification |
True Positive以下の条件を満たしているケースの数です。
False Positive以下の条件を満たしているケースの数です。
True Negative以下の条件を満たしているケースの数です。
False Negative以下の条件を満たしているケースの数です。
|
Classification |
Pass/Fail以下の条件を満たしているケースの数です。
|
Likelihood |
Lift実際の予測確率対テスト ケースの周辺確率の比です。この基準は、モデルが使用されるときに確率がどれだけ向上するかを示します。
Root Mean Square Errorパーティション内のケースの数 (不足値が含まれる行は除外) で除算された、すべてのパーティション ケースの平均誤差の平方根です。
Log score合計され、データ セットの行数 (不足値が含まれる行は除外) で除算された、各ケースの実際の確率の対数です。確率は小数として表されるため、対数スコアは常に負の数値です。スコアが 0 に近いほど予測が良いことになります。
|
Estimation |
Root Mean Square Error予測値対実際の値の平均誤差です。2 乗誤差の平均合計の平方根として表されます。
Mean Absolute Error予測値対実際の値の平均誤差です。誤差の絶対合計の平均として表されます。
Log Score予測のログ可能性スコア (合計され、データ セットの行数 (不足値が含まれる行は除外) で除算された、各ケースの実際の確率の対数) です。確率は小数として表されるため、対数スコアは常に負の数値です。スコアが 0 に近いほど予測が良いことになります。 生のスコアが非常に不規則な分布またはゆがんだ分布を持つのに対し、ログ スコアは割合に似ています。
|
Aggregates 各パーティションの結果における分散を示します。 |
Mean特定のメジャーに関するパーティション値の平均です。
Standard Deviationモデル内のすべてのパーティションにおける特定のメジャーの平均からの偏差の平均です。
|
注 |
---|
これらの精度のメジャーは、対象の属性ごとに計算されます。各属性に対して、対象の値を指定することも、省略することもできます。中には、対象の属性の値が含まれていないレコードもあります。これは特殊なケースで、不足値と呼ばれます。不足値がある行は、特定の対象の属性の精度のメジャーを計算するときにカウントされません。また、スコアは属性ごとに個別に計算されるため、対象の属性の値が存在する場合、他の属性の値が存在しなくても、その対象の属性のスコアには影響しません。 |