多元分類SVM(多種類SVM)プログラム使用説明
4776 ワード
目次操作フロー プログラムのデータフォーマット matlabプログラム 操作の流れ
まず、このサイトでlibsvmパッケージをダウンロードします.http://download.csdn.net/detail/qy20115549/9608108.ダウンロードした後、メニューバーの設定パスをクリックします.このフォルダをパスに追加すると、他のフォルダから直接呼び出すことができます.
プログラムのデータフォーマット
テストセットはtest Dataで、test test_を含むプログラムです.labelsの2つのグループのデータ.testはexcelで導入したデータで、マトリックスにフォーマットを導入し、多次元自変数(X)、test_を保存します.labelsは、列ベクトルを導入し、引数に対応するラベルカテゴリ(Y)を保存します.カテゴリは1、2、3などの数字で表さなければなりません.同じように、トレーナーデータは紹介しません.
matlabプログラム
まず、このサイトでlibsvmパッケージをダウンロードします.http://download.csdn.net/detail/qy20115549/9608108.ダウンロードした後、メニューバーの設定パスをクリックします.このフォルダをパスに追加すると、他のフォルダから直接呼び出すことができます.
プログラムのデータフォーマット
テストセットはtest Dataで、test test_を含むプログラムです.labelsの2つのグループのデータ.testはexcelで導入したデータで、マトリックスにフォーマットを導入し、多次元自変数(X)、test_を保存します.labelsは、列ベクトルを導入し、引数に対応するラベルカテゴリ(Y)を保存します.カテゴリは1、2、3などの数字で表さなければなりません.同じように、トレーナーデータは紹介しません.
matlabプログラム
%
save testData test test_labels;
save trainData train train_labels;
%
load testData;
load trainData;
% 0-1
[train,pstrain]=mapminmax(train');
pstrain.ymin=0;
pstrain.ymax=1;
[train,pstrain]=mapminmax(train,pstrain);
[test,pstest]=mapminmax(test');
pstest.ymin=0;
petest.ymax=1;
[test,pstest]=mapminmax(test,pstest);
train=train';
test=test';
% , ,
%%
model = svmtrain(train_labels, train);
%
[predict_label,accuracy] = svmpredict(test_labels, test, model);
% (c,g), 。
[bestacc,bestc,bestg] = SVMcgForClass(train_labels,train,-5,5,-5,5,7,0.5,0.5,4.5)%% c,g
cmd=['-c ',num2str(bestc),' -g ',num2str(bestg)] %%c,g
%
%model=svmtrain(train_labels,train,cmd);
%% SVM
%[ptest_label, test_accuracy] = svmpredict(test_labels, test, model);
% PSO (c,g), ,
pso_option.c1 = 0.5;
pso_option.c2 = 0.5;
pso_option.maxgen = 200;
pso_option.sizepop = 50;
pso_option.k = 0.6;
pso_option.wV = 1;
pso_option.wP = 1;
pso_option.v = 7;
pso_option.popcmax =200;
pso_option.popcmin = 0.1;
pso_option.popgmax = 100;
pso_option.popgmin = 0.001;
%
[bestacc1,bestc1,bestg1,pso_option] = psoSVMcgForClass(train_labels,train,pso_option)
cmd1= ['-c ',num2str(bestc1),' -g ',num2str(bestg1)];
model1 = svmtrain(train_labels, train,cmd1);
% [train_label1,train_accuracy1]=svmpredict(train_labels, train, model1);
%
[ptest_label1, test_accuracy1] = svmpredict(test_labels, test, model1);