MAT之DT:DT实现根据乳腺肿瘤特征向量高精度预测肿瘤的是恶性还是良性
生活随笔
收集整理的這篇文章主要介紹了
MAT之DT:DT实现根据乳腺肿瘤特征向量高精度预测肿瘤的是恶性还是良性
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
MAT之DT:DT實現根據乳腺腫瘤特征向量高精度預測腫瘤的是惡性還是良性
?
?
目錄
輸出結果
代碼設計
?
?
輸出結果
?
代碼設計
%DT:DT實現根據乳腺腫瘤特征向量高精度預測腫瘤的是惡性還是良性 load?data.mat?a =?randperm(569); Train = data(a(1:500),:); Test = data(a(501:end),:);P_train = Train(:,3:end); T_train = Train(:,2);P_test = Test(:,3:end); T_test = Test(:,2);ctree = ClassificationTree.fit(P_train,T_train);view(ctree);?????????????? view(ctree,'mode','graph');T_sim = predict(ctree,P_test);count_B =?length(find(T_train == 1)); count_M =?length(find(T_train == 2));? rate_B = count_B / 500;?????????????? rate_M = count_M / 500;?????????????? total_B =?length(find(data(:,2) == 1)); total_M =?length(find(data(:,2) == 2)); number_B =?length(find(T_test == 1));? number_M =?length(find(T_test == 2)); number_B_sim =?length(find(T_sim == 1 & T_test == 1)); number_M_sim =?length(find(T_sim == 2 & T_test == 2)); disp(['病例總數:'?num2str(569)...'? 良性:'?num2str(total_B)...'? 惡性:'?num2str(total_M)]); disp(['訓練集病例總數:'?num2str(500)...'? 良性:'?num2str(count_B)...'? 惡性:'?num2str(count_M)]); disp(['測試集病例總數:'?num2str(69)...'? 良性:'?num2str(number_B)...'? 惡性:'?num2str(number_M)]); disp(['良性乳腺腫瘤確診:'?num2str(number_B_sim)...'? 誤診:'?num2str(number_B - number_B_sim)...'? 確診率p1='?num2str(number_B_sim/number_B*100)?'%']); disp(['惡性乳腺腫瘤確診:'?num2str(number_M_sim)...'? 誤診:'?num2str(number_M - number_M_sim)...'? 確診率p2='?num2str(number_M_sim/number_M*100)?'%']); disp(['乳腺腫瘤整體預測準確率:'?num2str((number_M_sim/number_M*100+number_B_sim/number_B*100)/2)?'%']);leafs =?logspace(1,2,10);N =?numel(leafs);err =?zeros(N,1); for?n = 1:Nt = ClassificationTree.fit(P_train,T_train,'crossval','on','minleaf',leafs(n));?err(n) = kfoldLoss(t); end plot(leafs,err); xlabel('葉子節點含有的最小樣本數'); ylabel('交叉驗證誤差'); title('葉子節點含有的最小樣本數對決策樹性能的影響,誤差越大性能越差—Jason niu')OptimalTree = ClassificationTree.fit(P_train,T_train,'minleaf',13);? view(OptimalTree,'mode','graph')resubOpt = resubLoss(OptimalTree) lossOpt = kfoldLoss(crossval(OptimalTree))resubDefault = resubLoss(ctree) lossDefault = kfoldLoss(crossval(ctree))[~,~,~,bestlevel] = cvLoss(ctree,'subtrees','all','treesize','min') cptree = prune(ctree,'Level',bestlevel); view(cptree,'mode','graph')resubPrune = resubLoss(cptree) lossPrune = kfoldLoss(crossval(cptree))?
?
相關文章
DT:DT實現根據乳腺腫瘤特征向量高精度預測腫瘤的是惡性還是良性
總結
以上是生活随笔為你收集整理的MAT之DT:DT实现根据乳腺肿瘤特征向量高精度预测肿瘤的是恶性还是良性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Crawler:爬虫基于urllib.r
- 下一篇: ML之k-NN:k-NN实现对150朵共