該教程適用于2017版本以后的matlab,老版本可能會有差異,
step1打開機器學習分類工具箱,匯入資料選擇“全部模型”進行訓練;訓練結果如圖所示:

step2 尋找準確度較高的幾個模型匯出代碼(點擊右上角的生成函式)

step3 匯出函式后將你的訓練集,即已知的資料賦給trainingData,即在inputTable = trainingData代碼前賦值即可:
trainingData=data1; % data1為已知的資料
inputTable = trainingData;
predictorNames = {'VarName1', 'VarName2', 'VarName3', 'VarName4'};
predictors = inputTable(:, predictorNames);
step4 將函式檔案的第一行注釋掉然后加入以下代碼;其中ClassNames為所有的類別組成的向量,kk為指定的正類,x_roc1,y_roc1為畫圖所需的點,
ClassNames=unique(response);
kk=1;
posclass=ClassNames(kk);
group=response;
[x_roc1,y_roc1,~,auc1]=perfcurve(group,validationScores(:,kk),posclass);
step5 change另外一個模型,然后重復上述操作,將
[x_roc1,y_roc1,~,auc1]=perfcurve(group,validationScores(:,kk),posclass);
修改為
[x_roc2,y_roc2,~,auc2]=perfcurve(group,validationScores(:,kk),posclass);
即可,
step6 使用plot函式繪制即可:
plot(x_roc1,y_roc1,'k-','linewidth',1.5);
hold on;
plot(x_roc2,y_roc2,'r-','linewidth',1.5);
xlabel('假正類率FPR');ylabel('真正類率TPR');
legend('決策樹','支持向量機');
最終的效果圖:

若想同時顯示AUC,則只需使用strcat函式連接字串和變數即可,如下:
plot(x_roc1,y_roc1,'k-','linewidth',1.5);
hold on;
plot(x_roc2,y_roc2,'r-','linewidth',1.5);
xlabel('假正類率FPR');ylabel('真正類率TPR');
text1=strcat('決策樹 AUC=',num2str(auc1));
text2=strcat('支持向量機 AUC=',num2str(auc2));
legend(text1,text2);

總結
利用ROC曲線選擇合適的分類模型具有明顯的缺點:在多分類問題中正類選擇不同時模型的選擇可能不一樣,多適合二分類模型的選取,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/297753.html
標籤:AI
上一篇:民辦二本計算機專業學生出路何在?
