fitrkernel函数的用法
环境:matlab 2019
1.功能
采用高斯核实现非线性回归,对大规模数据集较为实用,也可用于小样本数据集,通过高斯核实现低维数据到高维数据的映射,从而实现高维空间的线性回归(其他的线性回归包括支持向量机SVM和最小二乘)`
2.代码调用过程
datastore函数建立了文件位置与变量间的联系,此外还可建立与单个文件,每一系列文件以及整个文件夹中的位置;
tall 为转换数据为tall ,从而解决内存不能容纳的中转数据
varnames = {'ArrTime','DepTime','ActualElapsedTime'};
ds = datastore('airlinesmall.csv','TreatAsMissing','NA',...
'SelectedVariableNames',varnames);
t = tall(ds);
daytime = t.ArrTime>t.DepTime;
Y = t.ActualElapsedTime(daytime); % Response data
X = t{daytime,{'DepTime' 'ArrTime'}}; % Predictor data
Z = zscore(X); % Standardize the data
[Mdl,FitInfo] = fitrkernel(Z,Y)
loss 损失函数可用于预测MSE的值
predict 利用训练好Mdl,传递信的预测变量,从而预测的响应变量的值
resume 通过Mdl与补充数据集,继续训练模型,提高模型的泛化能力。
3. 交叉验证核函数回归
load carbig;
X = [Acceleration,Cylinders,Displacement,Horsepower,Weight];
Y = MPG;
R = rmmissing([X Y]); % Data with missing entries removed
X = R(:,1:5);
Y = R(:,end);
Z = zscore(X);
Mdl = fitrkernel(Z,Y,'Kfold',5)
kfoldLoss(Mdl,'mode','individual')
4. 优化核函数
datasample为随机采用取样函数,其中
load carbig;
X = [Acceleration,Cylinders,Displacement,Horsepower,Weight];
Y = MPG;
R = rmmissing([X Y]); % Data with missing entries removed
X = R(:,1:5);
Y = R(:,end);
Z = zscore(X);
rng('default')
[Mdl,FitInfo,HyperparameterOptimizationResults] = fitrkernel(Z,Y,'OptimizeHyperparameters','auto',... 'HyperparameterOptimizationOptions',struct('AcquisitionFunctionName','expected-improvement-plus'))