• 大小: 22KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-16
  • 语言: 其他
  • 标签: matlab  cluste  

资源简介

包括主流的几种动态聚类算法:K-means,K-means的改进算法,DBSCAN算法等等,还有数据作图代码,代码详细明晰!适合想学习动态聚类算法的朋友!

资源截图

代码片段和文件信息

function [centroid result] = Clustering(data method varargin)
% Currently following clustering algorithms are supported:
%   1. Kmeans
%   2. Kmeans++
%   3. ISODATA (Iterative Self-Organizing Data Analysis)
%   4. Mean Shift
%   5. DBSCAN (Density-based Spatial Clustering of Application with Noise)
%   6. Gaussian Mixture Model /* Numerical instability problem not completely solved*/
%   7. LVQ (Learning Vector Quantization)

addpath(‘.\lib‘);
addpath(‘.\tool‘);

% Check input validity
if((strcmp(method‘kmeans‘) || strcmp(method‘kmeans++‘)) && (size(varargin2) ~= 2))
    error(‘The value of K should be predefined when using k-means and k-means++.‘);
elseif((strcmp(method‘isodata‘) || strcmp(method‘ISODATA‘)) && (size(varargin2) < 5))
    error(‘Not enough input for ISODATA. Please use help for more information.‘);
elseif((strcmp(method‘mean_shift‘) || strcmp(method‘Mean_Shift‘)) && (size(varargin2) ~= 1))
    error(‘Invalid number of input for mean shift.‘);
elseif((strcmp(method‘dbscan‘) || strcmp(method‘DBSCAN‘)) && (size(varargin 2) ~= 2))
    error(‘Invalid number of input for dbscan.‘);
elseif((strcmp(method‘GMM‘) || strcmp(method‘gmm‘)) && (size(varargin 2) ~= 2))
    error(‘Invalid number of input for Gaussian Mixture Model‘);
elseif((strcmp(method‘LVQ‘) || strcmp(method‘lvq‘)) && (size(varargin 2) ~= 5))
    error(‘Invalid number of input for Learning Vector Quantization‘);
end

% Method entries
% Kmeans
if(strcmp(method‘kmeans‘))
    k = varargin{11};
    iteration = varargin{12};
    [centroid result] = Kmeans(data k iteration);
    PlotData(data result centroid);
% Kmeans++
elseif(strcmp(method‘kmeans++‘) || strcmp(method‘kmeanspp‘)) 
    k = varargin{11};
    iteration = varargin{12};
    [centroid result] = Kmeanspp(data k iteration);
    PlotData(data result centroid);
% ISODATA
elseif(strcmp(method‘ISODATA‘) || strcmp(method‘isodata‘))
    desired_k = varargin{11}; % desired number of classes
    iteration = varargin{12}; % maximum iteration time
    minimum_n = varargin{13}; % minimum number of samples in one class
    maximum_variance = varargin{14}; % maximum allowed variance of samples in one class
    minimum_d = varargin{15}; %  minimum distance between two classes
    [centroid result] = ISODATA(data iteration desired_k minimum_n maximum_variance minimum_d);
    PlotData(data result centroid);
% Mean Shift
elseif(strcmp(method‘mean_shift‘) || strcmp(method‘Mean_Shift‘))
    thr = varargin{11}; % distance threshold
    [centroid result] = Mean_Shift(data thr);
    PlotData(data result centroid);
% DBSCAN
elseif(strcmp(method‘dbscan‘) || strcmp(method‘DBSCAN‘))
    epsilon = varargin{11}; % distance threshold for finding neighbors
    minPts = varargin{12};% minimum required number of neighbor points for adding one core object
    centroid = nan; % DBSCAN will not calculate centroid
    result = DBSCAN(data epsilon minPts);
    PlotData(data result);
% Gaussi

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-01-28 14:31  Clustering-master\
     文件        3744  2019-01-28 14:31  Clustering-master\Clustering.m
     文件        2707  2019-01-28 14:31  Clustering-master\README.md
     文件         135  2019-01-28 14:31  Clustering-master\Subspace_Clustering.m
     目录           0  2019-01-28 14:31  Clustering-master\data\
     文件        2753  2019-01-28 14:31  Clustering-master\data\toy_clustering.mat
     文件        3596  2019-01-28 14:31  Clustering-master\data\toy_subspace_clustering.mat
     目录           0  2019-01-28 14:31  Clustering-master\lib\
     文件        3843  2019-01-28 14:31  Clustering-master\lib\DBSCAN.m
     文件        2089  2019-01-28 14:31  Clustering-master\lib\Entropy_Weighting_Subspace_Kmeans.m
     文件        2685  2019-01-28 14:31  Clustering-master\lib\Gaussian_Mixture.m
     文件        3552  2019-01-28 14:31  Clustering-master\lib\ISODATA.m
     文件        1470  2019-01-28 14:31  Clustering-master\lib\Kmeans.m
     文件        2712  2019-01-28 14:31  Clustering-master\lib\Kmeanspp.m
     文件        1949  2019-01-28 14:31  Clustering-master\lib\LVQ.m
     文件        3347  2019-01-28 14:31  Clustering-master\lib\Mean_Shift.m
     文件        2875  2019-01-28 14:31  Clustering-master\lib\Subspace_Kmeans.m
     目录           0  2019-01-28 14:31  Clustering-master\tool\
     文件         927  2019-01-28 14:31  Clustering-master\tool\GenerateDataset.m
     文件         229  2019-01-28 14:31  Clustering-master\tool\OptimalDecisionBoundary.m
     文件        1378  2019-01-28 14:31  Clustering-master\tool\PlotData.m

评论

共有 条评论