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

📄 svmltrain.m

📁 SVM,很好用的用于模式识别中特征分类的咚咚。
💻 M
字号:
function net = svmltrain(net, X, Y)% SVMLTRAIN - Wrapper for SVMlight: Training%   %   NET = SVMLTRAIN(NET, X, Y)%   NET is a wrapper structure generated by SVML. SVMlight is called to%   train an SVM on training data X with labels Y. X is an [N D] matrix%   with one training data point per row, a total of N points with%   dimension D. X may be sparse. Y is a column vector of labels, where%   Y(i) is the +1 or -1 label for data point X(i,:).%   SVMlight is trained with the options given by NET.options. The%   generated model file is written to file NET.fname.%   If any of the Y(i) is 0, the transductive learner is invoked%   automatically.%   NET = SVMLTRAIN(NET, FNAME) may be used when several calls to%   SVMLTRAIN are made, using the same training data. In the%   SVMLTRAIN(NET, X, Y) syntax, training data X and Y are written to a%   file at each call, which is deleted after training. To save time, one%   may call SVMLWRITE(FNAME, X, Y) beforehand, thus saving X and Y into%   a permanent file. Afterwards SVMLTRAIN(NET, FNAME) will invoke the%   training, used the data in file FNAME.%%   See also SVML, SVMLFWD, SVMLWRITE, SVM_LEARN%% % Copyright (c) by Anton Schwaighofer (2002)% $Revision: 1.3 $ $Date: 2002/02/19 12:26:56 $% mailto:anton.schwaighofer@gmx.net% % This program is released unter the GNU General Public License.% error(nargchk(2, 3, nargin));error(consist(net, 'svml'));if nargin<3,  Y = [];  if ~ischar(X),    error(['Calling SVMLTRAIN with only 2 arguments requires a string as' ...           ' the second arg']);  else    traindata = X;  endelse  traindata = [];end% If no filename specified: Use a random filename for storing the modelfname = net.fname;if isempty(fname),  r = round(rand(1)*1e6);  fname = sprintf('svml_%i.model', r);  net.fname = fname;enduY = unique(Y);if isempty(setdiff(uY, [-1 0 1])),  if ismember(0, uY),    % For the case of transduction: make sure the transduction labels are    % written out somewhere    if isempty(net.options.TransLabelFile),      net.options = svmlopt(net.options, 'TransLabelFile', ...                            [fname '.transduction']);      fprintf('Modifying options:\n');      fprintf('Labels for transduction examples will be written to file %s\n',...              net.options.TransLabelFile);    end  endend% Write out the training data into a fileif isempty(traindata),  traindata = [fname '.traindata'];  svmlwrite(traindata, X, Y);  deleteData = 1;else  deleteData = 0;endstatus = svm_learn(net.options, traindata, fname);if deleteData,  delete(traindata);endif status~=0,  error(sprintf('Error when calling SVMlight. Status = %i', status));end

⌨️ 快捷键说明

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