文本挖掘之聚类算法之CLARA聚类算法

CLARA (Clustering LARge Applications,大型应用中的聚类方法)(Kaufmann and Rousseeuw in 1990):不考虑整个数据集, 而是选择数据的一小部分作为样本.


CLARA算法的步骤:

它从数据集中抽取多个样本集, 对每个样本集使用PAM, 并以最好的聚类作为输出
  CLARA 算法的步骤:
  (1) for  i = 1 to v (选样的次数) ,重复执行下列步骤( (2) ~ (4) ) :
  (2) 随机地从整个数据库中抽取一个N(例如:(40 + 2 k))个对象的样本,调用PAM方法从样本中找出样本的k个最优的中心点。
  (3)将这k个中心点应用到整个数据库上, 对于每一个非代表对象Oj ,判断它与从样本中选出的哪个代表对象距离最近.
  (4) 计算上一步中得到的聚类的总代价. 若该值小于当前的最小值,用该值替换当前的最小值,保留在这次选样中得到的k个代表对象作为到目前为止得到的最好的代表对象的集合.
  (5) 返回到步骤(1) ,开始下一个循环.
  算法结束后,输出最好的聚类结果

CLARA算法的优点与缺点:

优点: 可以处理的数据集比 PAM大
  缺点:
1有效性依赖于样本集的大小
2基于样本的好的聚类并不一定是整个数据集的好的聚类, 样本可能发生倾斜
  例如, Oi是整个数据集上最佳的k个中心点之一, 但它不包含在样本中, CLARA将找不到最佳聚类


CLARA聚类算法是CLustering LARge Applications的缩写,它是一种基于抽样的聚类算法CLARA算法是通过对原始数据进行多次抽样来减少计算复杂度的一种方法。下面是CLARA聚类算法的步骤和Matlab代码实现: 1. 首先,从原始数据中随机选择一个样本作为初始代表点。 2. 对于每个抽样集,计算所有非代表点到代表点的距离,并选择最近的k个作为该抽样集的代表点。 3. 根据代表点计算每个抽样集的总代价,选择具有最小总代价的抽样集作为最优代表点。 4. 重复步骤2和步骤3,直到遍历所有的代表点。 5. 通过进行多次抽样,得到多组最优代表点,选择具有最小总代价的代表点作为最终聚类结果。 下面是CLARA聚类算法的Matlab代码实现: ```matlab % 定义数据集 data = [x1, y1; x2, y2; ...]; % 定义抽样数量和代表点数量 numSamples = 100; % 抽样数量 numRepresentatives = 3; % 代表点数量 % 初始化最小总代价和最优代表点 minTotalCost = inf; bestRepresentatives = []; % 进行多次抽样 for i = 1:numSamples % 从数据集中随机抽样 sampleIndices = randperm(size(data, 1), numSamples); sampleData = data(sampleIndices, :); % 随机选择初始代表点 representatives = sampleData(randperm(numSamples, numRepresentatives), :); % 计算每个非代表点到代表点的距离 distances = pdist2(sampleData, representatives); % 选择最近的k个作为代表点 [~, nearestIndices = mink(distances, numRepresentatives, 2); nearestRepresentatives = sampleData(nearestIndices, :); % 计算抽样集的总代价 totalCost = sum(distances(:)); % 更新最小总代价和最优代表点 if totalCost < minTotalCost minTotalCost = totalCost; bestRepresentatives = nearestRepresentatives; end end % 输出最优代表点 bestRepresentatives ``` CLARA聚类算法通过多次抽样来减少计算复杂度,可以在处理大规模数据时提供较好的聚类效果。通过随机抽样和代表点选择的过程,CLARA算法可以在Matlab中实现并得到最优的聚类结果。请注意,上述代码只是一个简单的实现示例,实际使用时可能需要根据具体情况进行调整和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值