主要内容

损失

类:FeatureSelectionNCARegression

评估学习精度特性测试数据的权重

语法

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

描述

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

犯错=损失(mdl,X,Y,名称,值)返回的测量精度,犯错指定的附加选项名称,值对参数。

输入参数

全部展开

社区组件为回归分析模型,指定为一个FeatureSelectionNCARegression对象。

预测变量值,指定为一个n——- - - - - -p矩阵,n是观察和的数量吗p是预测变量的数量。

数据类型:|

响应值,指定为一个数字的向量长度n,在那里n是观测的数量。

数据类型:|

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

损失函数类型,指定为逗号分隔两人组成的的损失函数和一个以下。

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

例子:“LossFunction”、“mse的

输出参数

全部展开

Smaller-the-better精度测量学特性的权重,作为标量值返回。您可以指定精度的测量使用LossFunction名称-值对的论点。

例子

全部展开

加载示例数据。

下载楼市数据[1],从UCI机器学习库[2]。数据集有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。首先将数据分割成十倍。对于每一个褶皱,cvpartition分配为数据作为训练集,和9/10th数据作为测试集。

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)模型使用选定的功能。其次,计算相应的测试集的回归损失在模型使用探地雷达的褶皱。记录损失值。

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));%适合non-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,欧美,“波”);

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

引用

[1]哈里森,d和D.L.,Rubinfeld解释道。“享乐价格和清洁空气的需求。”J. Environ. Economics & Management. Vol.5, 1978, pp. 81-102.

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

版本历史

介绍了R2016b