⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fcm1.m

📁 K-MEANS聚类算法
💻 M
字号:
function [center,obj_fcn] = fcm1(center,data,cluster_n)


data_n = size(data,1);
in_n = size(data,2);

% Change the following to set default options
default_options = [2;	% exponent for the partition matrix U
		100;	% max. number of iteration
		1e-5;	% min. amount of improvement
		1];	% info display during iteration 
options = default_options;
expo = options(1);		% Exponent for U
max_iter = options(2);		% Max. iteration
min_impro = options(3);		% Min. improvement
display = options(4);		% Display info or not

obj_fcn = zeros(max_iter, 1);	% Array for objective function
dist = distfcm(center, data);       % fill the distance matrix
tmp = dist.^(-2/(expo-1));      % calculate new U, suppose expo != 1
U= tmp./(ones(cluster_n, 1)*sum(tmp));
% Main loop
for i = 1:max_iter,
	[U, center, obj_fcn(i)] = stepfcm(data, U, cluster_n, expo);
% 	if display, 
% 		fprintf('Iteration count = %d, obj. fcn = %f\n', i, obj_fcn(i));
%     end
	%check termination condition
	if i > 1,
		if abs(obj_fcn(i) - obj_fcn(i-1)) < min_impro, break; end,
	end
end

iter_n = i;	% Actual number of iterations 
obj_fcn(iter_n+1:max_iter) = [];
obj_fcn=obj_fcn(i);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -