文档帮助中心文档
损失
预测
类:FeatureSelectionNCARegression
评估在测试数据上学习到的特征权重的准确性
呃=损失(mdl, X, Y)呃=损失(mdl, X, Y,名称,值)
犯错=损失(mdl,X,Y)返回作为精度度量的均方误差犯错,为模型mdl,中预测值X的响应值Y.
犯错=损失(mdl,X,Y)
犯错
mdl
X
Y
犯错=损失(mdl,X,Y,名称,值)返回精度的度量,犯错属性指定的附加选项名称,值对参数。
犯错=损失(mdl,X,Y,名称,值)
名称,值
全部展开
FeatureSelectionNCARegression
用于回归的邻域分量分析模型,指定为FeatureSelectionNCARegression对象。
预测器变量值,指定为n——- - - - - -p矩阵,n观察的次数是多少p是预测变量的个数。
数据类型:单|双
单
双
响应值,指定为长度的数值实向量n,在那里n是观察的次数。
指定可选的逗号分隔对名称,值参数。的名字参数名是和吗价值对应的值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家.
的名字
价值
Name1, Value1,…,的家
“LossFunction”
mse的
“疯了”
丢失函数类型,指定为逗号分隔的对组成的损失函数下面是其中一个。
的损失函数
例子:“LossFunction”、“mse的
“LossFunction”、“mse的
学习到的特征权重的精度度量越小越好,作为标量值返回。方法指定精度度量LossFunction名称-值对的论点。
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个观察值随机分配到一个测试集中,将剩余的数据随机分配到一个训练集中。
cvpartition
使用默认设置执行特征选择
使用NCA模型进行特征选择回归。标准化预测器的值。
nca = fsrnca (Xtrain ytrain,“标准化”1);
绘制特征权重。
图()(nca情节。FeatureWeights,“罗”)
不相关特征的权值趋于零。fsrnca确定两个不相关的特征。
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模型对测试数据计算损失,该模型不用于选择特征。
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。
FeatureSelectionNCARegression|fsrnca|预测|改装
改装
您有此示例的修改版本。您想用编辑打开这个示例吗?
你点击了一个与MATLAB命令相对应的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站,在可用的地方获得翻译的内容,并看到当地的活动和提供。根据您的地理位置,我们建议您选择:.
你也可以从以下列表中选择一个网站:
请选择中国网站(中文或英文),以获得最佳网站性能。MathWorks的其他国家站点并没有针对您所在位置的访问进行优化。
与当地办事处联系