次の方法で共有


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

指定した数の複数のセクションにマイニング構造をパーティション分割し、各パーティションに対してモデルをトレーニングして、各パーティションの精度の基準を返します。

注意

このストアド プロシージャを使用しても、クラスタリング モデルを相互検証したり、Microsoft タイム シリーズ アルゴリズムや Microsoft シーケンス クラスター アルゴリズムを使用して作成されたモデルを相互検証することはできません。 クラスタリング モデルを相互検証するには、別のストアド プロシージャ SystemGetClusterCrossValidationResults (Analysis Services - データ マイニング) を使用できます。

構文

SystemGetCrossValidationResults(
<mining structure>
[, <mining model list>]
,<fold count>
,<max cases>
,<target attribute>
[,<target state>]
[,<target threshold>]
[,<test list>])

引数

  • mining structure
    現在のデータベースのマイニング構造の名前。

    (必須)

  • mining model list
    検証するマイニング モデルのコンマ区切りの一覧。

    識別子の名前で無効な文字がモデル名に含まれている場合、モデル名を角かっこで囲む必要があります。

    マイニング モデルの一覧を指定しないと、指定した構造に関連付けられた、予測可能な属性を含むすべてのモデルに対して相互検証が実行されます。

    注意

    クラスタリング モデルを相互検証するには、別のストアド プロシージャ SystemGetClusterCrossValidationResults (Analysis Services - データ マイニング) を使用する必要があります。

    (省略可能)

  • fold count
    データセットを分割するパーティションの数を指定する整数。 最小値は 2 です。 フォールドの最大数は、maximum integer とケース数のいずれか小さい方になります。

    各パーティションには、max cases/fold count とほぼ同じ数のケースが含まれます。

    既定値はありません。

    注意

    フォールドの数は、相互検証の実行に必要な時間に大きく影響します。 選択する数が大きすぎると、クエリの実行時間が非常に長くなる可能性があります。また、場合によっては、サーバーが応答しなくなったり、タイムアウトする可能性があります。

    (必須)

  • max cases
    すべてのフォールドに対してテストできるケースの最大数を指定する整数。

    値に 0 を指定すると、データ ソース内のすべてのケースが使用されます。

    データセット内の実際のケース数より大きい値を指定すると、データ ソース内のすべてのケースが使用されます。

    既定値はありません。

    (必須)

  • target attribute
    予測可能な属性の名前を表す文字列。 予測可能な属性には、マイニング モデルの列、入れ子になったテーブル列、または入れ子になったテーブル キー列を指定できます。

    注意

    対象となる属性の存在は、実行時にのみ検証されます。

    (必須)

  • target state
    予測する値を指定する数式。 対象の値を指定した場合、指定した値の基準だけが収集されます。

    値を指定しなかった場合、または値が null の場合は、予測ごとに最も可能性の高い状態の基準が計算されます。

    既定値は null です。

    指定した値が指定した属性に対して無効な場合、または数式の種類が指定した属性に適切な型ではない場合は、検証中にエラーが発生します。

    (省略可能)

  • target threshold
    0 より大きくかつ 1 より小さい Double。 指定した対象の状態が正しいと見なすために取得する必要のある、最小の確率のスコアを示します。

    確率がこの値以下の予測は、正しくないと見なされます。

    値が指定されていない場合、または値が null の場合は、その確率のスコアに関係なく、最も可能性の高い状態が使用されます。

    既定値は null です。

    注意

    Analysis Services では、state threshold を 0.0 に設定するとエラーが発生しませんが、この値は使用しないでください。 実際、しきい値を 0.0 に設定すると、確率が 0% の予測が正しいと見なされます。

    (省略可能)

  • test list
    テスト オプションを指定する文字列。

       このパラメーターは将来使用するために予約されています。

    (省略可能)

戻り値の型

返される行セットには、各モデル内の各パーティションのスコアが含まれます。

次の表では、行セットの列について説明します。

列名

説明

