equalsze.m

来自「细胞生长结构可视化工具箱-MATLAB Toolbox1999.zip」· M 代码 · 共 37 行

M
37
字号
% Equalise number of samples per class
%
% Gives equal priors while avoiding random selection of each new sample
% and so prevents over and under representation of samples.

function GcsProject = EqualSze(GcsProject)

 % Find largest number of samples of any class
maxSamples = 0;
for cindex =1:GcsProject.Gcs.NoClasses
	eval(['No = size(GcsProject.data' int2str(cindex) ',1);']);	% Count samples
	if No>maxSamples 
		maxSamples  = No
	end	
end

 % Replicate samples for smaller classes
% For each class
for cindex =1:GcsProject.Gcs.NoClasses
	eval(['No = size(GcsProject.data' int2str(cindex) ',1);']);	
	eval(['tempset = GcsProject.data' int2str(cindex) ';']);	% Augmented set to be constructed
  	% while extra samples needed > number of actual samples
	while maxSamples -size(tempset,1) > No
  		% replicate entire set
		eval(['tempset = [tempset; GcsProject.data' int2str(cindex) '];']);
	end
  	% Pick remaining samples (<number in original set) randomly without replacement from original set
	while maxSamples -size(tempset,1) > 0
		eval(['index = ceil(size(GcsProject.data' int2str(cindex) ',1)*rand(1));']);
		eval(['tempset = [tempset; GcsProject.data' int2str(cindex) '(index,:)];']);
		eval(['GcsProject.data' int2str(cindex) '(index,:) = [];']);
	end
	eval(['GcsProject.data' int2str(cindex) ' = tempset;']);
end


⌨️ 快捷键说明

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