交叉验证报表(Analysis Services - 数据挖掘)

使用交叉验证可以将挖掘结构分区为交叉部分,并针对数据的每个交叉部分循环定型和测试模型。您可以指定几个分区以将数据划分到其中,每个分区将依次用作测试数据,而其余的数据用于为新模型定型。然后 Analysis Services 会为每个模型生成一组标准准确性指标。通过比较为每个交叉部分生成的模型的指标,可以清楚地了解挖掘模型对于整个数据集的可靠程度。

注意注意

交叉验证不能与包含 KEY TIME 列或 KEY SEQUENCE 列的任何模型一起使用。

本节介绍数据挖掘设计器的**“挖掘准确性图表”选项卡上的“交叉验证”**报表中提供的信息。有关如何创建报表的信息,请参阅“交叉验证”选项卡(“挖掘准确性图表”视图)

创建交叉验证报表

若要对与挖掘结构关联的挖掘模型进行交叉验证,请使用数据挖掘设计器中“挖掘准确性视图”的**“交叉验证”**选项卡或者使用交叉验证存储过程来配置以下选项:

  • 指定折叠数。

  • 指定将用于交叉验证的最大事例数。用此数字除以折叠数。

  • 指定可预测列。根据需要,指定可预测状态。

注意注意

如果挖掘结构包含聚类分析模型,请指定“分类编号”,而不要选择可预测列。报表仅返回聚类分析模型的结果。

  • 根据需要,设置用于控制如何评估预测准确性的参数。

选择交叉验证数据集

使用**“挖掘准确性图表”视图的“交叉验证”**选项卡时,有两种控制在交叉验证期间使用的数据量和数据类型的方式:可以指定折叠数,也可以限制事例数。默认情况下,Business Intelligence Development Studio 中的交叉验证使用每个模型的定型事例。如果筛选器与模型关联,则应用该筛选器。

**“折叠计数”**值指定要创建的数据集的交叉部分数目。每个折叠用作测试数据集,其余折叠中的数据用于为新模型定型。因此,如果使用了最小值 2,则数据集的一半用于测试,另一半用于定型。

如果挖掘结构未存储在 Analysis Services 的实例中,而是创建为临时结构或会话结构,则可以使用的最大折叠数是 10。如果挖掘结构存储在 Analysis Services 的实例中,则创建的折叠数不能超过事例数。如果事例数小于为“折叠计数”设置的数目,则使用较小的数目。 

注意注意

由于必须为每个折叠生成和测试模型,因此如果增加折叠数,则执行交叉验证所需的时间会相应增加。如果折叠数太大,则可能会遇到性能问题。

**“最大事例数”值指定可用于交叉验证的所有折叠间的事例总数。因此,任一特定折叠中的事例数等于“最大事例数”值除以“折叠计数”**值。默认值是 0,这意味着使用挖掘结构中的所有事例。

如果使用某个存储过程来执行交叉验证,则需要将 FoldCount 和 MaxCases 属性值作为参数提供给该存储过程。

注意注意

如果使用交叉验证存储过程,还可以设置 DataSet 参数以定义用于测试的数据集。该数据集的选项包括仅定型集、测试集和定型集、以及使用挖掘模型筛选器的定型集和测试集的组合。有关详细信息,请参阅SystemGetCrossValidationResults(Analysis Services - 数据挖掘)

选择要验证的模型和列

在使用数据挖掘设计器中的**“交叉验证”**选项卡时,必须首先从列表中选择可预测列。通常,一个挖掘结构可以支持许多挖掘模型,但这些挖掘模型并不使用同一可预测列。在运行交叉验证时,只有使用同一可预测列的那些模型可以包括在报表中。

若要选择可预测属性,请单击**“目标属性”并从列表中选择列。如果目标属性是嵌套列或嵌套表中的列,则必须使用“<嵌套表名称>(键).<嵌套列>”格式键入该嵌套列的名称。如果仅使用的嵌套表中的键列,则可以使用“<嵌套表名称>(键)”**。

注意   如果使用存储过程,您可以对要测试的模型实施更多控制。有关详细信息,请参阅SystemGetCrossValidationResults(Analysis Services - 数据挖掘)

选择可预测属性后,Analysis Services 将自动测试使用同一可预测属性的所有模型。

如果目标属性包含离散值,则在选择可预测列后,您可以根据需要键入目标状态(如果有要预测的特定值)。

目标状态的选择会影响返回的度量值。如果指定目标值(即列名称)且不选取希望模型预测的特定值,则在默认情况下将根据预测的最可能的状态评估该模型。

如果对聚类分析模型进行交叉验证,则没有可预测列;您应从**“目标属性”列表框内的可预测属性列表中选择“分类编号”。选择“分类”后,将禁用与聚类分析模型不相关的其他选项,如“目标状态”**。Analysis Services 将测试与挖掘结构关联的所有聚类分析模型。

设置准确性阈值

