主要内容

预测

类:特征选择回归

使用邻域成分分析(NCA)回归模型预测反应

语法

ypred=预测(mdl,X)

描述

ypred=预测(mdl,X)计算预测的响应值,伊普雷德,对应于X,使用该模型mdl.

输入参数

全部展开

用于回归的邻域成分分析模型,指定为特征选择回归对象。

预测器变量值,指定为N——- - - - - -P矩阵,N观察的次数是多少P为预测变量的数量。

数据类型:仅有一个的|双重的

输出参数

全部展开

预测响应值,指定为N1的向量,N为观察次数。

例子

全部展开

加载示例数据。

从UCI机器学习知识库[2]下载房屋数据[1]。数据集有506个观测数据。前13列包含预测器值,最后一列包含响应值。我们的目标是通过13个预测因子来预测波士顿郊区自住房屋的中位数价值。

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

装载(“住房数据”); X=外壳(:,1:13);y=外壳(:,结束);

使用第四个预测器作为分层分区的分组变量,将数据划分为训练集和测试集。这确保每个分区包含来自每个组的相似数量的观察值。

rng(1)%的再现性cvp=cvp(X(:,4),“坚持”56);Xtrain = X (cvp.training:);ytrain = y (cvp.training:);Xtest = X (cvp.test:);欧美= y (cvp.test:);

CVD分区将56个观察值随机分配到测试集中,将其余数据分配到训练集中。

使用默认设置进行特性选择

使用NCA模型进行回归进行特征选择。将预测值标准化。

nca = fsrnca (Xtrain ytrain,“标准化”1);

绘制特征权重。

图()(nca情节。FeatureWeights,“罗”)

不相关特征的权重预计将接近零。fsrnca将两个功能标识为不相关。

计算回归损失。

L =损失(nca, Xtest,欧美,“失去功能”,“疯了”)
L=2.5394

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

ypred =预测(nca, Xtest);图()图(ypred,欧美,“波”)包含(“预测反应”) ylabel (“实际响应”)

与实际值的完美匹配形成一条45度的直线。在这张图中,预测的和实际的响应值似乎分散在这条线周围。调谐 λ (正则化参数)值通常有助于提高性能。

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

调谐 λ 意味着找到 λ 将产生最小回归损失的值 λ 使用10倍交叉验证:

1.首先将数据划分为10个折叠。对于每个折叠,CVD分区将十分之一的数据指定为训练集,将十分之九的数据指定为测试集。

n=长度(y雨水);cvp=cvp分区(x雨水(:,4),“kfold”,10);numvalidsets=cvp.NumTestSets;

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

lambdavals = linspace(0、2、30)*性病(ytrain) / n;lossvals = 0(长度(lambdavals), numvalidsets);

2.为每个项目培训邻域成分分析(nca)模型 λ 值使用训练集在每个折叠。

3.使用所选特征拟合高斯过程回归(gpr)模型。接下来,使用gpr模型计算折叠中相应测试集的回归损失。记录损失值。

4.每次重复此步骤 λ 价值和每一次折叠。

对于i = 1:长度(lambdavals)对于k=1:numvalidsets X=Xtrain(cvp.training(k),:);y=ytrain(cvp.training(k),:);Xvalid=Xtrain(cvp.test(k),:);yvalid=ytrain(cvp.test(k),:);nca=fsrnca(X,y,“FitMethod”,“准确”,...“拉姆达”lambdavals(我),...“标准化”1.“失去功能”,“疯了”);%使用特征权重和相对权重选择特征%门槛。tol=1e-3;selidx=nca.FeatureWeights>tol*max(1,max(nca.FeatureWeights));%使用选定的特征拟合非ARD GPR模型。gpr=fitrgp(X(:,selidx),y,“标准化”1....“KernelFunction”,“平方势”,“冗长”损失(i,k)=损失(gpr,Xvalid(:,selidx),yvalid);终止终止

计算从每个折叠中获得的平均损失 λ 值。绘制平均损失与 λ 价值观

平均损失=平均值(损失2);图形地块(lambdavals、平均损失、,“ro - - - - - -”);xlabel(“拉姆达”);伊莱贝尔(‘损失(MSE)’);网格;

找到 λ 产生最小损失值的值。

[~, idx] = min (meanloss);bestlambda = lambdavals (idx)
最佳λ=0.0251

执行特征选择回归使用最好的 λ 值。标准化预测值。

nca2=fsrnca(Xtrain,ytrain,“标准化”1.“拉姆达”bestlambda,...“失去功能”,“疯了”);

绘制特征权重。

图()(nca情节。FeatureWeights,“罗”)

使用测试数据上的新nca模型计算损失,该模型不用于选择特征。

L2=损耗(nca2、Xtest、ytest、,“失去功能”,“疯了”)
L2=2.0560

调整正则化参数有助于识别相关特征并减少损失。

在测试集中绘制预测与实际响应值的对比图。

ypred=预测(nca2,Xtest);图形;绘图(ypred,ytest,“波”);

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

参考文献

[1] 《享乐价格与清洁空气需求》,《环境经济学与管理》1978年第5卷,第81-102页。

Lichman, m.m UCI Machine Learning Repository, Irvine, CA: University of California, School of Information and Computer Science, 2013。https://archive.ics.uci.edu/ml。

R2016b中引入