离散化方法 (数据挖掘)

一些用于在 SQL Server Analysis Services 中创建数据挖掘模型的算法需要特定的内容类型才能正常运行。 例如,Microsoft Naive Bayes 算法不能使用连续列作为输入,也不能预测连续值。 此外,某些列可能包含这么多值,以至于算法无法轻松识别要从中创建模型的数据中有趣的模式。

在这些情况下,可以离散化列中的数据,以便使用算法生成挖掘模型。 离散化 是将值放入存储桶的过程,以便有有限数量的可能状态。 存储桶本身被视为有序和离散值。 可以离散化数字列和字符串列。

有多种方法可用于离散化数据。 如果数据挖掘解决方案使用关系数据,可以通过设置属性的值 DiscretizationBucketCount 来控制用于分组数据的存储桶数。 默认存储桶数为 5。

如果数据挖掘解决方案使用来自联机分析处理(OLAP)多维数据集的数据,则数据挖掘算法会自动使用以下公式计算要生成的存储桶数,其中 n 是列中数据的非重复值数:

Number of Buckets = sqrt(n)

如果不希望 Analysis Services 计算存储桶数,可以使用 DiscretizationBucketCount 该属性手动指定存储桶数。

下表介绍了可用于在 Analysis Services 中离散化数据的方法。

离散化方法 DESCRIPTION
AUTOMATIC Analysis Services 确定要使用的离散化方法。
CLUSTERS 该算法通过对训练数据进行采样、初始化为多个随机点,然后使用“期望最大化”(EM)聚类分析方法运行Microsoft聚类分析算法的多次迭代,从而将数据划分为组。 此方法 CLUSTERS 很有用,因为它适用于任何分布曲线。 但是,它比其他离散化方法需要更多的处理时间。

此方法只能与数值列一起使用。
EQUAL_AREAS 该算法将数据划分为包含等数值的组。 此方法最适用于正态分布曲线,但如果分布包含大量在连续数据中较窄的组中发生的值,则此方法效果不佳。 例如,如果一半项的成本为 0,则一半的数据将在曲线的单个点下发生。 在此类分布中,此方法将数据分解为多个区域,以建立相等的离散化。 这会生成数据的不准确表示形式。

注解

另请参阅

内容类型(数据挖掘)
内容类型 (DMX)
数据挖掘算法 (Analysis Services - 数据挖掘)
挖掘结构 (Analysis Services - 数据挖掘)
数据类型(数据挖掘)
挖掘结构列
列分布 (数据挖掘)