一些用于在 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,则一半的数据将在曲线的单个点下发生。 在此类分布中,此方法将数据分解为多个区域,以建立相等的离散化。 这会生成数据的不准确表示形式。 |
注解
可以使用该方法
EQUAL_AREAS
离散化字符串。该方法
CLUSTERS
使用 1000 条记录的随机样本来离散化数据。 如果不希望算法对数据采样,请使用EQUAL_AREAS
方法。神经网络挖掘模型教程提供了如何自定义离散化的示例。 有关详细信息,请参阅第 5 课:构建神经网络和逻辑回归模型(中间数据挖掘教程)。
另请参阅
内容类型(数据挖掘)
内容类型 (DMX)
数据挖掘算法 (Analysis Services - 数据挖掘)
挖掘结构 (Analysis Services - 数据挖掘)
数据类型(数据挖掘)
挖掘结构列
列分布 (数据挖掘)