损失
类:FeatureSelectionNCARegression
评估学习精度特性测试数据的权重
语法
呃=损失(mdl, X, Y)
呃=损失(mdl, X, Y,名称,值)
输入参数
mdl
- - - - - -社区组件为回归分析模型
FeatureSelectionNCARegression
对象
社区组件为回归分析模型,指定为一个FeatureSelectionNCARegression
对象。
X
- - - - - -预测变量值
n——- - - - - -p矩阵
预测变量值,指定为一个n——- - - - - -p矩阵,n是观察和的数量吗p是预测变量的数量。
数据类型:单
|双
Y
- - - - - -响应值
数字的向量长度n
响应值,指定为一个数字的向量长度n,在那里n是观测的数量。
数据类型:单
|双
名称-值参数
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
R2021a之前,用逗号来分隔每一个名称和值,并附上的名字
在报价。
LossFunction
- - - - - -损失函数类型
mse的
(默认)|“疯了”
损失函数类型,指定为逗号分隔两人组成的的损失函数
和一个以下。
损失函数类型 | 描述 |
---|---|
mse的 |
均方误差 |
“疯了” |
平均绝对偏差 |
例子:“LossFunction”、“mse的
输出参数
犯错
重量- Smaller-the-better精度测量学特性
标量值
Smaller-the-better精度测量学特性的权重,作为标量值返回。您可以指定精度的测量使用LossFunction
名称-值对的论点。
例子
曲调NCA模型回归使用损失
和预测
加载示例数据。
下载楼市数据[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
Beispiel offnen
您有一张这本Beispiels geanderte版本。您这本Beispiel麻省理工学院古老Anderungen offnen吗?
MATLAB-Befehl
您有窗户的链接geklickt,汪汪汪der diesem MATLAB-Befehl entspricht:
在das MATLAB-Befehlsfenster Fuhren您窝Befehl军队Eingabe来自。浏览器unterstutzen MATLAB-Befehle。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。