-
Notifications
You must be signed in to change notification settings - Fork 0
/
KMeans_Evaluation.m
49 lines (46 loc) · 2.08 KB
/
KMeans_Evaluation.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
% ------------------------------------------------------------------------ %
% This is the code for the Auto-CVI-Tool, which is an Automatic Cluster %
% validation Toolbox %
% Version 1.0 October 2022 | Copyright (c) 2022 | All rights reserved %
% ------------------------------------------------------ %
% Redistribution and use in source and binary forms, with or without %
% modification, are permitted provided that the following conditions are %
% met: %
% * Redistributions of source code must retain the above copyright %
% * Redistributions in binary form must reproduce the above copyright. %
% ------------------------------------------------------ %
% "Auto-CVI-Tool, %
% An Automatic Culster Validation Toolbox" %
% ------------------------------------------------------ %
% Farhad Abedinzadeh | farhaad.abedinzade@gmail.com %
% ------------------------------------------------------------------------ %
clc;clear;close
%% this script is for K-Means
%% Set Path
addpath("functions")
addpath(genpath(pwd))
%% Load data
% Load the Iris dataset
load fisheriris;
%% Select Parameters proximity
%% Select Distance Type for KMeans
DistanceKMeans = DistKMeans();
%% Generation of clusterings using k-means and varying the number of clusters
Kmax = 6; % Maximum Number of Cluster
clust = zeros(size(meas,1),Kmax);
for k=1:Kmax
clust(:,k) = kmeans(meas,k,'distance',DistanceKMeans);
end
%% Select CVI
CVI = Select_CVI_KMeans;
% Evaluation of the clustering solutions
eva = evalcvi(clust,CVI, meas);
%% OR
load fisheriris;
Clust = kmeans(meas,Kmax,'distance',DistanceKMeans);
eval = evalcvi(clust,CVI, meas);
%% Visualization
Visualize_CVI(eva,CVI)
%% Compare Multiple CVIs
CVIs = Select_Multiple_CVI_KMeans;
Multiple_Result = Do_Multiple(CVIs,clust,meas);