SystemGetClusterCrossValidationResults(Analysis Services - 数据挖掘)
将挖掘结构分区为指定数目的交叉部分,并对每个分区为模型定型,然后返回每个分区的准确性指标。
注意:此存储过程只能用于包含至少一个聚类分析模型的挖掘结构。若要对非聚类分析模型进行交叉验证,必须使用 SystemGetCrossValidationResults(Analysis Services - 数据挖掘)。
语法
SystemGetClusterCrossValidationResults(
<structure name>,
[,<mining model list>]
,<fold count>}
,<max cases>
<test list>])
参数
mining structure
当前数据库中挖掘结构的名称。(必需)
mining model list
要验证的挖掘模型的逗号分隔列表。如果未指定挖掘模型列表,则对与指定结构关联的所有聚类分析模型执行交叉验证。
注意 若要对非聚类分析模型进行交叉验证,必须使用另一个存储过程 SystemGetCrossValidationResults(Analysis Services - 数据挖掘)。
(可选)
fold count
整数,指定将数据集分入的分区的数目。最小值为 2。最大倍数为 maximum integer 或事例数,取两者中的较低者。每个分区包含的事例数都将大致为:max cases/fold count。
没有默认值。
注意 折叠数会在很大程度上影响执行交叉验证所需的时间。如果选择的数目过高,查询可能需要运行较长时间,在某些情况下,服务器可能会停止响应或超时。
(必需)
max cases
整数,指定可以测试的最大事例数。值 0 指示将使用数据源中的所有事例。
如果指定的数目大于数据集中的实际事例数,则使用数据源中的所有事例。
(必需)
test list
指定测试选项的字符串。注意:此参数留待将来使用。
(可选)
返回类型
返回类型表包含每个分区的分数以及所有模型的聚合。
下表介绍返回的列。
列名 |
说明 |
---|---|
ModelName |
所测试模型的名称。 |
AttributeName |
可预测列的名称。对于分类模型,始终为 null。 |
AttributeState |
可预测列中的指定目标值。对于分类模型,始终为 null。 |
PartitionIndex |
一个从 1 开始的索引,用于标识结果适用于哪个分区。 |
PartitionSize |
一个整数,指示每个分区中包含的事例数。 |
Test |
所执行测试的类型。 |
Measure |
测试返回的度量值的名称。每个模型的度量值都取决于可预测值的类型。有关每个度量值的定义,请参阅交叉验证(Analysis Services – 数据挖掘)。 有关为每个可预测类型返回的度量值的列表,请参阅交叉验证报表(Analysis Services - 数据挖掘)。 |
Value |
指定的测试度量值的值。 |
注释
若要返回整个数据集的准确性指标,请使用 SystemGetClusterAccuracyResults(Analysis Services - 数据挖掘)。
此外,如果挖掘模型已分区为若干折叠,您可以使用 SystemGetClusterAccuracyResults(Analysis Services - 数据挖掘)跳过处理并只返回交叉验证的结果。
示例
下面的示例演示如何将挖掘结构分区为三个折叠,然后测试与该挖掘结构关联的两个聚类分析模型。
代码的第三行列出了要测试的特定挖掘模型。如果未指定此列表,则使用与该结构关联的所有聚类分析模型。
代码的第四行指定了折叠数,第五行指定了要使用的最大事例数。
由于这些模型是聚类分析模型,您不需要指定可预测属性或值。
CALL SystemGetClusterCrossValidationResults(
[v Target Mail],
[Cluster 1], [Cluster 2],
3,
10000
)
示例结果:
ModelName |
AttributeName |
AttributeState |
PartitionIndex |
PartitionSize |
Test |
Measure |
Value |
---|---|---|---|---|---|---|---|
Cluster 1 |
|
|
1 |
3025 |
Clustering |
Case Likelihood |
0.930524511864121 |
Cluster 1 |
|
|
2 |
3025 |
Clustering |
Case Likelihood |
0.919184178430778 |
Cluster 1 |
|
|
3 |
3024 |
Clustering |
Case Likelihood |
0.929651120490248 |
Cluster 2 |
|
|
1 |
1289 |
Clustering |
Case Likelihood |
0.922789726933607 |
Cluster 2 |
|
|
2 |
1288 |
Clustering |
Case Likelihood |
0.934865535691068 |
Cluster 2 |
|
|
3 |
1288 |
Clustering |
Case Likelihood |
0.924724595688798 |
要求
从 SQL Server 2008 开始,交叉验证仅在 SQL Server Enterprise 中可用。