Clustering Data using ART 1
显示 更早的评论
Hi everyone!
I would like to perform a clustering on some databases.
Some of the databases have 3 columns (2D databases) and others have 4 columns (3D databases).
The last column of each databases is number of class that each data should be in it.
I want to clustering this data using SOM and ART to find out how these databases will be clustered and analyze the final results and compare them with the default classification.
I don't have any problem in SOM but I have some issues for using ART 1.
I understood the algorithm of ART 1 and I know it is an unsupervised learning.
My problem is the hole steps of this algorithm only can be implemented for Binary datas and my databases is not binary.
the inputs should be the hole datas in each databases and the outputs should be the number of classes in the same database.
I'm using the code of ART 1 that describes in "Adaptive Resonance Theory Microchips".
I'm also using MATLAB R2018b.
One of each 2D and 3D databases are attached.
Thank you...any help will be appreciated.
回答(1 个)
Sahel Gheybi
2022-5-14
0 个投票
function [a, b, c] = fuzzyARTMAP_examplesWrapper(varargin)
if nargin==0
init_vals.epochs=1;
init_vals.rho=0;
init_vals.alpha=10^(-8);
init_vals.beta=.1;
init_vals.epsilon=0;
init_vals.gamma=10^-7;
init_vals.plot_steps=0;
init_vals.datasrc=6;
disp('Running Fuzzy ARTMAP with following values on Circle-in-Square dataset');
disp('1) Circle in Square benchmark (sparse)')
disp('2) Circle in Square benchmark (dense)')
disp('3) Stripes benchmark (sparse)')
disp('4) Stripes benchmark (dense)')
disp('5) Checkerboard benchmark (sparse)')
disp('6) Checkerboard benchmark (dense)')
disp('7) Boston Benchmark: test on stripe 1')
disp('8) Boston Benchmark: test on stripe 2')
disp('9) Boston Benchmark: test on stripe 3')
disp('10) Boston Benchmark: test on stripe 4')
disp('11) Movie Genre Benchmark')
disp('Data Source No.')
disp(init_vals.datasrc);
disp('No. Epochs')
disp(init_vals.epochs);
disp('Baseline vigilance')
disp(init_vals.rho);
disp('alpha')
disp(init_vals.alpha);
disp('beta')
disp(init_vals.beta);
disp('gamma')
disp(init_vals.gamma);
disp('epsilon')
disp(init_vals.epsilon);
disp('Plot each training step 1|Yes 0|No')
disp(init_vals.plot_steps);
tmp_value=input('Train and test Fuzzy ARTMAP with current values? y | n ','s');
if (strmatch(lower(tmp_value),'yn')==0)
error('Input value must be "y" or "n"')
end
if (tmp_value=='n')
if (strmatch(lower(tmp_value),'yn')==0)
error('Input value must be "y" or "n"')
end
tmp_value_b=input('Only change dataset? y | n ','s');
if (strmatch(lower(tmp_value_b),'yn')==0)
error('Input value must be "y" or "n"')
end
if (tmp_value_b=='n')
init_vals.epochs=input('Number of epochs? ');
init_vals.rho=input('Baseline vigilance? ');
init_vals.alpha=input('alpha value? (suggested value: 10^-8) ');
init_vals.beta=input('beta value? (suggested value: 10^-1 fast learning) ');
init_vals.gamma=input('gamma value? (suggested value: 10^-8) ');
init_vals.epsilon=input('epsilon value? (suggested value: 0) ');
init_vals.plot_steps=input('Plot each training step? 0 | No, 1 | Yes) ');
end
disp('1) Circle in Square benchmark (sparse)')
disp('2) Circle in Square benchmark (dense)')
disp('3) Stripes benchmark (sparse)')
disp('4) Stripes benchmark (dense)')
disp('5) Checkerboard benchmark (sparse)')
disp('6) Checkerboard benchmark (dense)')
disp('7) Boston Benchmark: test on stripe 1')
disp('8) Boston Benchmark: test on stripe 2')
disp('9) Boston Benchmark: test on stripe 3')
disp('10) Boston Benchmark: test on stripe 4')
disp('11) Movie Genre Benchmark')
init_vals.datasrc=input('Dataset to train and test on? (1-12) ');
end
clear tmp_value tmp_value_b;
else
init_vals=varargin{1};
disp(init_vals)
end
gcf;
%imshow('figure_CIS.jpg')
%openfig('figure_cis.fig','reuse')
fuzzyARTMAP_examples;
类别
在 帮助中心 和 File Exchange 中查找有关 Get Started with MATLAB 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!