我想比较不同的机器学习算法.作为其中的一部分,我需要能够执行
grid search for optimal hyperparameters.但是,我并没有真正想到为每个固定算法和其超参数的固定子集编写单独的网格搜索实现.相反,我希望它看起来更像是在
scikit-learn,但可能没有那么多的功能(例如我不需要多个网格)并用MATLAB编写.
到目前为止,我试图理解尚未编写的grid_search.m的逻辑
function model = grid_search(algo, data, labels, varargin)
p = inputParser;
% here comes the list of all possible hyperparameters for all algorithms
% I will just leave three for brevity
addOptional(p, 'kernel_function', {'linear'});
addOptional(p, 'rbf_sigma', {1});
addOptional(p, 'C', {1});
parse(p, algo, data, labels, varargin{:});
names = fieldnames(p.Results);
values = struct2cell(p.Results); % a cell array of cell arrays
argsize = 2 * length(names);
args = cell(1, argsize);
args(1 : 2 : argsize) = names;
% Now this is the stumbling p