資源簡介
采用了十折交叉驗證提高了分類的準確性,分類器分類函數可以替換成Linear,quadratic,rbf函數

代碼片段和文件信息
clear;clc;
X=xlsread(‘book44‘);
[m?n]=size(X);
[Bcmaker]=xlsread(‘book33‘);
ind=crossvalind(‘Kfold‘m10);??????????????????????%采用十折交叉驗證法
for?i=1:10
test=(ind==i);
train=~test;
X_tr=X(train:);??
X_te=X(test:);
Y_tr=cmaker(train1);
Y_te=cmaker(test1);
[gindexgroups]?=?grp2idx(Y_tr);
option=statset(‘MaxIter‘80000);
s=svmtrain(X_trgindex‘Method‘‘SMO‘?‘Kernel_Function‘‘quadratic‘‘options‘option)?;%訓練支持向量機分類器;SMO代表%使用序列最小化方法訓練支持向量機的分類器;polynomial代表多項式核函數
sv_index=s.SupportVectorIndices?;?%返回支持向量的標號
beta=s.Alpha;??%返回分類函數的權系數
bb=s.Bias;??%返回分類函數的常數項
mean_and_std_trans=s.ScaleData;?%第1行返回的是已知樣本點均值向量的相反數,第2行返回的是標準差向量的倒數
check=svmclassify(sX_tr);??%驗證已知樣本點
err_rate(1i)=1-sum(gindex==check)/length(gindex)?;%計算已知樣本點的錯判率
end
AvgCorrectRate=1-mean(err_rate);?????????????????????%計算爭取率平均值
fprintf(‘cp.ErrorRate?=?%f\n‘AvgCorrectRate);?
%?test=xlsread(‘x_test‘);
%?solution=svmclassify(stest)?%對待判樣本點進行分類
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1100??2017-05-05?23:27??testsvm.m
?????文件??????32256??2017-05-05?20:50??book33.xls
?????文件??????63488??2017-05-05?20:51??book44.xls
-----------?---------??----------?-----??----
????????????????96844????????????????????3
- 上一篇:matlab的canny邊緣檢測
- 下一篇:GPS計算用戶位置
評論
共有 條評論