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

📄 prdata.m

📁 一个关于数据聚类和模式识别的程序,在生物化学,化学中因该都可以用到.希望对大家有用,谢谢支持
💻 M
字号:
function [DS, TS]=prData(dataName)% prData: Various data set for PR%	Usage: [DS, TS]=prData(dataName)%		dataName: 'irir', 'wine', 'abalone', 'random2', 'random6'%	Roger Jangif nargin<1, selfdemo; return; endswitch lower(dataName)	case 'iris'		load iris.dat		DS.dataName='iris';		inputName={'sepal length', 'sepal width', 'petal length', 'petal width'};		[DS.inputName]=deal(inputName);		outputName={'Iris Setosa', 'Iris Versicolour', 'Iris Virginica'};		outputName={'Setosa', 'Versicolour', 'Virginica'};		[DS.outputName]=deal(outputName);		DS.input=iris(:, 1:end-1)';		DS.output=iris(:, end)';		if nargout==2			dataNum=size(DS.input, 2);			TS=DS;			DS.input= DS.input(:, 1:2:dataNum);			DS.output=DS.output(:, 1:2:dataNum);			TS.input= TS.input(:, 2:2:dataNum);			TS.output=TS.output(:, 2:2:dataNum);		end	case 'wine'		load wine.dat		DS.dataName='wine';		inputName={'Alcohol', 'Malic acid', 'Ash', 'Alcalinity of ash', 'Magnesium', 'Total phenols', 'Flavanoids', 'Nonflavanoid phenols', 'Proanthocyanins', 'Color intensity', 'Hue', 'OD280/OD315 of diluted wines', 'Proline'};		[DS.inputName]=deal(inputName);		DS.input=wine(:, 2:end)';		DS.output=wine(:, 1)';		if nargout==2			dataNum=size(DS.input, 2);			TS=DS;			DS.input= DS.input(:, 1:2:dataNum);			DS.output=DS.output(:, 1:2:dataNum);			TS.input= TS.input(:, 2:2:dataNum);			TS.output=TS.output(:, 2:2:dataNum);		end	case 'abalone'		load abalone.dat		DS.dataName='abalone';		inputName={'Sex', 'Length', 'Diameter', 'Height', 'Whole weight', 'Shucked weight', 'Viscera weight', 'Shell weight'};		[DS.inputName]=deal(inputName);		DS.input=abalone(:, 1:end-1)';		DS.output=abalone(:, end)';		if nargout==2			dataNum=size(DS.input, 2);			TS=DS;			DS.input= DS.input(:, 1:2:dataNum);			DS.output=DS.output(:, 1:2:dataNum);			TS.input= TS.input(:, 2:2:dataNum);			TS.output=TS.output(:, 2:2:dataNum);		end	case 'random2'		% 2D random data		n=100;		dim=2;		c1 = [0.125 0.25]'; data1 = randn(dim,n)/8 + c1*ones(1,n); out1 = 1*ones(1,n);		c2 = [0.625 0.25]'; data2 = randn(dim,n)/8 + c2*ones(1,n); out2 = 2*ones(1,n);		c3 = [0.375 0.75]'; data3 = randn(dim,n)/8 + c3*ones(1,n); out3 = 3*ones(1,n);		c4 = [0.875 0.75]'; data4 = randn(dim,n)/8 + c4*ones(1,n); out4 = 4*ones(1,n);		data = [data1, data2, data3, data4];		out = [out1, out2, out3, out4];		DS.input=data;		DS.output=out;		DS.dataName='random2';		if nargout==2			dataNum=size(DS.input, 2);			TS=DS;			DS.input= DS.input(:, 1:2:dataNum);			DS.output=DS.output(:, 1:2:dataNum);			TS.input= TS.input(:, 2:2:dataNum);			TS.output=TS.output(:, 2:2:dataNum);		end	case 'random3'		% 3D random data		dataNum=100;		mean1=[0 0 0]';		input1=randn(3, dataNum)+mean1*ones(1,dataNum);		output1=1*ones(1, dataNum);		mean2=[0 5 5]';		input2=randn(3, dataNum)+mean2*ones(1,dataNum);		output2=2*ones(1, dataNum);		mean3=[3 2 4]';		input3=randn(3, dataNum)+mean3*ones(1,dataNum);		output3=3*ones(1, dataNum);		DS.input=[input1, input2, input3];		DS.output=[output1, output2, output3];	case 'random6'		% 6D random data		n=50;		dim=6;		c1 = [1 0 0 0 0 0]'; data1 = randn(dim,n)/4 + c1*ones(1,n); out1 = 1*ones(1,n);		c2 = [0 1 0 0 0 0]'; data2 = randn(dim,n)/4 + c2*ones(1,n); out2 = 2*ones(1,n);		c3 = [0 0 1 0 0 0]'; data3 = randn(dim,n)/4 + c3*ones(1,n); out3 = 3*ones(1,n);		c4 = [0 0 0 1 0 0]'; data4 = randn(dim,n)/4 + c4*ones(1,n); out4 = 4*ones(1,n);		data = [data1, data2, data3, data4];		out = [out1, out2, out3, out4];		DS.input=data;		DS.output=out;		DS.dataName='random6';		if nargout==2			dataNum=size(DS.input, 1);			TS=DS;			DS.input= DS.input(:, 1:2:dataNum);			DS.output=DS.output(:, 1:2:dataNum);			TS.input= TS.input(:, 2:2:dataNum);			TS.output=TS.output(:, 2:2:dataNum);		end	otherwise		disp('Unknown method.')endif ~isfield(DS, 'inputName')	for i=1:size(DS.input,1)		DS.inputName{i}=int2str(i);		if exist('TS')			TS.inputName{i}=int2str(i);		end	endend% ======= Self demofunction selfdemosubplot(2,2,1);DS=feval(mfilename, 'random2'); dcprDataPlot(DS);subplot(2,2,2);DS=feval(mfilename, 'iris'); dcprDataPlot(DS);subplot(2,2,3);DS=feval(mfilename, 'wine'); dcprDataPlot(DS);subplot(2,2,4);DS=feval(mfilename, 'abalone'); dcprDataPlot(DS);

⌨️ 快捷键说明

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