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

📄 classifierwrapper.m

📁 最新的模式识别分类工具箱,希望对朋友们有用!
💻 M
字号:
% trains the classifier to distinguish between pairs of classes, computes% majority vote, and labels accordingly.% This is useful for classifiers such as Linear Discriminants, LS,% perceptron etc.% % Usage:% [train_error, test_error, estTrainLabels, estTestLabels] = ...%    classifierWrapper(train_features, train_labels,classifier, params,test_features, test_labels)%% where% 	trainFeatures  - the training set vectors, one vector per column%	trainLabels    - the labels of the above%       classifier     - the name of the classification routine%       params         - the parameters of the classifier%       testFeatures   - test set, one column per vector%       testLabels     - labels  for test set%% Outputs%	trainError     - the error rate on the training set (one entry per%	                   class + total error)%	testError      - the error rate on the test set (one entry per class%	                  + total error)%       estTrainLabels - the labels produced by the classifier on the%                        training set%       estTestLabels  - the labels produced by the classifier on the%                        training set%%function [trainError, testError, estTrainLabels, estTestLabels] = ...  classifierWrapper(trainFeatures, trainLabels,classif, parameters,testFeatures, testLabels)hm = findobj('Tag', 'Messages'); fprintf('Performing pairwise classification\n');if (isempty(hm)==0)  s = sprintf('Performing pairwise classification\n');  set(hm,'String',s);  refresh;  pause(1);end[Nclasses, classes]  = find_classes([trainLabels(:);testLabels(:)]);% Number of classes in labels[Dim, NsamTrain]     = size(trainFeatures);[Dim, NsamTest]      = size(testFeatures);counts      = zeros(Nclasses, NsamTrain+NsamTest);allFeatures = [trainFeatures testFeatures];allLabels   = [trainLabels   testLabels];for outclass =1:Nclasses-1,  % extracts the outer class  outclassIndex    = find(trainLabels == classes(outclass));  outclassFeatures = trainFeatures(:,outclassIndex);  outclassLabels   = zeros (1, max(size(outclassFeatures)));  % extracts the inner class   for inclass = outclass+1:Nclasses,    fprintf('Working on classes %d and %d\n',classes(outclass),classes(inclass));    if (isempty(hm)==0)      s = sprintf('Working on classes %d and %d\n',classes(outclass),classes(inclass));      set(hm,'String',s);      refresh;      pause(.1);    end        inclassIndex    = find(trainLabels == classes(inclass));    inclassFeatures = trainFeatures(:,inclassIndex);    inclassLabels   = ones (1, max(size(inclassFeatures)));        pairFeatures = [outclassFeatures inclassFeatures];    pairLabels   = [outclassLabels   inclassLabels];        % classifies    [foo, foo1, hatTrLab, hatAllLab] = feval(classif, pairFeatures, ...	pairLabels,parameters, allFeatures, allLabels);        % collects votes    counts(inclass,:) = counts(inclass,:)+(hatAllLab(:))';    hatAllLab = 1-hatAllLab;    counts(outclass,:) = counts(outclass,:) + (hatAllLab(:))';  endend[vals,indexes] = max(counts);vals = classes(indexes);estTrainLabels = vals(1:NsamTrain);estTestLabels  = vals((NsamTrain+1):end);trainError = computeError(classes, trainLabels, estTrainLabels);testError  = computeError(classes, testLabels , estTestLabels);

⌨️ 快捷键说明

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