AdaBoost每一轮的训练获得一个当前权重条件下的最优阈值。
% 逐步求精的方法获取第j个特征值上的最优分类器
% 输入:
% X 训练样本 , rows X cols 维矩阵 , rows个样本,每个样本cols个特征值
% Y 每个样本所属类别的标识 , 向量 , 长度为rows
% rows 样本容量
% weight 权重向量 , 存放当前每个样本的权重值
% j 当前查找最佳弱分类器的特征列
% 输出:
% bestError %搜索到第j列最佳弱分类器得到的最小错误率
% bestThresh %搜索到第j列最佳弱分类器的阈值
% bestBias %搜索到第j列最佳弱分类器的偏置
%
% 迭代4次 , 每次将区间划分为12个小段
%
% 调用格式为 [ bestError,bestThresh,bestBias ] = findBestWeakLearner(X , Y , rows , weight , j)
% 最后更新 2007 - 03 - 25
function [ bestError,bestThresh,bestBias ] = findBestWeakLearner(X , Y , rows , weight , j)
% 检查输入特征向量与类标需为列向量
iptcheckinput(X , {'logical' , 'numeric'} , {'2d' , 'nonempty' , 'real'} , mfilename , 'X' , 1 ) ;
iptcheckinput(Y , {'logical' , 'numeric'} , {'column' , 'nonempty' , 'integer'} , mfilename , 'Y' , 2 ) ;
iteration = 4 ; % 迭代次数
sectNum = 12 ; % 每次迭代,将搜索区域划分的片段
maxFea = max(X(: , j)) ; % 搜索空间的最大值
% 输入:
% X 训练样本 , rows X cols 维矩阵 , rows个样本,每个样本cols个特征值
% Y 每个样本所属类别的标识 , 向量 , 长度为rows
% rows 样本容量
% weight 权重向量 , 存放当前每个样本的权重值
% j 当前查找最佳弱分类器的特征列
% 输出:
% bestError %搜索到第j列最佳弱分类器得到的最小错误率
% bestThresh %搜索到第j列最佳弱分类器的阈值
% bestBias %搜索到第j列最佳弱分类器的偏置
%
% 迭代4次 , 每次将区间划分为12个小段
%
% 调用格式为 [ bestError,bestThresh,bestBias ] = findBestWeakLearner(X , Y , rows , weight , j)
% 最后更新 2007 - 03 - 25
function [ bestError,bestThresh,bestBias ] = findBestWeakLearner(X , Y , rows , weight , j)
% 检查输入特征向量与类标需为列向量
iptcheckinput(X , {'logical' , 'numeric'} , {'2d' , 'nonempty' , 'real'} , mfilename , 'X' , 1 ) ;
iptcheckinput(Y , {'logical' , 'numeric'} , {'column' , 'nonempty' , 'integer'} , mfilename , 'Y' , 2 ) ;
iteration = 4 ; % 迭代次数
sectNum = 12 ; % 每次迭代,将搜索区域划分的片段
maxFea = max(X(: , j)) ; % 搜索空间的最大值