离散化方法

在 Microsoft SQL Server 2005 Analysis Services (SSAS) 中创建数据挖掘模型时所用的有些算法需要特定的内容类型才能正确运行。例如,有些算法(如 Microsoft Naive Bayes 算法)不能使用连续列作为输入,即不能预测连续值。另外,有些列可能会因包含的值太多而导致算法不易标识数据中据以创建模型的相关模式。

在此类情况下,可以将列中的数据离散化,以便可以使用算法来生成挖掘模型。离散化是将一组连续的数据的值放入存储桶的过程,以便得到可能状态的离散数目。存储桶本身是作为有序且离散的值处理的。数值列和字符串列都可以进行离散化。

离散化数据时,可以使用多种方法。每种方法都能使用以下示例代码中的公式,自动计算要生成的存储桶的数目:

Number of Buckets = sqrt(n)

在上述示例代码中,n 是列中数据非重复值的数目。如果不希望由 Analysis Services 计算存储桶数目,则可使用 DiscretizationBuckets 属性来手动指定存储桶的数目。

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

离散化方法 说明

AUTOMATIC

Analysis Services 确定要使用的离散化方法。

CLUSTERS

该算法可以对定型数据采样,初始化为一些随机点,然后使用 Expectation Maximization (EM) 聚类分析方法运行几次 Microsoft 聚类分析算法迭代,以此将数据分组。由于 CLUSTERS 方法可用于所有分布曲线,所以该方法很有用。但是,该方法所需的处理时间比其他离散化方法的处理时间长。

此方法只能用于数值列。

EQUAL_AREAS

该算法将数据分成值数目相同的若干个组。此方法最适用于正常分布曲线,但如果分布包含的值数量很大,并且这些值在连续数据的窄组中,则此方法的使用效果不是很好。例如,如果事例关系图中指定的定单项有一半的 Cost 值为零,那么这一半数据将位于曲线上某点以下。在这种分布中,此方法将对数据进行分解,以便在多个区域中建立相同的离散化。这样一来,生成的数据表示形式就会不准确。

您可以使用 EQUAL_AREAS 方法来离散化字符串。

CLUSTERS 方法和 THRESHOLDS 方法使用 1000 个随机记录样本来离散化数据。如果您不希望算法对数据采样,请使用 EQUAL_AREAS 方法。

请参阅

概念

内容类型(数据挖掘)
数据挖掘算法
挖掘结构 (Analysis Services)
数据类型(数据挖掘)

其他资源

内容类型 (DMX)
挖掘结构列

帮助和信息

获取 SQL Server 2005 帮助