ModelName

テストされたモデルの名前。

AttributeName

予測可能列の名前。

AttributeState

予測可能列で指定した対象の値。 この値が null の場合、最も可能性の高い予測が使用されます。

この列に値が含まれている場合は、その値に対してのみモデルの精度が評価されます。

PartitionIndex

結果が適用されるパーティションを識別する、1 から始まるインデックス。

PartitionSize

各パーティションに含まれていたケースの数を示す整数。

Test

実行されたテストのカテゴリ。 カテゴリおよび各カテゴリに含まれるテストの説明については、「クロス検証レポート (Analysis Services - データ マイニング)」を参照してください。

Measure

テストから返されたメジャーの名前。 各モデルのメジャーは、予測可能な値の型によって異なります。 各メジャーの定義については、「クロス検証 (Analysis Services - データ マイニング)」を参照してください。

予測可能な型ごとに返されるメジャーの一覧については、「クロス検証レポート (Analysis Services - データ マイニング)」を参照してください。

Value

指定したテスト メジャーの値。

説明

完全なデータセットの精度の基準を返すには、SystemGetAccuracyResults (Analysis Services - データ マイニング) を使用します。

既にマイニング モデルをフォールドにパーティション分割している場合は、SystemGetAccuracyResults (Analysis Services - データ マイニング) を使用して、処理を省略し、相互検証の結果のみを返すことができます。

次の例では、相互検証を行うマイニング構造を 2 つのフォールドにパーティション分割し、マイニング構造 [v Target Mail] に関連付けられている 2 つのマイニング モデルをテストする方法を示します。

コードの 3 行目では、テストするマイニング モデルの一覧を指定します。 一覧を指定しない場合、構造に関連付けられているすべての非クラスタリング モデルが使用されます。 コードの 4 行目では、パーティションの数を指定します。 max cases に値が指定されていないため、マイニング構造のすべてのケースが使用され、パーティション間で均等に分散されます。

5 行目では予測可能な属性 Bike Buyer を指定し、6 行目では予測する値 1 ("はい、購入します") を指定します。

7 行目の NULL 値は、満たす必要がある最小の確率に関する制約がないことを示します。 したがって、精度の評価では、確率が 0 ではない最初の予測が使用されます。

CALL SystemGetCrossValidationResults(
[v Target Mail],
[Target Mail DT], [Target Mail NB],
2,
'Bike Buyer',
1,
NULL
)

サンプルの結果 :

ModelName

AttributeName

AttributeState

PartitionIndex

PartitionSize

Test

Measure

Value

Target Mail DT

Bike Buyer

1

1

500

Classification

True Positive

144

Target Mail DT

Bike Buyer

1

1

500

Classification

False Positive

105

Target Mail DT

Bike Buyer

1

1

500

Classification

True Negative

186

Target Mail DT

Bike Buyer

1

1

500

Classification

False Negative

65

Target Mail DT

Bike Buyer

1

1

500

Likelihood

Log Score

-0.619042807138345

Target Mail DT

Bike Buyer

1

1

500

Likelihood

Lift

0.0740963734002671

Target Mail DT

Bike Buyer

1

1

500

Likelihood

Root Mean Square Error

0.346946279977653

Target Mail DT

Bike Buyer

1

2

500

Classification

True Positive

162

Target Mail DT

Bike Buyer

1

2

500

Classification

False Positive

86

Target Mail DT

Bike Buyer

1

2

500

Classification

True Negative

165

Target Mail DT

Bike Buyer

1

2

500

Classification

False Negative

87

Target Mail DT

Bike Buyer

1

2

500

Likelihood

Log Score

-0.654117781086519

Target Mail DT

Bike Buyer

1

2

500

Likelihood

Lift

0.038997399132084

Target Mail DT

Bike Buyer

1

2

500

Likelihood

Root Mean Square Error

0.342721344892651

要件

相互検証は SQL Server 2008 以降の SQL Server Enterprise でのみ使用できます。