主要内容

损失

类:FeatureSelectionNCARegression

评估在测试数据上学习到的特征权重的准确性

语法

呃=损失(mdl, X, Y)
呃=损失(mdl, X, Y,名称,值)

描述

犯错=损失(mdlXY返回作为精度度量的均方误差犯错,为模型mdl,中预测值X的响应值Y

犯错=损失(mdlXY名称,值返回精度的度量,犯错属性指定的附加选项名称,值对参数。

输入参数

全部展开

用于回归的邻域分量分析模型,指定为FeatureSelectionNCARegression对象。

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

数据类型:|

响应值,指定为长度的数值实向量n,在那里n是观察的次数。

数据类型:|

名称-值对的观点

指定可选的逗号分隔对名称,值参数。的名字参数名是和吗价值对应的值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

丢失函数类型,指定为逗号分隔的对组成的损失函数下面是其中一个。

损失函数类型 描述
mse的 均方误差
“疯了” 平均绝对偏差

例子:“LossFunction”、“mse的

输出参数

全部展开

学习到的特征权重的精度度量越小越好,作为标量值返回。方法指定精度度量LossFunction名称-值对的论点。

例子

全部展开

加载样例数据。

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

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

负载(“housing.data”);X =住房(:,1:13);y =住房(:,结束);

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

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

cvpartition将56个观察值随机分配到一个测试集中,将剩余的数据随机分配到一个训练集中。

使用默认设置执行特征选择

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

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

绘制特征权重。

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

不相关特征的权值趋于零。fsrnca确定两个不相关的特征。

计算回归损失。

L =损失(nca, Xtest,欧美,“LossFunction”“疯了”
L = 2.5394

计算测试集的预测响应值,并将它们与实际响应进行绘图。

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

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

使用10次交叉验证调优正则化参数

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

1.首先将数据分成10份。对于每一个褶皱,cvpartition将1/10的数据作为训练集,将9/10的数据作为测试集。

n =长度(ytrain);本量利= cvpartition (Xtrain (:, 4),“kfold”10);numvalidsets = cvp.NumTestSets;

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

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

2.训练邻域成分分析(nca)模型 λ 值使用每个折叠中的训练集。

3.利用所选特征拟合高斯过程回归模型。接下来,利用gpr模型计算fold中对应测试集的回归损失。记录损失价值。

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“LossFunction”“疯了”);%使用特征权重和一个相对值选择特征%的阈值。托尔= 1 e - 3;selidx = nca。FeatureWeights > tol *马克斯(max (nca.FeatureWeights));使用选定的特征拟合非ard GPR模型。探地雷达= fitrgp (X (:, selidx), y,“标准化”, 1...“KernelFunction”“squaredexponential”“详细”, 0);lossvals (i (k) =损失(gpr, Xvalid (:, selidx) yvalid);结束结束

计算每个折痕的平均损失 λ 价值。画出平均损失与 λ 值。

meanloss =意味着(lossvals, 2);图;情节(lambdavals meanloss,“ro - - - - - -”);包含(“λ”);ylabel (“损失(MSE)”);网格

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

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

使用最佳方法进行回归特性选择 λ 价值。标准化预测器的值。

nca2 = fsrnca (Xtrain ytrain,“标准化”, 1“λ”bestlambda,...“LossFunction”“疯了”);

绘制特征权重。

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

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

L2 =损失(nca2 Xtest,欧美,“LossFunction”“疯了”
L2 = 2.0560

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

在测试集中绘制预测响应值与实际响应值之间的关系。

ypred =预测(nca2 Xtest);图;情节(ypred,欧美,“波”);

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

参考文献

哈里森,d,和d, l,鲁宾菲尔德。“享乐的价格和对清洁空气的需求。”j .包围。经济学和管理。第5卷,1978,第81-102页。

[2] Lichman, M. UCI机器学习库,Irvine, CA:加州大学,信息与计算机科学学院,2013。https://archive.ics.uci.edu/ml。

介绍了R2016b