资源简介

层次聚类的matlab程序,数据来源为80个平面点坐标。

资源截图

代码片段和文件信息

function HCA()
%UNtitleD2 Summary of this function goes here
%   Detailed explanation goes here
clear;clc
DataSet = load(‘testSet.txt‘);
index_of_cluster = core(DataSet);
plot_points(DataSet index_of_cluster);
%X = DataSet;
%Y = pdist(X‘cityblock‘);
%Z = linkage(Y‘average‘);
%[HT] = dendrogram(Z‘colorthreshold‘‘default‘);
%set(H‘LineWidth‘2)
end


function index_of_cluster = core(DataSet)
DS_size = size(DataSet);
min_distance = +inf;min_index = zeros(12);
index_of_cluster = 1:DS_size(1);
unique_index = unique(index_of_cluster);
size_unique = size(unique_index);
while(size_unique(2)>4)
    for i=unique_index
        for j=unique_index(unique_index > i)
            temp_distance = distance_in_clusters(DataSet(index_of_cluster==i:) DataSet(index_of_cluster==j:)); %error.
            if(temp_distance                min_distance = temp_distance;
                min_index = [ij];
            end
        end
    end
    min_distance = +inf;
    index_of_cluster(index_of_cluster == min_index(2)) = min_index(1);
    unique_index = unique(index_of_cluster);
    size_unique = size(unique_index);
end
end

function distance = distance_in_clusters(clusterA clusterB)
% define the distance between two clusters: average-linkage(The mean distance between elements of each cluster). 
A_size = size(clusterA);B_size = size(clusterB);
distance_AB = zeros(A_size(1) B_size(1));
for i=1:A_size(1)
    for j=1:B_size(1)
        distance_AB(ij) = distance_in_points(clusterA(i:) clusterB(j:));
    end
end
distance = sum(sum(distance_AB))/(A_size(1)*B_size(1));
end

function  dist = distance_in_points(vec1 vec2)
dist = sqrt(sum((vec1-vec2).^2));
end

function plot_points(DataSet index_of_cluster)
unique_index = unique(index_of_cluster);
point_type = ‘mxkxbxrxcxgxyx‘;
j = 1;
for i=unique_index
    points = DataSet(index_of_cluster==i:);
    plot(points(:1) points(:2)point_type((2*j-1):(2*j)))
    j = j+1;
    hold on
end
end


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        2043  2015-12-15 20:13  Hierarchical clustering\HCA.asv
     文件        2035  2015-12-15 20:33  Hierarchical clustering\HCA.m
     文件         619  2015-12-15 11:43  Hierarchical clustering\distance_in_clusters.asv
     文件        1600  2011-03-15 13:03  Hierarchical clustering\testSet.txt
     文件      236278  2015-12-15 20:29  Hierarchical clustering\untitled.bmp
     目录           0  2015-12-15 20:35  Hierarchical clustering\

评论

共有 条评论