適用対象:
SQL Server 2019 以前の Analysis Services
Azure Analysis Services
Fabric/Power BI Premium
Important
データ マイニングは SQL Server 2017 Analysis Services で非推奨となり、現在は SQL Server 2022 Analysis Services で廃止されました。 非推奨および廃止された機能については、ドキュメントは更新されません。 詳細については、「 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>])
論争
マイニング構造
現在のデータベース内のマイニング構造の名前。
(必須)
マイニング モデルの一覧
検証するマイニング モデルのコンマ区切りの一覧。
モデル名に識別子で無効な文字が含まれている場合は、名前を角かっこで囲みます。
マイニング モデル リストを指定しない場合、プロシージャは、指定した構造に属し、予測可能な属性を持つすべてのモデルをクロス検証します。
注
クラスタリング モデルをクロス検証するには、別のストアド プロシージャ SystemGetClusterCrossValidationResults (Analysis Services - データ マイニング) を使用します。
(省略可能)
fold count
データ セットを区切るパーティションの数を指定する整数。 最小値は 2 です。 フォールドの最大数は 、最大整数 またはケース数のいずれか小さい方です。
各パーティションには、フォールド カウント ケースで割った最大ケースが約 1 つ含まれています。
既定値はありません。
注
フォールドの数はクロス検証時間に大きく影響します。 フォールドを選択しすぎると、クエリに時間がかかる場合があります。 場合によっては、サーバーが応答を停止したり、要求がタイムアウトしたりすることがあります。
(必須)
max cases
すべてのフォールドでテストできるケースの最大数を指定する整数。
0を指定すると、プロシージャはデータ ソース内のすべてのケースを使用します。
指定された値がデータ・セット内のケースの数を超える場合、プロシージャーはデータ・ソース内のすべてのケースを使用します。
既定値はありません。
(必須)
target 属性
予測可能な属性の名前を含む文字列。 予測可能な属性には、マイニング モデルの列、入れ子になったテーブル列、または入れ子になったテーブル キー列を指定できます。
注
このプロシージャは、実行時にのみターゲット属性を検証します。
(必須)
ターゲットの状態
予測する値を指定する数式。 ターゲット値を指定した場合、プロシージャはその値のメトリックのみを収集します。
値を指定しない場合、または null を指定しない場合、プロシージャは予測ごとに最も可能性の高い状態のメトリックを計算します。
既定値は null です。
指定した値が指定した属性に対して有効でない場合、または式が指定した属性の正しい型でない場合、プロシージャは検証中にエラーを発生させます。
(省略可能)
ターゲットのしきい値
0 より大きく、1 未満の倍精度浮動小数点型。 指定したターゲットの状態が正しい場合に予測が到達する必要がある最小確率スコアを示します。
この値以下の確率を持つ予測は正しくないと見なされます。
値を指定しない場合や null に設定した場合、プロシージャは確率スコアに関係なく、最も可能性の高い状態を使用します。
既定値は null です。
注
ターゲットしきい値を 0.0 に設定しても、SQL Server Analysis Servicesエラーは発生しませんが、この値は使用しないでください。
0.0のしきい値を指定すると、プロシージャは確率ゼロの予測を正しいとカウントします。
(省略可能)
テスト リスト
テスト オプションを指定する文字列。
メモ このパラメーターは、将来使用するために予約されています。
(省略可能)
返り値の種類
返される行セットには、各モデルの各パーティションのスコアが含まれています。
次の表では、行セット内の列について説明します。
| 列名 | Description |
|---|---|
| モデル名 | テストされたモデルの名前。 |
| 属性名 | 予測可能列の名前。 |
| AttributeState | 予測可能列の指定したターゲット値。 この値が null の場合、最も可能性の高い予測が使用されました。 この列に値が含まれている場合、モデルの精度はこの値に対してのみ評価されます。 |
| PartitionIndex | 結果が適用されるパーティションを識別する 1 から始まるインデックス。 |
| パーティションサイズ | 各パーティションに含まれていたケースの数を示す整数。 |
| Test | 実行されたテストのカテゴリ。 各カテゴリに含まれるカテゴリとテストの説明については、「 クロス検証レポートのメジャー」を参照してください。 |
| 測る | テストによって返されるメジャーの名前。 各モデルのメジャーは、予測可能な値の種類によって異なります。 各メジャーの定義については、「 クロス検証 (Analysis Services - データ マイニング)」を参照してください。 予測可能な種類ごとに返されるメジャーの一覧については、「 クロス検証レポートのメジャー」を参照してください。 |
| 価値 | 指定したテスト メジャーの値。 |
注釈
SystemGetAccuracyResults (Analysis Services - データ マイニング) を使用して、完全なデータ セットの精度メトリックを返します。
マイニング モデルにフォールドが含まれている場合は、 SystemGetAccuracyResults (Analysis Services - データ マイニング) を使用して処理をバイパスし、クロス検証の結果のみを返します。
例示
次の例では、 [v Target Mail] マイニング構造をクロス検証用の 2 つのフォールドに分割し、その [Target Mail DT] と [Target Mail NB] マイニング モデルをテストします。
3 行目には、テストするマイニング モデルが一覧表示されます。 リストを指定しない場合、プロシージャは構造に関連付けられているすべての非クラスター化モデルをテストします。 4 行目は、パーティションの数を設定します。 max ケースの値を指定しないため、プロシージャはマイニング構造内のすべてのケースを使用し、パーティション間で均等に分散します。
5 行目は予測可能な属性である Bike Buyer を指定し、6 行目は予測する値を 1 ("はい、買う" を意味します) を指定します。
7 行目では、 NULL は最小確率しきい値を設定しません。 評価では、0 以外の確率で最初の予測を使用して精度を計算します。
CALL SystemGetCrossValidationResults(
[v Target Mail],
[Target Mail DT], [Target Mail NB],
2,
'Bike Buyer',
1,
NULL
)
サンプルの結果:
| モデル名 | 属性名 | AttributeState | PartitionIndex | パーティションサイズ | Test | 測る | 価値 |
|---|---|---|---|---|---|---|---|
| ターゲット メール DT | 自転車購入者 | 1 | 1 | 500 | Classification | 真陽性 | 144 |
| ターゲット メール DT | 自転車購入者 | 1 | 1 | 500 | Classification | 誤検知 | 105 |
| ターゲット メール DT | 自転車購入者 | 1 | 1 | 500 | Classification | 真陰性 | 186 |
| ターゲット メール DT | 自転車購入者 | 1 | 1 | 500 | Classification | 偽陰性 | 65 |
| ターゲット メール DT | 自転車購入者 | 1 | 1 | 500 | 可能性 | ログ スコア | -0.619042807138345 |
| ターゲット メール DT | 自転車購入者 | 1 | 1 | 500 | 可能性 | リフト | 0.0740963734002671 |
| ターゲット メール DT | 自転車購入者 | 1 | 1 | 500 | 可能性 | 二乗平均平方根誤差 | 0.346946279977653 |
| ターゲット メール DT | 自転車購入者 | 1 | 2 | 500 | Classification | 真陽性 | 162 |
| ターゲット メール DT | 自転車購入者 | 1 | 2 | 500 | Classification | 誤検知 | 86 |
| ターゲット メール DT | 自転車購入者 | 1 | 2 | 500 | Classification | 真陰性 | 165 |
| ターゲット メール DT | 自転車購入者 | 1 | 2 | 500 | Classification | 偽陰性 | 87 |
| ターゲット メール DT | 自転車購入者 | 1 | 2 | 500 | 可能性 | ログ スコア | -0.654117781086519 |
| ターゲット メール DT | 自転車購入者 | 1 | 2 | 500 | 可能性 | リフト | 0.038997399132084 |
| ターゲット メール DT | 自転車購入者 | 1 | 2 | 500 | 可能性 | 二乗平均平方根誤差 | 0.342721344892651 |
Requirements
SQL Server 2008 以降、クロス検証は SQL Server Enterprise でのみ使用できます。