您可以通过设置**“目标阈值”的值来控制度量预测准确性的标准。阈值表示一种准确性栏。为每个预测分配一个预测值正确的概率。因此,如果将“目标阈值”的值设置为接近 1,则要求任一特定预测的概率很高才能计为准确的预测。反之,如果将“目标阈值”**设置为接近 0,则即使具有较低概率值的预测也会计为“准确的”预测。

由于任何预测的概率都取决于您的数据以及所进行预测的类型,因此没有建议的阈值。应查看不同概率级别的一些预测,以确定适用于您的数据的准确性栏。此步骤非常重要,因为对**“目标阈值”**设置的值对模型的度量准确性具有很大影响。

例如,假设结构包含三个模型,预测目标状态的概率分别为 0.05、0.15 和 0.8。如果将阈值设置为 0.5,则仅有一个预测计为正确。如果将**“目标阈值”**设置为 0.10,则两个预测将计为正确。

当**“目标阈值”**设置为默认值 null 时,则将可能性最大的状态用作目标。在上面的示例中,所有三个模型都具有正确的预测。因此,在比较模型时,应考虑对每个交叉验证实例使用的阈值。还可以使用交叉验证报表中提供的度量值“均值可能性”和“均方根误差”来评估特定模型中所有事例的平均概率。

使用“交叉验证”选项卡时的限制

如果使用 Business Intelligence Development Studio 中的交叉验证报表来执行交叉验证,则对可以测试的模型和可以设置的参数存在一些限制。

  • 默认情况下,与所选挖掘模型关联的所有模型都进行交叉验证。不能指定模型或模型列表。

  • 基于 Microsoft 时序算法或 Microsoft 顺序分析和聚类分析算法的模型不支持交叉验证。

  • 如果挖掘结构不包含可通过交叉验证进行测试的任何模型,则不能创建报表。

  • 如果挖掘结构包含聚类分析模型和非聚类分析模型并且您未选择**“分类编号”**选项,则即使属性、状态和阈值设置可能不适用于聚类分析模型,两种类型模型的结果也都显示在同一报表中。

  • 一些参数值受到限制。例如,如果折叠数大于 10,则会显示警告,因为生成这么多模型可能导致报表显示缓慢。

如果要指定高级设置,则必须使用交叉验证存储过程。有关详细信息,请参阅数据挖掘存储过程(Analysis Services - 数据挖掘)

交叉验证的结果

在指定参数并单击**“刷新”**后,交叉验证的结果显示在结果网格中。本节介绍结果网格中每列的内容。

除了有关数据中折叠数以及每个折叠中的数据量的一些基本信息之外,Analysis Services 还显示有关每个模型的按类型分类的一组指标。下表列出了测试和指标,并附有指标含义的说明。

测试类型

度量值和说明

群集

事例可能性指示某个事例属于特定分类的可能性。

分类

真正满足以下条件的事例计数:
  • 事例包含目标值。

  • 模型已预测事例包含目标值。

假正满足以下条件的事例计数:
  • 实际值等于目标值。

  • 模型已预测事例包含目标值。

真负满足以下条件的事例计数:
  • 事例不包含目标值。

  • 模型已预测事例不包含目标值。

假负满足以下条件的事例计数:
  • 实际值不等于目标值。

  • 模型已预测事例不包含目标值。

分类

通过/失败满足以下条件的事例计数:
  • 如果具有最高概率的预测状态与输入状态相同并且概率大于“状态阈值”的值,则通过。

  • 否则,将会失败。

可能性

提升测试事例中实际预测概率与边缘概率的比率。此指标显示使用模型时概率提高的程度。
均方根误差所有分区事例的平均误差的平方根除以分区中的事例数(不包括具有缺失值的行)。
对数得分每个事例的实际可能性的对数,求和,然后除以数据集中的行数(不包括具有缺失值的行)。因为可能性表示为小数部分,所以,对数得分始终为负数。得分越接近 0,意味着预测结果越好。

估计

均方根误差预测的值与实际值的平均误差,表示为均方和误差的平方根。
平均绝对误差预测的值与实际值的平均误差,表示为误差的绝对值和的平均值。
对数得分预测的对数可能性得分:每个事例的实际可能性的对数,求和,然后除以数据集中的行数(不包括具有缺失值的行)。因为可能性表示为小数部分,所以,对数得分始终为负数。得分越接近 0,意味着预测结果越好。 原始分数可以具有非常不规则或扭曲的分布,而对数得分与百分比相似。

聚合

聚合度量值指示每个分区的结果中的方差。

平均值特定度量值的分区值的平均值。
标准偏差模型中所有分区中特定度量值平均值偏差的平均值。
注意注意

这些精确性的度量值是为每个目标属性以及您可以指定或忽略目标值的每个属性计算的。某些记录可能不具有针对目标属性的任何值,这是称作缺失值的特殊事例。在计算特定目标属性的精确性度量值时,具有缺失值的行不计算在内。此外,因为单独计算每个属性的得分,所以,如果对于目标属性值存在,但对于其他属性则值缺失,那么它不会影响目标属性的得分。