建模标志(数据挖掘)

在 SQL Server Analysis Services 中,可以使用建模标志提供数据挖掘算法的附加信息,该算法是关于事例表中定义的数据的。该算法可以使用此信息生成更精确的数据挖掘模型。

您可以使用数据挖掘扩展插件 (DMX) 通过编程定义建模标志,也可以在 Business Intelligence Development Studio 内的数据挖掘设计器中定义它们。有关如何在 DMX 语句中定义这些标志的详细信息,请参阅挖掘模型列

某些建模标志是在挖掘结构级别定义的,而其他标志则是在挖掘模型列级别定义的。例如,可以将 NOT NULL 建模标志与挖掘结构列一起使用。您可以在挖掘模型列上定义其他建模标志。

下面的列表介绍了 Analysis Services 中支持的建模标志。有关特定算法支持的建模标志的信息,请参阅有关各算法的技术参考主题。

  • NOT NULL
    指示属性列的值不应包含 Null 值。如果 Analysis Services 在模型定型过程中发现该属性列的值为 Null 值,则将出现错误。

  • MODEL_EXISTENCE_ONLY
    指示该列将被视为具有两种状态:Missing 和 Existing。如果该值为 NULL,将被视为 Missing。

    注意注意

    Missing 是算法所使用的一种特殊状态,不同于列中文本值 “Missing”。有关详细信息,请参阅缺少值(Analysis Services – 数据挖掘)

    此建模标志的典型用法是用于指示以下情况中的属性:NULL 状态具有隐含意义;NOT NULL 状态的显式值可能不与列中有任意值时一样重要。例如,如果某个合同永远不会签署,则 [DateContractSigned] 列可能为 NULL,但如果该合同已签署,则 [DateContractSigned] 列为 NOT NULL。因此,如果模型的目的是用来预测合同是否会被签署,则可以使用 MODEL_EXISTENCE_ONLY 标志来忽略 NOT NULL 事例中的准确日期值,仅在值为 Missing 或 Existing 的事例之间进行区分。

  • REGRESSOR
    指示该列在处理过程中适合用作回归量。该标志是对挖掘模型列定义的,并且只能应用于具有连续数值数据类型的列。有关使用此标志的详细信息,请参阅本主题后面的相应部分。

注意注意

除了 Analysis Services 预定义的这些标志外,第三方插件还可能有其他建模标志。

查看和更改建模标志

在数据挖掘设计器中,通过查看结构或模型的属性,可以查看和修改与挖掘结构或挖掘列关联的建模标志。

查看或更改结构列或模型列的建模标志

  1. 在 BI Development Studio 的解决方案管理器中,双击挖掘结构。

  2. 若要设置 NOT NULL 建模标志,请单击**“挖掘结构”**选项卡。

    若要设置 REGRESSOR 或 MODEL_EXISTENCE_ONLY 标志,请单击**“挖掘模型”**选项卡。

  3. 右键单击要查看或更改的列,然后选择**“属性”**。

  4. 若要添加新的建模标志,请单击**“建模标志”**属性旁边的文本框,然后选择要使用的建模标志的复选框。

    建模标志只有在它们适合列数据类型时才显示。

    注意注意

    更改某个建模标志后,您必须重新处理该模型。

不能使用 DMX 更改现有挖掘模型和结构中使用的建模标志。必须使用 ALTER MINING STRUCTURE .ADD MINING MODEL 语法创建一个新的挖掘模型。

如果不确定当前结构中正使用的建模标志,您可以使用下面的语法创建一个查询,用于返回建模标志:

SELECT COLUMN_NAME, MODELING_FLAG
FROM $system.DMSCHEMA_MINING_STRUCTURE_COLUMNS
WHERE STRUCTURE_NAME = '<structure name>'

使用 REGRESSOR 建模标志

当对某个列设置 REGRESSOR 建模标志时,指示的是列包含潜在回归量的算法。模型中使用的实际回归量是由算法确定的。如果潜在回归量不对可预测属性建模,则可以忽略该潜在回归量。

使用数据挖掘向导构建模型时,会将所有的连续输入列都标记为潜在回归量。因此,即使不对某个列显式设置 REGRESSOR 标志,该列也可能会在模型中用作回归量。

您可以通过对挖掘模型的架构行集执行查询来确定已处理模型中实际使用的回归量,如下面的示例所示:

SELECT COLUMN_NAME, MODELING_FLAG
FROM $system.DMSCHEMA_MINING_columnS
WHERE MODEL_NAME = '<model name>'

注意 如果修改某个挖掘模型并将某列的内容类型从连续更改为离散,则必须手动更改该挖掘列上的标志,然后重新处理该模型。

线性回归模型中的回归量

线性回归模型基于 Microsoft 决策树算法。即使不使用 Microsoft 线性回归算法,任何决策树模型也都可以包含表示连续属性的回归的树或节点。

您无需指定连续列表示回归量。即使不对列设置 REGRESSOR 标志,Microsoft 决策树算法也会将数据集分区成具有有意义模式的区域。其差异是:如果设置建模标志,此算法将尝试查找 a*C1 + b*C2 + ... 形式的回归公式,以拟合树中节点的模式。将对剩余的总和进行计算,如果偏差过大,则在树中执行强制拆分。

例如,如果是将 Income 用作属性来预测客户购买行为,并对该列设置了 REGRESSOR 建模标志,则该算法将使用标准回归公式先尝试适合 Income 值。如果偏差过大,则放弃使用回归公式,并根据其他一些属性对树进行拆分。拆分后,该决策树算法将随后尝试适合每个分支中收入的回归量。

可以使用 FORCE_REGRESSOR 参数来保证该算法将使用某一特定的回归量。此参数可以与决策树算法和线性回归算法一起使用。