高斯核回归模型回归损失
训练高斯核回归模型,一个高大的阵列,然后计算resubstitution均方误差和ε-己不敏感的错误。
当您在高数组上执行计算时,MATLAB®使用并行池(如果您有并行计算工具箱™,则默认)或本地MATLAB会话。如果您希望在拥有并行计算工具箱时使用本地MATLAB会话运行示例,则可以使用mapreducer
函数。
创建一个使用数据引用文件夹位置的数据存储。数据可以包含在单个文件、文件集合或整个文件夹中。治疗'NA'
值丢失的数据,以便数据存储
它们替换南
值。选择的变量使用的一个子集。在数据存储之上创建一个高台。
varnames = {'ArrTime',“DepTime”,“ActualElapsedTime”};DS =数据存储区('airlinesmall.csv',“TreatAsMissing”,'NA',...“SelectedVariableNames”,varnames);t =高(ds);
使用“本地”配置文件启动并行池(parpool)…连接到并行池(worker数量:4)。
指定DepTime
和ArrTime
作为预测变量(X
)和ActualElapsedTime
作为响应变量(Y
)。选择其中的意见ArrTime
是晚于DepTime
。
白天= t.ArrTime > t.DepTime;Y = t.ActualElapsedTime(白天);%响应数据X = {吨白天,{“DepTime”'ArrTime'}};%的预测数据
标准化预测变量。
Z = zscore(X);%标准化数据
用标准化的预测因子训练一个默认的高斯核回归模型。集'冗长',0
抑制诊断消息。
[铜牌,FitInfo] = fitrkernel(Z,Y,“放牧”,0)
MDL = RegressionKernel PredictorNames:{X1 '×2'} ResponseName: 'Y' 学习者: 'SVM' NumExpansionDimensions:64 KernelScale:1 LAMBDA:8.5385e-06 BoxConstraint:1的Epsilon:5.9303属性,方法
FitInfo =同场的结构:求算器:“lbgf -tall”损耗函数:“epsilon隆不敏感”Lambda: 8.5385e-06 betatance: 1.0000e-03梯度公差:1.0000e-05客观评价:30.7814梯度大小:0.0191相对hangeinbeta: 0.0228 FitTime: 124.6182历史:[]
MDL
是一个训练有素的RegressionKernel
模型和结构数组FitInfo
包含优化的详细信息。
通过估计重新替换的均值平方误差和爱扑塞隆不敏感误差,确定训练的模型如何很好地推广到新的预测值。
lossMSE =损失(Mdl, Z, Y)%重新替换均方误差
lossMSE = MxNx ......高大的阵列?吗?吗?...?吗?吗?...?吗?吗?...::::::
lossEI =损失(MDL,Z,Y,'LossFun',“epsiloninsensitive”)%Resubstitution的ε-不敏感的错误
lossEI = MxNx……高大的数组?吗?吗?...?吗?吗?...?吗?吗? ... : : : : : :
评估高大阵列和使用带来的结果到内存收集
。
[lossMSE, lossEI] =收集(lossMSE lossEI)
评估使用并行池“本地”高表达: - 的1遍1:在2.7秒评价完成在4秒完成
lossMSE = 2.8851e + 03
lossEI = 28.0050
为高斯核回归模型指定一个自定义回归损失(Huber损失)。
加载carbig
数据集。
负载carbig
指定预测变量(X
)和响应变量(Y
)。
X =[重量、气缸、马力,Model_Year];Y = MPG;
删除行X
和Y
其中任意一个数组南
值。删除与行南
在将数据传递给fitrkernel
可加快训练速度和减少内存使用。
缺失([X Y]);X = R (:, 1:4);Y = R(:,结束);
观测作为保留样本的储备10%。提取分区定义的训练和测试指标。
RNG(10)%用于重现N =长度(Y);本量利= cvpartition (N,'坚持',0.1);idxTrn =培训(cvp);训练集索引%idxTest =测试(cvp);%测试集指标
标准化的训练数据和训练回归模型的内核。
Xtrain = X(idxTrn,:);Ytrain = Y(idxTrn);[Ztrain,tr_mu,tr_sigma] = zscore(Xtrain);%标准化训练数据tr_sigma(tr_sigma == 0)= 1;MDL = fitrkernel(Ztrain,Ytrain)
Mdl = RegressionKernel ResponseName: 'Y' Learner: 'svm' numexpandimensions: 128 KernelScale: 1 Lambda: 0.0028 BoxConstraint: 1 Epsilon: 0.8617
MDL
是RegressionKernel
模型。
创建测量胡伯损失匿名函数 , 那是,
哪里
是残余观察j。自定义损失函数必须写在一个特定的形式。有关编写自定义的损失函数的规则,请参见'LossFun'
名称-值对的论点。
huberloss = @(Y,Yhat,W)和(W。*((0.5 *(ABS(Y-Yhat)<= 1)。*(Y-Yhat)。^ 2)+...((ABS(Y-Yhat)> 1)* ABS(Y-Yhat)-0.5。)))/总和(W);
估计使用胡伯损失函数训练集回归损失。
eTrain =损失(MDL,Ztrain,Ytrain,'LossFun',huberloss)
eTrain = 1.7210
利用训练数据列的相同平均值和标准偏差标准化的测试数据。估计使用胡伯损失函数测试装置回归的损失。
XTEST = X(idxTest,:);ZTEST =(XTEST-tr_mu)./ tr_sigma;%标准化测试数据Ytest = Y(idxTest);Etest法=损失(MDL,ZTEST,Ytest,'LossFun',huberloss)
Etest法= 1.3062
MDL
- - - - - -内核回归模型RegressionKernel
模型对象核回归模型,指定为RegressionKernel
模型对象。您可以创建一个RegressionKernel
模型对象使用fitrkernel
。
X
- - - - - -预测数据预测器数据,指定为n-通过-p数字矩阵,其中n是观测值的数量和p是预测的数目。p必须等于用于列车的预测变量数MDL
。
数据类型:单
|双
Y
- - - - - -响应数据响应数据,指定为n维数值向量。的长度Y
和观察的数量X
必须是相等的。
数据类型:单
|双
的可选逗号分隔对名称,值
参数。名称
参数名和值
是对应的值。名称
必须出现引号内。您可以按照任何顺序指定多个名称和值对参数名1,值1,...,NameN,值N
。
L =损失(MDL,X,Y, 'LossFun', 'epsiloninsensitive', '权重',权重)
返回使用的ε-不敏感损失函数的加权回归损失。
'LossFun'
- - - - - -损失函数'MSE'
(默认)|“epsiloninsensitive”
|函数处理损耗函数,指定为逗号分隔的一对组成的'LossFun'
和一个内置的损失函数名或函数句柄。
下表列出了可用的损失函数。使用其对应的字符向量或字符串标量指定一个。同样,在表格中,
x是从观察(行矢量)p预测变量。
是一个观测(行矢量)的用于特征扩展的变换。T(x)地图x在 到一个高维空间( )。
β是的向量米系数。
b是标量偏差。
值 | 描述 |
---|---|
“epsiloninsensitive” |
小量不敏感损失: |
'MSE' |
均方误差: |
“epsiloninsensitive”
适用于只是SVM学习者。
通过使用功能手柄符号指定自己的函数。
让n
为观察的次数X
。你的功能必须有这个签名:
lossvalue =lossfun
(Y,Yhat,W)
使用以下命令指定您的函数'LossFun',@
。lossfun
数据类型:烧焦
|串
|function_handle
加权均方误差的计算方法如下:
地点:
n是观测值的数量。
xj是个j观测(预测数据行)。
yj是所观察到的响应xj。
f(xj)是高斯内核回归模型的响应预测MDL
至xj。
w是观察权重向量。
的每个观测权重w等于(n,1)/n
默认情况下。属性可以为观测权值指定不同的值“重量”
名称-值对的论点。失利
规格化权重
使和等于1。
爱扑塞隆不敏感的损失函数忽略了在函数值的距离以内的误差。功能的正式描述为:
平均的ε-不敏感损失的计算方法如下:
地点:
n是观测值的数量。
xj是个j观测(预测数据行)。
yj是所观察到的响应xj。
f(xj)是高斯内核回归模型的响应预测MDL
至xj。
w是观察权重向量。
的每个观测权重w等于(n,1)/n
默认情况下。属性可以为观测权值指定不同的值“重量”
名称-值对的论点。失利
规格化权重
使和等于1。
此功能完全支持高大的阵列。万博1manbetx您可以使用这个函数在内存或高层数据上训练的模型。
欲了解更多信息,请参阅高大的数组(MATLAB)。
您点击了对应于以下MATLAB命令的链接:
在MATLAB命令窗口中输入它运行的命令。Web浏览器不支持MATLAB的命令。万博1manbetx
您还可以选择从下面的列表中的网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。