主要内容

预测

班级:PeazereSentionncarebortion

使用邻域分量分析(NCA)回归模型的响应

句法

ypred = predict(mdl,x)

描述

ypred = predict(mdl,x)计算预测的响应值,ypred.,对应于行的行X,使用模型MDL.

输入参数

展开全部

回归的邻域组件分析模型,指定为aPeazereSentionncarebortion目的。

预测值变量值,指定为一个N-经过-P.矩阵,其中N是观察人数和P.是预测变量的数量。

数据类型:单身的|双倍的

输出参数

展开全部

预测响应值,指定为一个N-1 vector,在哪里N是观察人数。

例子

展开全部

加载样本数据。

从UCI机器学习存储库[2]从UCI机器学习存储库下载“住房数据”[1]。数据集有506个观察结果。第一个13列包含预测值值,最后一列包含响应值。目标是预测郊区波士顿的所有者被占领房屋的中位数,作为13个预测因子的函数。

加载数据并定义响应矢量和预测器矩阵。

加载('housent.data');x =住房(:,1:13);Y =住房(:,结束);

将数据除以培训和测试集使用第4个预测器作为分层分区的分组变量。这确保了每个分区包括来自每组的类似的观察量。

RNG(1)重复性的%cvp = cvpartition(x(:,4),'坚持',56);xtrain = x(cvp.training,:);ytrain = y(cvp.training,:);xtest = x(cvp.test,:);ytest = y(cvp.test,:);

CVPartition.随机分配56个观察到测试集和其余数据到培训集中。

使用默认设置执行功能选择

使用NCA模型进行回归执行功能选择。标准化预测值值。

NCA = FSRNCA(XTrain,Ytrain,'标准化',1);

绘制特征权重。

图()绘图(nca.featurewuights,'ro'

预期无关的特征的重量将接近零。FSRNCA.将两个功能识别为无关紧要。

计算回归丢失。

l =损失(NCA,XTEST,YTEST,'损失''疯狂的'
L = 2.5394.

计算测试集的预测响应值,并绘制它们与实际响应。

Ypred =预测(NCA,XTEST);图()绘图(Ypred,Yest,'博')xlabel('预测回应')ylabel('实际反应'

完美的适合与实际值形成45度直线。在此绘图中,预测和实际响应值似乎分散在这条线上。调整 λ. (正则化参数)值通常有助于提高性能。

使用10倍交叉验证调整正则化参数

调整 λ. 意味着找到 λ. 值将产生最小回归损耗。以下是调整的步骤 λ. 使用10倍交叉验证:

1.首先将数据分为10倍。每折,CVPartition.将数据作为培训集分配1/10,以及作为测试集的数据9/10。

n =长度(YTrain);cvp = cvpartition(xtrain(:,4),'kfold',10);numvalidsets = cvp.numtestsets;

分配 λ. 搜索的值。创建一个数组以存储丢失值。

lambdavals = linspace(0,2,30)* std(ytrain)/ n;lockvals = zeros(长度(lambdavals),numvalidsets);

2.培训各个邻域分量分析(NCA)模型 λ. 使用每个折叠中设置的训练的价值。

3.使用所选功能拟合高斯进程回归(GPR)模型。接下来,使用GPR模型计算折叠中的相应测试的回归损耗。记录损失值。

4.对每个人重复这个 λ. 价值和每个折叠。

为了i = 1:长度(lambdavals)为了k = 1:numvalidsets x = xtrain(cvp.tring(k),:);y = ytrain(cvp.tring(k),:);xvalid = xtrain(cvp.test(k),:);yvalid = ytrain(cvp.test(k),:);nca = fsrnca(x,y,'fitmethod''精确的'......'lambda',lambdavals(i),......'标准化',1,'损失''疯狂的');%选择特征权重和相对的特征% 临界点。tol = 1e-3;selidx = nca.featureweights> tol * max(1,max(nca.featuress));%使用所选功能拟合非ARD GPR模型。gpr = fitrgp(x(:,selidx),y,'标准化',1,......'骨箱''squaredExponential''verbose',0);损失(i,k)=损失(gpr,xvalid(:,selidx),yvalid);结尾结尾

计算每个折叠的平均损耗 λ. 价值。绘制平均损失与 λ. 价值观。

Meanloss =卑鄙(损失,2);数字;情节(Lambdavals,Meanloss,'ro-');Xlabel('lambda');ylabel('损失(MSE)');网格;

找出 λ. 产生最小损耗值的值。

[〜,Idx] = min(meanloss);Bestlambda = Lambdavals(IDX)
Bestlambda = 0.0251.

使用最好的回归执行功能选择 λ. 价值。标准化预测值值。

nca2 = fsrnca(Xtrain,Ytrain,'标准化',1,'lambda',bestlambda,......'损失''疯狂的');

绘制特征权重。

图()绘图(nca.featurewuights,'ro'

使用新的NCA模型在测试数据上计算丢失,该模型不用于选择要素。

L2 =损耗(NCA2,XTEST,YEST,'损失''疯狂的'
l2 = 2.0560.

调整正则化参数有助于识别相关功能并降低损耗。

绘制测试集中的预测与实际响应值。

Ypred =预测(NCA2,XTEST);数字;情节(Ypred,Ytest,'博');

预测的响应值似乎也更接近实际值。

参考

[1]哈里森,D。和D.L.,Rubinfeld。“惠丹价格和清洁空气的需求。”J. Environ。经济与管理。Vol.5,1978,PP。81-102。

[2] Lichman,M. UCI机器学习存储库,Irvine,CA:加州大学,信息学院,2013年信息学院。Https://Archive.ics.uci.edu/ml。

介绍在R2016B.