SystemGetAccuracyResults (Analysis Services - 資料採礦)
針對採礦結構和所有相關模型傳回交叉驗證精確度的度量,不包括群集模型。
此預存程序會將整組資料的度量當做單一資料分割來傳回。若要將資料集分割成交叉區段,並傳回每一個資料分割的度量,請使用<SystemGetCrossValidationResults (Analysis Services - 資料採礦)>。
[!附註]
如果是使用 Microsoft 時間序列演算法或 Microsoft 時序群集演算法所建立的模型,則不支援這個預存程序。此外,也請針對群集模型使用個別的預存程序 SystemGetClusterAccuracyResults (Analysis Services - 資料採礦)。
語法
SystemGetAccuracyResults(<mining structure>,
[,<mining model list>]
,<data set>
,<target attribute>
[,<target state>]
[,<target threshold>]
[,<test list>])
引數
mining structure
目前資料庫中的採礦結構名稱。(必要)
model list
要驗證之模型的逗號分隔清單。預設值為 null。這表示會使用所有適用的模型。當使用預設值時,將會自動從候選清單中排除要處理的群集模型。
(選擇性)
data set
指出採礦結構中哪一個資料分割要用於測試的整數值。此值衍生自代表下列值總和的位元遮罩,其中任何單一值都是選擇性:定型案例
0x0001
測試案例
0x0002
模型篩選器
0x0004
如需可能值的完整清單,請參閱本主題的「備註」一節。
(必要)
target attribute
包含可預測之物件名稱的字串。可預測的物件可以是資料行、巢狀資料表資料行,或是採礦模型的巢狀資料表索引鍵資料行。(必要)
target state
包含要預測之特定值的字串。如果指定了某個值,將會根據該特定狀態來收集度量。
如果未指定任何值,或是指定了 null,將會針對每一項預測最有可能的狀態來計算度量。
預設值為 null。
(選擇性)
target threshold
介於 0.0 和 1 之間的數字,可指定預測值算為正確的最低機率。預設值是 null,這表示所有預測都會算為正確。
(選擇性)
test list
指定測試選項的字串。這個參數保留給未來使用。(選擇性)
傳回類型
傳回的資料列集包含每一個資料分割的分數及所有模型的彙總。
下表列出 GetValidationResults 傳回的資料行。
資料行名稱 |
描述 |
---|---|
Model |
已測試的模型名稱。[全部] 表示結果是所有模型的彙總。 |
AttributeName |
可預測的資料行名稱。 |
AttributeState |
可預測資料行內的目標值。 如果這個資料行包含值,只會針對指定的狀態收集度量。 如果未指定這個值,或是指定了 null,將會針對每一項預測最有可能的狀態來計算度量。 |
PartitionIndex |
代表套用結果的磁碟分割。 對於此程序而言,一定是 0。 |
PartitionCases |
根據 <data set> 參數來指示案例集中資料列數的整數。 |
Test |
已執行的測試類型。 |
Measure |
測試所傳回之量值的名稱。每一個模型的量值取決於模型類型及可預測值的類型。 如需每一個可預測類型所傳回的量值清單,請參閱<交叉驗證報表 (Analysis Services - 資料採礦)>。 如需每一個量值的定義,請參閱<交叉驗證 (Analysis Services - 資料採礦)>。 |
Value |
指定之量值的值。 |
備註
下表提供您可以在用於交叉驗證的採礦結構內指定資料的值範例。如果您想要將測試案例用於交叉驗證,採礦結構必須已經包含測試資料集。如需在建立採礦結構時如何定義測試資料集的詳細資訊,請參閱<將資料分割成培訓集和測試集 (Analysis Services - 資料採礦)>。
整數值 |
描述 |
---|---|
1 |
只會使用定型案例。 |
2 |
只會使用測試案例。 |
3 |
定型案例和測試案例都會使用。 |
4 |
組合無效。 |
5 |
只會使用定型案例,而且會套用模型篩選器。 |
6 |
只會使用測試案例,而且會套用模型篩選器。 |
7 |
定型案例和測試案例都會使用,而且會套用模型篩選器。 |
如需有關您會使用交叉驗證之案例的詳細資訊,請參閱<驗證資料採礦模型 (Analysis Services - 資料採礦)>。
範例
此範例會針對單一決策樹模型 v Target Mail DT (與 vTargetMail 採礦結構有關) 傳回精確度的量值。第四行的程式碼指示結果應該根據測試案例,由每一個模型特有的篩選器來針對該模型進行篩選。[Bike Buyer] 會指定要預測的資料行,而下一行的 1 指示此模型只會針對特定值 1 來預估,表示「是的,將會購買」。
程式碼的最後一行指定狀態臨界值為 0.5。這表示在計算精確度時,機率大於百分之 50 的預測應該算為「良好」預測。
CALL SystemGetAccuracyResults (
[vTargetMail],
[vTargetMail DT],
6,
'Bike Buyer',
1,
0.5
)
範例結果:
ModelName |
AttributeName |
AttributeState |
PartitionIndex |
PartitionSize |
Test |
Measure |
Value |
---|---|---|---|---|---|---|---|
v Target Mail DT |
Bike Buyer |
1 |
0 |
1638 |
Classification |
True Positive |
605 |
v Target Mail DT |
Bike Buyer |
1 |
0 |
1638 |
Classification |
False Positive |
177 |
v Target Mail DT |
Bike Buyer |
1 |
0 |
1638 |
Classification |
True Negative |
501 |
v Target Mail DT |
Bike Buyer |
1 |
0 |
1638 |
Classification |
False Negative |
355 |
v Target Mail DT |
Bike Buyer |
1 |
0 |
1638 |
Likelihood |
Log Score |
-0.598454638753028 |
v Target Mail DT |
Bike Buyer |
1 |
0 |
1638 |
Likelihood |
Lift |
0.0936717116894395 |
v Target Mail DT |
Bike Buyer |
1 |
0 |
1638 |
Likelihood |
Root Mean Square Error |
0.361630800104946 |
需求
從 SQL Server 2008 開始,交叉驗證只能在 SQL Server Enterprise 中使用。