次の方法で共有


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

適用対象:SQL Server 2019 以前の Analysis Services Azure Analysis Services Fabric/Power BI Premium

重要

データ マイニングは SQL Server 2017 Analysis Services で非推奨となり、SQL Server 2022 Analysis Services で停止されました。 非推奨および停止された機能については、ドキュメントの更新は行われません。 詳細については、「Analysis Services 下位互換性」を参照してください。

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

注意

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

構文

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

引数

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

(必須)

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

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

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

注意

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

(省略可能)

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

各パーティションには、ほぼこの数のケースが含まれます。 最大ケース/のフォールドカウントです。

既定値はありません。

注意

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

(必須)

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

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

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

既定値はありません。

(必須)

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

注意

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

(必須)

ターゲットの状態
予測する値を指定する数式。 対象の値を指定した場合、指定した値の基準だけが収集されます。

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

既定値は null です

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

(省略可能)

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

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

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

既定値は null です

注意

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

(省略可能)

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

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

(省略可能)

戻り値の型

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

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

列名 説明
ModelName テストされたモデルの名前。
AttributeName 予測可能列の名前。
AttributeState 予測可能列で指定した対象の値。 この値が nullの場合、最も可能性の高い予測が使用されます。

この列に値が含まれている場合は、その値に対してのみモデルの精度が評価されます。
PartitionIndex 結果が適用されるパーティションを識別する、1 から始まるインデックス。
PartitionSize 各パーティションに含まれていたケースの数を示す整数。
テスト 実行されたテストのカテゴリ。 カテゴリおよび各カテゴリに含まれるテストの説明については、「 相互検証レポートのメジャー」を参照してください。
メジャー テストから返されたメジャーの名前。 各モデルのメジャーは、予測可能な値の型によって異なります。 各メジャーの定義については、「 クロス検証 (Analysis Services - データ マイニング)」を参照してください。

予測可能な型ごとに返されるメジャーの一覧については、「 相互検証レポートのメジャー」を参照してください。
指定したテスト メジャーの値。

注釈

完全なデータ セットの精度メトリックを返すには、 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 テスト メジャー
Target Mail DT Bike Buyer 1 1 500 分類 真陽性 144
Target Mail DT Bike Buyer 1 1 500 分類 偽陽性 105
Target Mail DT Bike Buyer 1 1 500 分類 真陰性 186
Target Mail DT Bike Buyer 1 1 500 分類 偽陰性 65
Target Mail DT Bike Buyer 1 1 500 Likelihood ログ スコア -0.619042807138345
Target Mail DT Bike Buyer 1 1 500 Likelihood リフト 0.0740963734002671
Target Mail DT Bike Buyer 1 1 500 Likelihood 2 乗平均平方根誤差 0.346946279977653
Target Mail DT Bike Buyer 1 2 500 分類 真陽性 162
Target Mail DT Bike Buyer 1 2 500 分類 偽陽性 86
Target Mail DT Bike Buyer 1 2 500 分類 真陰性 165
Target Mail DT Bike Buyer 1 2 500 分類 偽陰性 87
Target Mail DT Bike Buyer 1 2 500 Likelihood ログ スコア -0.654117781086519
Target Mail DT Bike Buyer 1 2 500 Likelihood リフト 0.038997399132084
Target Mail DT Bike Buyer 1 2 500 Likelihood 2 乗平均平方根誤差 0.342721344892651

要件

クロス検証は、SQL Server 2008 以降SQL Server Enterpriseでのみ使用できます。

参照

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