適用於:
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 時間序列演算法或 Microsoft 序列分群演算法的模型。 要交叉驗證叢集模型,請使用獨立的儲存程序 - SystemGetClusterCrossValidationResults (Analysis Services - Data Mining)。
語法
SystemGetCrossValidationResults(
<mining structure>
[, <mining model list>]
,<fold count>
,<max cases>
,<target attribute>
[,<target state>]
[,<target threshold>]
[,<test list>])
參數
採礦結構
目前資料庫中採礦結構的名稱。
(必要)
採礦模型列表
要驗證的採礦模型逗號分隔清單。
若型號名稱中有不符碼的識別碼,請用括號包住名稱。
如果你沒有指定挖礦模型清單,程序會交叉驗證所有屬於指定結構且具有可預測屬性的模型。
注意
要交叉驗證叢集模型,請使用獨立的儲存程序 SystemGetClusterCrossValidationResults(Analysis Services - 資料探勘)。
(選擇性)
摺疊次數
整數,指定要分隔數據集的數據分割數目。 最小值為 2。 最大摺數為 最大整數 或以較低者為單位數。
每個分割包含大約 最大案例 數除以 摺數 次數。
沒有預設值。
注意
摺疊次數大幅影響交叉驗證時間。 如果選擇太多摺疊,查詢可能會花很長時間。 在某些情況下,伺服器可能會停止回應,或請求會逾時。
(必要)
Max 案件
整數,指定可跨所有折疊測試的案例數目上限。
當你指定 0時,程序會使用資料來源中的所有案例。
若指定值超過資料集中的案例數,程序會使用資料來源中的所有案例。
沒有預設值。
(必要)
目標屬性
包含可預測屬性名稱的字串。 可預測的屬性可以是採礦模型的數據行、巢狀數據表數據行或巢狀數據表索引鍵數據行。
注意
此程序僅在執行時驗證目標屬性。
(必要)
目標狀態
指定要預測值的公式。 如果你指定目標值,程序只會收集該值的指標。
如果你沒有指定值或設定 空值,程序會計算每個預測最可能狀態的度量。
預設是 null。
若指定值不適用於指定屬性,或公式型別不符合指定屬性,程序會在驗證時產生錯誤。
(選擇性)
目標閾值
大於0且小於1的兩倍。 表示預測必須達到的最低機率分數,以達到指定目標狀態的正確性。
機率小於或等於此值的預測被視為不正確。
如果你沒有指定值或設定為 null,程序會使用最可能的狀態,不論其機率分數如何。
預設是 null。
注意
如果你將目標閾值設為 0.0,SQL Server Analysis Services 不會產生錯誤,但不要使用這個值。 閾值 為 0.0 時,程序會將機率為零百分比的預測計算為正確。
(選擇性)
測試名單
指定測試選項的字串。
註 此參數保留以供未來使用。
(選擇性)
傳回類型
傳回的數據列集包含每個模型中每個數據分割的分數。
下表描述數據列集中的數據行。
| 數據行名稱 | 描述 |
|---|---|
| ModelName | 已測試之模型的名稱。 |
| AttributeName | 可預測數據行的名稱。 |
| AttributeState | 可預測數據列中的指定目標值。 若此值為 零,則使用最可能的預測值。 如果此數據行包含值,則只會根據此值評估模型的精確度。 |
| PartitionIndex | 1 型索引,可識別套用結果的數據分割。 |
| PartitionSize | 整數,指出每個分割區包含多少個案例。 |
| 測試 | 已執行之測試的類別。 關於各類別及包含的測試說明,請參閱 交叉驗證報告中的衡量標準。 |
| 量 | 測試所傳回之量值的名稱。 每個模型的量值取決於可預測的值類型。 關於各指標的定義,請參見交叉驗證(分析服務-資料探勘)。 關於每個可預測類型的指標清單,請參見 交叉驗證報告中的指標。 |
| 價值 | 指定之測試量值的值。 |
言論
使用 - SystemGetAccuracyResults(分析服務 - 資料探勘) 來回傳完整資料集的準確度指標。
當挖礦模型包含摺疊時,使用 SystemGetAccuracyResults(分析服務 - 資料探勘) 繞過處理,僅回傳交叉驗證結果。
例子
以下範例將 [v Target Mail] 挖礦結構分為兩部分進行交叉驗證,並測試其 [Target Mail DT] 與 [Target Mail NB] 挖礦模型。
第三行列出要測試的採礦模型。 如果你沒有指定清單,程序會測試所有與該結構相關的非群集模型。 第四行設定分割的數量。 因為你沒有指定 最大案例的值,這個程序會使用挖礦結構中的所有案例,並將它們均勻分配到各個分割區。
第五行會指定可預測屬性 Bike Buyer,而第六行指定預測的值,1(表示「是的,會購買」)。
第七行中,設定 NULL 不設定最小機率門檻。 評估使用第一個非零機率的預測來計算準確度。
CALL SystemGetCrossValidationResults(
[v Target Mail],
[Target Mail DT], [Target Mail NB],
2,
'Bike Buyer',
1,
NULL
)
範例結果:
| ModelName | AttributeName | AttributeState | PartitionIndex | PartitionSize | 測試 | 量 | 價值 |
|---|---|---|---|---|---|---|---|
| 目標郵件 DT | 自行車買家 | 1 | 1 | 500 | 分類 | 真肯定 | 144 |
| 目標郵件 DT | 自行車買家 | 1 | 1 | 500 | 分類 | 誤判為真 | 105 |
| 目標郵件 DT | 自行車買家 | 1 | 1 | 500 | 分類 | True 負數 | 186 |
| 目標郵件 DT | 自行車買家 | 1 | 1 | 500 | 分類 | 誤判為負數 | 65 |
| 目標郵件 DT | 自行車買家 | 1 | 1 | 500 | 可能性 | 記錄分數 | -0.619042807138345 |
| 目標郵件 DT | 自行車買家 | 1 | 1 | 500 | 可能性 | 電梯 | 0.0740963734002671 |
| 目標郵件 DT | 自行車買家 | 1 | 1 | 500 | 可能性 | 根平均平方誤差 | 0.346946279977653 |
| 目標郵件 DT | 自行車買家 | 1 | 2 | 500 | 分類 | 真肯定 | 162 |
| 目標郵件 DT | 自行車買家 | 1 | 2 | 500 | 分類 | 誤判為真 | 86 |
| 目標郵件 DT | 自行車買家 | 1 | 2 | 500 | 分類 | True 負數 | 165 |
| 目標郵件 DT | 自行車買家 | 1 | 2 | 500 | 分類 | 誤判為負數 | 87 |
| 目標郵件 DT | 自行車買家 | 1 | 2 | 500 | 可能性 | 記錄分數 | -0.654117781086519 |
| 目標郵件 DT | 自行車買家 | 1 | 2 | 500 | 可能性 | 電梯 | 0.038997399132084 |
| 目標郵件 DT | 自行車買家 | 1 | 2 | 500 | 可能性 | 根平均平方誤差 | 0.342721344892651 |
要求
從 SQL Server 2008 開始,交叉驗證僅在 SQL Server Enterprise 中提供。