✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
个人主页:Matlab科研工作室
个人信条:格物致知。
更多Matlab仿真内容点击
智能优化算法 神经网络预测 雷达通信 无线传感器
信号处理 图像处理 路径规划 元胞自动机 无人机 电力系统
ID3算法是数据挖掘决策树算法中应用比较广泛的算法.本文采用ID3算法对发动机功率不足故障中的决策树进行研究与分析,针对ID3算法中的不足,提出一种基于Matlab的决策树算法,此算法根据输入的不同样本值,通过改变其权值来该决定输出值,使所得的决策树更合理,高效.本文实现决策树算法在计算机视觉中的应用。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%功能:演示决策树算法在计算机视觉中的应用
%基于C4.5决策树实现图像二值化;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
close all; clear; clc;
%% Step 1 载入图像
Image = imread('flower_test.png');
Mask = imread('flower_mask.png');
figure; imshow(Image); title('Used Image');
figure; imshow(Mask); title('Used Mask');
% In the Mask:
% Mask(i,j) = 0 -> class 0
% Mask(i,j) = 255 -> class 1
% Mask(i,j) = 128 -> unknown
%% Step 2 选择训练数据
[M,N,L] = size(Image);
Data = reshape(Image,[M*N,3]);
pID = find(Mask==255);
nID = find(Mask==0);
pNum = size(pID,1);
nNum = size(nID,1);
%
TrainData = [Data(pID,:);Data(nID,:)]';
TrainValue = [1*ones([pNum,1]);0*ones([nNum,1])]';
TrainNum = pNum + nNum;
%% Step 3 训练
DivNum = 32;
TrainDataFeatures = uint8(TrainData/DivNum)+1;
Nbins = max(TrainDataFeatures(:));
inc_node = TrainNum*10/100;
discrete_dim = [Nbins,Nbins,Nbins];
tree = BuildC45Tree(TrainDataFeatures, TrainValue, inc_node, discrete_dim, max(discrete_dim));
%% Step 4 测试
TestDataFeatures = uint8(Data'/DivNum)+1;
targets = UseC45Tree(TestDataFeatures, 1:M*N, tree, discrete_dim, unique(TrainValue));
Results = reshape(targets,[M,N]);
%
figure; imshow(Results,[]); title('C4.5 Classification Results')
[1]李园园. 决策树算法实现及其在信用风险控制中的应用[D]. 山东大学, 2013.
❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料