内容类型(数据挖掘)
在 Microsoft SQL Server Analysis Services 中,可以定义挖掘模型中列的物理数据类型和说明如何在模型中使用该列的逻辑内容类型。
“数据类型”确定在您创建挖掘模型时算法如何处理这些列中的数据。 定义列的数据类型可为算法提供有关列中的数据类型以及如何处理数据的信息。 Analysis Services 中的每种数据类型均支持用于数据挖掘的一种或多种内容类型。
“内容类型”描述列中包含的值的行为。 例如,如果列中的数据值倾向于以特定的间隔(如一周中的某几天)重复,则可以将该列的内容类型指定为周期性。
有些算法要求提供特定的数据类型和/或特定的内容类型才能正常工作。 例如,Microsoft Naive Bayes 算法的输入不能为连续列,而且不能预测连续值。 因此,必须将这样的列从模型中排除或将它们离散化。 某些内容类型(如 Key Sequence)只能由特定算法使用。 有关算法以及每种算法所支持的内容类型的列表,请参阅数据挖掘算法(Analysis Services – 数据挖掘)。
下表介绍了数据挖掘中使用的内容类型,并列出了支持每种内容类型的数据类型。
Discrete
“Discrete”意味着列包含数值之间没有连续体的有限数量的数值。 例如,“性别”列是一个典型的离散属性列,这是因为该列中的数据表示特定数量的类别。 如果该列包含文本,则自动将类型设置为 discrete。 但是,如果该列包含具有数值标签的离散值(例如,在“性别”列中,“男”可能标记为 0,“女”标记为 1),您可能需要将内容类型从 continuous 更改为 discrete。
即使用于离散列的值为数值,也无法计算部分值。 电话区号即为离散数据的典型示例,它是数值但不应用于计算。 此外,离散属性列中的值不能意味着排序,即使这些值为数值也是如此。
Discrete 内容类型可以应用到所有数据挖掘数据类型的列。
Continuous
“Continuous”意味着列包含的值表示某一允许中间值的范围中的数值数据。 与表示有限、可数数据的离散列不同,连续列表示可缩放度量,且数据可能包含无限数目的小数值。 温度列即为连续属性列的示例。
当一列中包含连续数值数据并且您知道这些数据应如何分布时,则有可能通过指定期望的值分布来提高分析的精确性。 您将在挖掘结构级别指定列分布。 因此,该设置应用到基于该结构的所有模型。 有关详细信息,请参阅列分布(数据挖掘)。
Continuous 内容类型可以应用到具有以下数据类型的列:Date、Double 和 Long。
Discretized
“离散化”是将一组连续数据的值放入存储桶以便得到有限数量的可能值的过程。 只能离散数值数据。
因此,“discretized”内容类型指示列中包含的值表示其中包括源自连续列的值的组或存储桶。 存储桶被视为有序的离散值。
您可以手动离散数据,以确保获取所需的存储桶,也可以使用 SQL Server Analysis Services 中提供的离散化方法。 某些算法自动执行离散化。 有关详细信息,请参阅更改挖掘模型中列的离散化。
Discretized 内容类型可以应用到具有以下数据类型的列:Date、Double、Long 和 Text。
Key
“key”内容类型意味着该列唯一标识一行。 在事例表中,键列通常为数值或文本标识符。 将内容类型设置为 key 时,即指示该列不应该用于分析,而仅应用于跟踪记录。
嵌套表也有键,但嵌套表键的用法稍有不同。 如果某列是您需要分析的属性,则在嵌套表中将内容类型设置为 key。 嵌套表键的值对于每个事例来说都必须唯一,但在整个事例集中可以重复。
例如,如果分析的是客户购买的产品,则可以对于事例表中 CustomerID 列将内容类型设置为 key,然后对于嵌套表中 PurchasedProducts 列再次将内容类型设置为 key。
注意 |
---|
只有使用已在 Analysis Services 数据源视图中定义的外部数据源中的数据时,嵌套表才可用。 |
以下数据类型支持此内容类型:Date、Double、Long 和 Text。
Key Sequence
“key sequence”内容类型只能在顺序分析和聚类分析模型中使用。 将内容类型设置为 key sequence 时,它指示列包含表示一个事件序列的值。 这些值是有序值,但不必按等差排列。
以下数据类型支持此内容类型:Double、Long、Text 和 Date。
Key Time
“key time”内容类型只能在时序模型中使用。 将内容类型设置为 key time 时,它指示值是有序值并表示时间刻度。
此内容类型可以应用到具有以下数据类型的列:Double、Long 和 Date。
Table
“table”内容类型指示列包含其中有一列或多列以及一行或多行的另一个数据表。 对于事例表中的任意特定行,此列可以包含多个值,所有的值均与父事例记录相关。 例如,如果主事例表包含一个客户列表,则可能有多个包含嵌套表的列,例如 ProductsPurchased 列和 Hobbies 列,嵌套表在 ProductsPurchased 列中列出了此客户过去购买的产品,而 Hobbies 列则列出了该客户的兴趣。
此列的数据类型始终为 Table。
Cyclical
“cyclical”内容类型意味着列包含表示循环有序集的值。 例如,一周内顺序编号的七天便是循环有序集,因为第一天紧跟第七天。
循环列就内容类型而言既有序又离散。
此类型内容可以应用到除 table 和 Boolean 之外的任何 Analysis Services 数据类型的列。但是,大多数算法将周期性值作为离散值处理,不执行特别处理。
Ordered
“Ordered”内容类型也指示列包含定义序列或顺序的值。 但是,在此内容类型中,用于排序的值并不表示该集中值之间的任何差或量级关系。 例如,如果有序属性列包含按照等级顺序从一到五排列的有关技术等级的信息,则技术等级之间的差并不包含什么暗示信息;技术等级五不一定比技术等级一好五倍。
有序属性列被视为包含离散值。
此内容类型可应用到 Analysis Services 中的所有数据挖掘数据类型。但是,大多数算法将有序值作为离散值处理,不执行特别处理。
Classified
除了前面列出的可通用于所有模型的内容类型以外,对于某些数据类型,还可以使用已分类列定义内容类型。 有关已分类列的详细信息,请参阅已分类列(数据挖掘)。