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時間序列演算法或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 - 數據採礦)。
(選擇性)
折疊計數
整數,指定要分隔數據集的數據分割數目。 最小值為 2。 折疊數目上限 最大整數 或大小寫數目,以較低者為準。
每個分割區大約會包含此案例數目:最大案例/折數。
沒有預設值。
注意
折疊數目嚴重影響執行交叉驗證所需的時間。 如果您選取的數位太高,查詢可能會長時間執行,而在某些情況下,伺服器可能會變得沒有回應或逾時。
(必要)
最大案例
整數,指定可跨所有折疊測試的案例數目上限。
值為 0 表示將使用數據源中的所有案例。
如果您指定的值大於數據集中實際案例數目,則會使用數據源中的所有案例。
沒有預設值。
(必要)
目標屬性
包含可預測屬性名稱的字串。 可預測的屬性可以是採礦模型的數據行、巢狀數據表數據行或巢狀數據表索引鍵數據行。
注意
目標屬性的存在只會在運行時間進行驗證。
(必要)
目標狀態
指定要預測值的公式。 如果指定目標值,則只會收集指定值的計量。
如果未指定值或 null,則會計算每個預測最可能狀態的計量。
預設值為 null
如果指定的值對指定的屬性無效,或者公式不是指定屬性的正確類型,則會在驗證期間引發錯誤。
(選擇性)
目標閾值
Double 大於 0 且小於 1。 表示必須取得的最小機率分數,才能將指定的目標狀態預測計算為正確。
機率小於或等於此值的預測被視為不正確。
如果未指定任何值或 null,則不論其機率分數為何,都會使用最可能的狀態。
預設值為 null
注意
如果您將 狀態 閾值設定為 0.0,但絕對不應該使用此值,SQL Server Analysis Services 將不會引發錯誤。 實際上,閾值為 0.0 表示具有 0% 機率的預測會算作正確。
(選擇性)
測試清單
指定測試選項的字串。
注意 此參數保留供日後使用。
(選擇性)
傳回類型
傳回的數據列集包含每個模型中每個數據分割的分數。
下表描述數據列集中的數據行。
數據行名稱 | 描述 |
---|---|
ModelName | 已測試之模型的名稱。 |
AttributeName | 可預測數據行的名稱。 |
AttributeState | 可預測數據列中的指定目標值。 如果此值 null,則會使用最有可能的預測。 如果此數據行包含值,則只會根據此值評估模型的精確度。 |
PartitionIndex | 1 型索引,可識別套用結果的數據分割。 |
PartitionSize | 整數,指出每個分割區包含多少個案例。 |
測試 | 已執行之測試的類別。 如需類別和每個類別中包含的測試描述,請參閱交叉驗證報告中 量值。 |
量 | 測試所傳回之量值的名稱。 每個模型的量值取決於可預測的值類型。 如需每個量值的定義,請參閱 交叉驗證(Analysis Services - 資料採礦)。 如需針對每個可預測類型傳回的量值清單,請參閱交叉驗證報表中的 量值。 |
價值 | 指定之測試量值的值。 |
言論
若要傳回完整數據集的正確性計量,請使用 SystemGetAccuracyResults (Analysis Services - 數據採礦)。
如果採礦模型已分割成折疊,您可以使用 SystemGetAccuracyResults (Analysis Services - 數據採礦),略過處理,並只傳回交叉驗證的結果。
例子
下列範例示範如何將採礦結構分割成兩個折疊,然後測試兩個與採礦結構相關聯的採礦模型,[v Target Mail]
。
程序代碼的第三行會列出您想要測試的採礦模型。 如果您未指定清單,則會使用與 結構相關聯的所有非叢集模型。 程序代碼的第四行會指定分割區的數目。 因為未針對
第五行會指定可預測屬性 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 | Bike Buyer | 1 | 1 | 500 | 分類 | 真肯定 | 144 |
目標郵件 DT | Bike Buyer | 1 | 1 | 500 | 分類 | 誤判為真 | 105 |
目標郵件 DT | Bike Buyer | 1 | 1 | 500 | 分類 | True 負數 | 186 |
目標郵件 DT | Bike Buyer | 1 | 1 | 500 | 分類 | 誤判為負數 | 65 |
目標郵件 DT | Bike Buyer | 1 | 1 | 500 | 可能性 | 記錄分數 | -0.619042807138345 |
目標郵件 DT | Bike Buyer | 1 | 1 | 500 | 可能性 | 電梯 | 0.0740963734002671 |
目標郵件 DT | Bike Buyer | 1 | 1 | 500 | 可能性 | 根平均平方誤差 | 0.346946279977653 |
目標郵件 DT | Bike Buyer | 1 | 2 | 500 | 分類 | 真肯定 | 162 |
目標郵件 DT | Bike Buyer | 1 | 2 | 500 | 分類 | 誤判為真 | 86 |
目標郵件 DT | Bike Buyer | 1 | 2 | 500 | 分類 | True 負數 | 165 |
目標郵件 DT | Bike Buyer | 1 | 2 | 500 | 分類 | 誤判為負數 | 87 |
目標郵件 DT | Bike Buyer | 1 | 2 | 500 | 可能性 | 記錄分數 | -0.654117781086519 |
目標郵件 DT | Bike Buyer | 1 | 2 | 500 | 可能性 | 電梯 | 0.038997399132084 |
目標郵件 DT | Bike Buyer | 1 | 2 | 500 | 可能性 | 根平均平方誤差 | 0.342721344892651 |
要求
交叉驗證僅適用於從 SQL Server 2008 開始的 SQL Server Enterprise。
另請參閱
SystemGetCrossValidationResults
SystemGetAccuracyResults (Analysis Services - 數據採礦)
SystemGetClusterCrossValidationResults (Analysis Services - 數據採礦)
SystemGetClusterAccuracyResults (Analysis Services - 數據採礦)