--- a
+++ b/predictFunc_svm.m
@@ -0,0 +1,40 @@
+%**********   基于5折交叉验证及SVM分类器的预测函数,用于预测精度   **********%
+%**********Date£º2017.04.12  Group:DataMing No.5**********%
+function Acc = predictFunc_svm( Pdata, Ndata, data_atrr)
+Pnum=size(Pdata,1);
+Nnum=size(Ndata,1);
+indicesP =crossvalind('Kfold',Pnum,5); %5折交叉验证的正指数
+indicesN =crossvalind('Kfold',Nnum,5); %5折交叉验证的负指数
+Acc=[];
+%% 进行K折交叉验证(K=5)
+for i=1:5
+    Ptest = (indicesP == i);
+    Ptrain = ~Ptest;
+    Ntest = (indicesN == i);
+    Ntrain = ~Ntest;
+    Ztrain=[Ptrain;Ntrain];
+    Ztest=[Ptest;Ntest];
+    %% 选出数据集训练属性和测试属性
+    train_attr =data_atrr(Ztrain==1,:); %ѵÁ·ÊôÐÔ
+    test_attr =data_atrr(Ztrain==0,:);   %²βΚΤΚτΠΤ
+    %% 训练集和测试集中的正样本
+    Ptrain_data=Pdata(Ptrain==1);
+    Ptest_data=Pdata(Ptrain==0);
+    %% 训练集和测试集中的负样本
+    Ntrain_data =Ndata(Ntrain==1);
+    Ntest_data =Ndata(Ntrain==0);
+    %% ѵÁ·¼¯µÄ±êÇ©
+    train_label = vertcat( Ptrain_data, Ntrain_data);    
+    %% ²βΚΤΌ―΅Δ±κΗ©
+    test_label = vertcat( Ptest_data, Ntest_data);
+    %% 通过SVM构建的预测器,训练集训练模型
+    model = svmtrain(train_label,sparse(train_attr),'-h 0');  
+    %% 通过SVM构建的预测器,测试集预测精度
+    [~,acc,~]=svmpredict(test_label,sparse(test_attr),model);
+%predicted_label, accuracy/mse, decision_values]=svmpredict(test_label,test_matrix, model, ['libsvm_options']);
+%accuracy/mse是一个3*1的列向量,其中第1个数字用于分类问题,表示分类准确率;
+%后两个数字用于回归问题,第2个数字表示mse;第三个数字表示平方相关系数。
+    Acc=[Acc,acc(1,1)];%取出分类预测精度结果,5折计算累积得到一个1*5的矩阵
+  end
+end
+