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

📄 polyc.m

📁 这个为模式识别工具箱
💻 M
字号:
%POLYC Polynomial Classification% %   W = polyc(A,CLASSF,N,S)% % INPUT%   A       Dataset%   CLASSF  Untrained classifier (optional; default: FISHERC)%   N       Degree of polynomial (optional; default: 1)%   S       1/0, 1 indicates that 2nd order combination terms should be used%           (optional; default: 0)%% OUTPUT%	  W       Trained classifier%% DESCRIPTION% Adds polynomial features to the dataset A and runs the untrained % classifier CLASSF. Combinations of 2nd order terms may be constructed.% For higher order terms no combinations are generated.% % SEE ALSO% DATASETS, MAPPINGS% Copyright: R.P.W. Duin, duin@ph.tn.tudelft.nl% Faculty of Applied Sciences, Delft University of Technology% P.O. Box 5046, 2600 GA Delft, The Netherlands% $Id: polyc.m,v 1.8 2005/02/01 15:53:07 duin Exp $function W = polyc(a,classf,n,s)	prtrace(mfilename);	if nargin < 4, 		prwarning(4,'S is not specified, assuming 0, i.e. no higher order terms.'); 			s = 0; 	end	if nargin < 3 | isempty(n), 		prwarning(4,'N, the degree of polynomial is not specified, assuming 1.'); 			n = 1; 	end	if (nargin < 2) | (isempty(classf)), 		prwarning(4,'CLASSF is not specified, assuming FISHERC.'); 			classf = fisherc; 	end	% No data, return an untrained mapping.	if nargin < 1 | isempty(a)		W = mapping('polyc',{classf,n,s});		W = setname(W,'Polynomial classifier');		return;	end	% Checks for the classifier.	ismapping(classf);	isuntrained(classf);	% Construct the 'feature-construction'-matrix such that:	% 		x_new = x*cmapm(k,P);	% See CMAPM.	isvaldset(a,1,2); % at least 1 object per class, 2 classes	[m,k] = size(a);		% First all the terms involving the same degree are defined.	% Degree 1	P = eye(k);	% Degree 2 and higher.	for j = 2:n		P = [P; j*eye(k)];	end	% On request, all the terms involving combinations of different degrees.	if s & (k > 1) & n > 1		% All pairs of features (including their higher degree variants) have		% to be included.		Q = zeros(k*(k-1)/2,k);		n = 0;		for j1 = 1:k			for j2 = j1+1:k				n = n+1;				Q(n,j2) = Q(n,j2)+1;				Q(n,j1) = Q(n,j1)+1;			end		end		P = [P;Q];	end		% Define the mapping from P, apply it to A and train the classifier.	v = cmapm(k,P);	w = a*v*classf;	W = v*w;	W = setname(W,'Polynomial classifier');	W = setcost(W,a);return;

⌨️ 快捷键说明

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