我正在尝试在不同的回归(机器学习)算法之间进行比较,以将一组数据转换为单个标量。最终将其用于生成图像,以使用超声弹性成像技术量化组织的刚度(剪切模量)...
...翻译:我将从事图像处理,除了每个像素都有自己的独立时间序列数据以及标量参数。我想使用这些值作为预测变量来输出另一个标量值,但是我意识到由于训练数据集的庞大规模,我需要依靠高数据表。
我正在将MATLAB R2019a与并行计算和机器学习/统计工具箱结合使用。我原本想使用Regression Learner应用程序,但由于两个原因它一直崩溃:小程序不接受高表输入,并且如果我将高表“收集”回RAM中,则学习者会抱怨它已退出尝试创建模型时占用的内存。
我认为这是因为applet并非设计用于处理高桌子,所以我选择通过手动创建回归模型来解决此问题。我将我的数据集保留为高表,并按顺序包含以下字段:
...并按如下方式对其进行处理:
% define anonymous functions for models
modelfun_nonlin=@(b,x) b(1).*x(:,1).^b(2) + b(3).*x(:,2).^b(4) + b(5).*x(:,3).^b(6) + b(7).*x(:,4).^b(8) + b(9).*x(:,5).^b(10)+b(11);
model_b0_nonlin=[1 -2 1 4 1 1 1 1 1 2 0];
% try linear model
clc;disp('Creating linear model...');
model_linear=fitlm( T, 'poly24112');
% try nonlinear model
clc;disp('Creating nonlinear model...');
model_nonlin=fitnlm(T, modelfun_nonlin, model_b0_nonlin);
% this continues on for other model types (SVM, bagged trees etc.)
老实说,我不知道从输出中得到什么,但是我很确定不是这个错误:
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: 0% complete
Evaluation 0% complete
Error using tall/fitlm>fitlm_array (line 193)
Predictor variables must be numeric vectors, numeric matrices, or categorical vectors.
Learn more about errors encountered during GATHER.
Error in tall/fitlm (line 38)
lm = fitlm_array(xOrT, varargin{:});
Error in tall/fitlm>fitlm_table (line 87)
lm = fitlm(X,Y,terms(:,xloc),otherargs{:},'VarNames',vnames,'CategoricalVar',iscat,...
Error in tall/fitlm (line 36)
lm = fitlm_table(xOrT, varargin{:});
Error in prepMLmodel (line 60)
model_linear=fitlm( T, 'poly24112');
Error in tall/gather (line 50)
[varargout{:}, readFailureSummary] = iGather(varargin{:});
Error in tall/fitlm>postprocess (line 206)
lmstruct = gather(lmstruct);
Error in tall/fitlm>fitlm_array (line 199)
lm = postprocess(out,formula); % imagine queueing this up for later
Error in tall/fitlm (line 38)
lm = fitlm_array(xOrT, varargin{:});
Error in tall/fitlm>fitlm_table (line 87)
lm = fitlm(X,Y,terms(:,xloc),otherargs{:},'VarNames',vnames,'CategoricalVar',iscat,...
Error in tall/fitlm (line 36)
lm = fitlm_table(xOrT, varargin{:});
Error in prepMLmodel (line 60)
model_linear=fitlm( T, 'poly24112');
如何成功创建模型?