matlab som聚类代码,Matlab:如何自定义聚类代码作为多级聚类?

我想要群集大量的数据记录。我正在处理的数据是字符串类型。群集过程需要很长时间。

让我们假设我想将一组电子邮件数据记录集群到群集中,同一个人写的电子邮件被分配到同一个群集(考虑到一个人可能以不同的方式写他/她的名字)。 >

我想要执行多阶段聚类:

基于名称的第一阶段聚类,如果两个记录之间的名称距离小于阈值,我们会认为这些聚类不然...

数据记录根据其他属性(名称除外)进入聚类的第二阶段。

计算配对距离。现在我处于聚类阶段。我想为dbscan集群使用以下代码:

function [IDX, isnoise] = dbscan_strings(X,epsilon,MinPts)

C = 0;

n = size(X,1);

IDX = zeros(n,1);

D = pdist2(X,X,@intersection);

visited = false(n,1);

isnoise = false(n,1);

for i = 1:n

if ~visited(i)

visited(i) = true;

Neighbors = RegionQuery(i);

if numel(Neighbors)

% X(i,:) is NOISE

isnoise(i) = true;

else

C = C+1;

ExpandCluster(i,Neighbors,C);

end

end

end

function ExpandCluster(i,Neighbors,C)

IDX(i) = C;

k = 1;

while true

j = Neighbors(k);

if ~visited(j)

visited(j) = true;

Neighbors2 = RegionQuery(j);

if numel(Neighbors2)>=MinPts

Neighbors = [Neighbors Neighbors2]; %#ok

end

end

if IDX(j)==0

IDX(j) = C;

end

k = k + 1;

if k > numel(Neighbors)

break;

end

end

end

function Neighbors = RegionQuery(i)

Neighbors = find(D(i,:)<=epsilon);

end

end我需要帮助将以下群集过程变为多级过程,其中X包含具有所有属性的数据记录。让我们假设X{:,1}是具有name属性的数据记录,因为名称包含在第一列中。

注意:我会为帮助我的人提供50分的奖励。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值