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

📄 svm.m

📁 核方法&svm是模式识别是很重要的方法
💻 M
字号:
function [recRate,score,TP,TN,FP,FN] = SVM (trainData,trainLable,testData,testLable,trainNum,testNum,...    kPar,C,kType)%SVM: support vector machine%input:%  trainData: data for training%  trainLable: training data's lable%  testData: data for testing%  testLable: testing data's lable%  trainNum: the former trainNum trainData are malignant,the others are%            benign%  testNum: the former testNum testData are malignant,the others are benign%  kPar: kernel function's parameter%  C: punish parameter%  kType: kernel function's type%output:%  recRate: the recognize rate%  score: to produce ROC curve%  TP: true malignant%  TN: true benign%  FP: false malignant%  FN: false benignlength_train = size(trainData,2);length_test = size(testData,2);TP = 0;TN = 0;FP = 0;FN = 0;trainData = trainData';testData = testData';Y = trainLable';trainMalignant = trainData(1:trainNum,:);trainBenign = trainData(trainNum+1:length_train,:);% testMalignant = testData(1:testNum,:);% testBenign = testData(testNum+1:length_test,:);parameter = SVC_Fun(trainMalignant,trainBenign,trainNum,length_train-trainNum,kPar,C,kType);index = find(parameter.alpha>0);sup_vector = trainData(index,:);mat_kernel = Kernel(testData,sup_vector,kType,kPar);f_SVM = (mat_kernel*(parameter.alpha(index,:).*Y(index,:)))+parameter.b;YY = sign(f_SVM);for i=1:length_test    if YY(i)==0        YY(i) = 1;    endendclear i;for i=1:length_test    if YY(i) == testLable(i)        if i<=testNum            TP = TP+1;        else            TN = TN+1;        end    else         if i<=testNum            FN = FN+1;        else            FP = FP+1;        end    endendscore = f_SVM';recRate = (TP+TN)/length_test;

⌨️ 快捷键说明

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