用 WEKA 进行数据挖掘,第 2 部分: 分类和群集
2010-06-23 00:00:00 来源:WEB开发网核心提示: 群集群集 让用户可以通过数据组来从数据确定模式,当数据集已定义并且需要从此数据确定一个通用的模式时,用 WEKA 进行数据挖掘,第 2 部分: 分类和群集(9),群集的优势就会比较明显,您可以根据自身业务需要创建一定数量的组,如果它们变化,那么就需要返回到步骤 3 重新开始并一遍遍重复,与分类相
群集
群集 让用户可以通过数据组来从数据确定模式。当数据集已定义并且需要从此数据确定一个通用的模式时,群集的优势就会比较明显。您可以根据自身业务需要创建一定数量的组。与分类相比,群集的一个好处是数据集内的每个属性都被用来分析该数据。(在分类方法中,只有属性的一个子集用在了模型中。)使用群集的一个主要劣势是用户需要提前知道他想要创建的组的数量。若用户对其数据知之甚少,这可能会很困难。是应该创建三个组?五个组?还是十个组?所以在决定要创建的理想组数之前,可能需要进行几个步骤的尝试和出错。
不过,对于一般的用户,群集有可能是最为有用的一种数据挖掘方法。它可以迅速地将整个数据集分成组,供您快速得出结论。此方法背后的算法多少有些复杂和难懂,这也是我们为何要充分利用 WEKA 的原因。
算法概览
如下是对群集中所用算法的一个简要的快速概览:
数据集内的每个属性都应该是规格化的,因此,每个值均除以该属性在数据集内的最高值与最低值间的差值。例如,如果属性是年龄,且最高值为 72,最低值为 16,那么年龄 32 将被规格化为 0.5714。
理想的群集数量给定后,就可以随机地从数据集选择该数量的样例来充当我们初始测试群集中心。比如,如果想要有三个群集,那么就可以从数据集中随意选择三行数据。
计算从每个数据样例到群集中心(我们随意选中的数据行)的距离,使用距离计算的最小平方法。
基于到每个群集中心的最短距离将每个数据行分配给一个群集。
计算重心,即只使用每个群集的数的每列数据的平均数。
计算每个数据样例与刚刚创建的这些重心之间的距离。如果群集及群集数不变,那么就说明大功告成,群集创建完毕。如果它们变化,那么就需要返回到步骤 3 重新开始并一遍遍重复,直到不再变化为止。
更多精彩
赞助商链接