对“视觉机器学习20讲配套仿真代码”的研究心得---Adaboost(四)
2016-05-02 14:04
381 查看
Initialize.m
function this = Initialize(this, Data, Labels)
if( size(Labels,1) ~= 1 || length(size(Labels)) ~= 2)
error('Labels should be a (1,N) matrix.');
end
if( size(Labels,2) ~= size(Data,2))
error('Data should be (M,N) matrix and Labels (1,N)');
end
for i = 1 : length(Data)
fold_i = floor(rand * (this.folds - eps) + 1);
if( i > this.folds )
this.CrossDataSets{fold_i} = {cat(2, Data(:, i), this.CrossDataSets{fold_i}{1,1})};
this.CrossLabelsSets{fold_i} = {cat(2, Labels(:, i), this.CrossLabelsSets{fold_i}{1,1})};
else
this.CrossDataSets{i} = {cat(2, Data(:, i), this.CrossDataSets{i})};
this.CrossLabelsSets{i} = {cat(2, Labels(:, i), this.CrossLabelsSets{i})};
end
end
GetFold.m
function [Data, Labels] = GetFold(this, N)
Data = [];
Labels = [];
if(N > this.folds)
error('N > total folds');
end
Data = cat(2, Data, this.CrossDataSets{N}{1,1});
Labels = cat(2, Labels, this.CrossLabelsSets{N}{1,1});
crossvalidation.m
function this = crossvalidation(folds)
if( folds == 1)
error('folds should be >= 2');
end
this.folds = folds;
this.CrossDataSets = cell(folds, 1);
this.CrossLabelsSets = cell(folds, 1);
this=class(this, 'crossvalidation') ;
CatFold.m
function [Data, Labels] = CatFold(this, Data, Labels, N)
if(N > this.folds)
error('N > total folds');
end
Data = cat(2, Data, this.CrossDataSets{N}{1,1});
Labels = cat(2, Labels, this.CrossLabelsSets{N}{1,1});
function this = Initialize(this, Data, Labels)
if( size(Labels,1) ~= 1 || length(size(Labels)) ~= 2)
error('Labels should be a (1,N) matrix.');
end
if( size(Labels,2) ~= size(Data,2))
error('Data should be (M,N) matrix and Labels (1,N)');
end
for i = 1 : length(Data)
fold_i = floor(rand * (this.folds - eps) + 1);
if( i > this.folds )
this.CrossDataSets{fold_i} = {cat(2, Data(:, i), this.CrossDataSets{fold_i}{1,1})};
this.CrossLabelsSets{fold_i} = {cat(2, Labels(:, i), this.CrossLabelsSets{fold_i}{1,1})};
else
this.CrossDataSets{i} = {cat(2, Data(:, i), this.CrossDataSets{i})};
this.CrossLabelsSets{i} = {cat(2, Labels(:, i), this.CrossLabelsSets{i})};
end
end
GetFold.m
function [Data, Labels] = GetFold(this, N)
Data = [];
Labels = [];
if(N > this.folds)
error('N > total folds');
end
Data = cat(2, Data, this.CrossDataSets{N}{1,1});
Labels = cat(2, Labels, this.CrossLabelsSets{N}{1,1});
crossvalidation.m
function this = crossvalidation(folds)
if( folds == 1)
error('folds should be >= 2');
end
this.folds = folds;
this.CrossDataSets = cell(folds, 1);
this.CrossLabelsSets = cell(folds, 1);
this=class(this, 'crossvalidation') ;
CatFold.m
function [Data, Labels] = CatFold(this, Data, Labels, N)
if(N > this.folds)
error('N > total folds');
end
Data = cat(2, Data, this.CrossDataSets{N}{1,1});
Labels = cat(2, Labels, this.CrossLabelsSets{N}{1,1});
相关文章推荐
- java权限修饰符
- 码农小汪-Spring MVC url路径,请求方法限定
- 9.2 JavaScritp:为数据带来生命-数组对象
- java中的线程问题
- c++基础回顾
- 对“视觉机器学习20讲配套仿真代码”的研究心得---Adaboost(三)
- SpringMVC访问静态资源的三种方式
- c++第四次实验---继承和派生
- 如何写好代码
- org.springframework.beans.factory.NoUniqueBeanDefinitionException
- 对“视觉机器学习20讲配套仿真代码”的研究心得---Adaboost(二)
- Java 线程局部存储
- C++程序变量在内存中的分配问题
- java并发编程(6)--synchronized
- 【AKOJ】1184-ASCII码排序(2)
- SpringData 学习(4)—— 使用 @Query 注解实现查询
- c/c++在windows下获取时间和计算时间差的几种方法总结
- java数组排序,二分查找
- C语言有参函数调用时参数间数据传递问题
- java中几种复制数组的方法比较