通过


模型标记(数据挖掘)

适用于: SQL Server 2019 及更早版本的 Analysis Services Azure Analysis Services Fabric/Power BI Premium

重要

SQL Server 2017 Analysis Services 中弃用了数据挖掘,现已在 SQL Server 2022 Analysis Services 中停止使用。 文档不会更新为已弃用和已停用的功能。 若要了解详细信息,请参阅 Analysis Services 向后兼容性

可以使用 SQL Server SQL Server Analysis Services 中的建模标志向数据挖掘算法提供有关事例表中定义的数据的其他信息。 该算法可以使用此信息生成更准确的数据挖掘模型。

某些建模标志是在挖掘结构的级别定义的,而其他标志是在挖掘模型列的级别定义的。 例如,NOT NULL 标记用于挖掘结构列中的建模。 可以根据用于创建模型的算法,在挖掘模型列上定义其他建模标志。

注释

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

建模标志列表

以下列表描述了 SQL Server Analysis Services 中支持的建模标志。 有关特定算法支持的建模标志的信息,请参阅用于创建模型的算法的技术参考主题。

NOT NULL
指示属性列的值不应包含 null 值。 如果在模型训练过程中 SQL Server Analysis Services 遇到此属性列的 null 值,则会出现错误。

MODEL_EXISTENCE_ONLY
指示列将被视为具有两种状态: MissingExisting。 如果值为 NULL,则它被视为 Missing。 MODEL_EXISTENCE_ONLY标志应用于可预测属性,大多数算法都支持该标志。

实际上,将MODEL_EXISTENCE_ONLY标志设置为 True 会更改值的表示形式,以便只有两种状态: MissingExisting。 所有非缺失状态合并为单个 现有 值。

此标志在建模中的典型用途是对于这些属性,NULL 状态有隐含的意义,而 NOT NULL 状态的明确值可能不如列中存在某个值这一事实更为重要。 例如,如果协定从未签名,则 [DateContractSigned] 列可能是 NULL ;如果协定已签名,则 为 NOT NULL 。 因此,如果模型的目的是预测协定是否会签名,则可以使用MODEL_EXISTENCE_ONLY标志忽略 NOT NULL 事例中的确切日期值,并且仅区分 缺少 协定或 现有协定的情况。

注释

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

回归器
指示列是处理过程中用作回归器的候选列。 此标志在挖掘模型列上定义,只能应用于具有连续数值数据类型的列。 有关使用此标志的详细信息,请参阅本主题中的“ REGRESSOR 建模标志的使用”部分。

查看和更改建模标志

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

若要确定哪些建模标志已应用于当前挖掘结构,可以使用如下所示的查询,针对仅返回结构列的建模标志的数据挖掘架构行集创建查询:

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

可以使用数据挖掘设计器和编辑关联列的属性来添加或更改模型中使用的建模标志。 此类更改要求重新处理结构或模型。

可以使用 DMX 或 AMO 或 XMLA 脚本在新的挖掘结构或挖掘模型中指定建模标志。 但是,不能使用 DMX 更改现有挖掘模型和结构中使用的建模标志。 必须使用语法 ALTER MINING STRUCTURE....ADD MINING MODEL创建新的挖掘模型。

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 建模标志,该算法将首先尝试使用标准回归公式来适应 收入 值。 如果偏差太大,则放弃回归公式,树将在其他属性上拆分。 然后,决策树算法将尝试在拆分后的每个分支中为收入拟合回归器。

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

使用以下链接了解有关使用建模标志的详细信息。

任务 主题
使用数据挖掘设计器编辑建模标志 查看或更改建模标志(数据挖掘)
为算法指定提示以推荐可能的回归模型 指定一个列作为模型中的回归器
请参阅特定算法支持的建模标志(在每个算法参考主题的建模标志部分) 数据挖掘算法 (Analysis Services - 数据挖掘)
详细了解数据挖掘结构列及其可以设置的属性 挖掘结构列
了解可在模型级别应用的挖掘模型列和建模标记 数据挖掘模型列
请参阅在 DMX 语句中使用建模标志的语法 建模标志 (DMX)
了解缺失值以及如何处理它们 缺失值(Analysis Services - 数据挖掘)
了解如何管理模型和结构和设置使用情况属性 移动数据挖掘对象