主要内容

失利

クラス:功能选择性攻击

学习し量のの精度をデータ评価评価评価

构文

err =损失(MDL,X,Y)
err =损失(MDL,X,Y,名称,值)

说明

=损失(MDL,,,,X,,,,yは,モデルMDLX内のの値,およびy内の値精度のとして平均二乘误差をに返します。

=损失(MDL,,,,X,,,,y,,,,名称,价值は,名称,价值ペア引数され追加オプションをし,,精度の尺度を返します。

入力引数

すべて展开する

回帰用近傍成分分析。。功能选择性攻击オブジェクトを指定ます。

予测子。。。行列。。。。。。はは値のの个数个数,,,,は

データ::单身的|双倍的

応答さささ実数ベクトル。。。。は観测値の个数です。。

データ::单身的|双倍的

名前と値引数

オプションの引数ペアをname1 = value1,...,namen = valuenとして指定ます。ここで姓名は引数名,价值は対応です名前と値のの引数の后ろにする必要必要がありますますが,ペアペアののの顺序

r2021aよりで,名前値それぞれコンマ使って,,姓名を引用で囲みます。

损失关数の。“损失功能”と次か构成されるコンマのペアとして指定し。

损失关数のタイプ 说明
'MSE' 平均二乘误差
'疯狂的' 平均绝対偏差

例:“损失功能”,“ MSE”

出力引数

すべて展开する

学习し量重みに対する,小さい优秀するの尺度。スカラースカラー値値としてとして返されます。精度精度のの尺度尺度尺度はは损失功能を使用て指定でき。。

すべて展开する

标本データをます。

住宅[1]をUCI机器学习存储库[2]からダウンロードます。このににには,,,,,,个个の観测値値が含ま含まれていいますますののののののの列にはがれていますますは,郊外ににある持ち持ち持ち家家ののの数数中央中央値値値値をををををををををををを个个个个个

データを応答ベクトル予测子行列をし。。。

加载('housing.data');x = housing(:,1:13);y = housing(:,end);

4番目としてとしてとしてとしてとして番目の予测子使用,学习学习セットセットとと検定検定検定セットにに分割します。。これこれ,,各グループからからから量されます。

RNG(1)%可再现性cvp = cvpartition(x(:,4),'坚持',56);Xtrain = x(cvp.training,:);ytrain = y(cvp.training,:);xtest = x(cvp.test,:);ytest = y(cvp.test,:);

CVPARTITION56个个値をセット,ののを学习セットに无作为无作为割り当て割り当て。。

既定设定使用による特徴実行実行

ncaモデルモデル使用て特徴をしし。予测子の値値を标准标准化化

NCA = FSRNCA(Xtrain,Ytrain,“标准化”,1);

特徴量重みをプロット。。

fige()图(nca.featureWeaights,'ro'

无关系な量はゼロに近くと考えられます。FSRNCA2つのつの特徴がであるとしています。

回帰损失计算します。

l =损失(nca,xtest,ytest,“损失功能”,,,,'疯狂的'
L = 2.5394

検定セットされる値を计算,の応答に対してプロットします。

ypred =预测(NCA,XTEST);图()图(ypred,ytest,'bo')xlabel(“预测回应”)ylabel(“实际响应”

45°の,に完全,,,の直线なり。。このこのプロットプロットででではは,,さされれたた応答応答値値と実际実际実际ののの応答応答応答応答値直线のののののののの λ (正则パラメーター)の値调整する性能改善に役立ち。。

10分割交差使用による化パラメーター调整调整

λ の调整は回帰损失が最小なるなる λ の値求めるを意味ます10分割分割交差ををててて λ を调整手顺次のになります。

1. 10个を个の分割分割ます。分割について,,CVPARTITION1/10ををセット9/10をををを検定として割り当て。。。

n =长度(ytrain);cvp = cvpartition(xtrain(:,4),,'kfold',10);numValidsets = cvp.numtestsets;

探索用の λ の値ます。値を格纳配列作成作成ますます。

lambdavals = linspace(0,2,30)*std(ytrain)/n;lossvals =零(长度(lambdavals),numValidsets);

2.各分割学习を使用し,, λ の(NCA)モデルモデルモデルにをさせ。。

3. 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',,,,'精确的',,,,...'lambda',Lambdavals(i),...“标准化”,1,“损失功能”,,,,'疯狂的');%选择功能权重和亲戚的功能% 临界点。tol = 1e-3;selidx = nca.featureWeaights> tol*max(1,max(nca.featureWeaights));%使用选定的功能拟合非ARD GPR模型。gpr = fitrgp(x(:,selidx),y,“标准化”,1,...'kernelfunction',,,,“平方指数”,,,,“冗长”,0);LossVals(I,K)=损失(GPR,XVALID(:,SELIDX),YVALID);结尾结尾

λ の各値分割得られる平均损失します。平均とと λ の値プロットします。

卑鄙的=平均值(损失价为2);数字;情节(Lambdavals,卑鄙的,'ro-');Xlabel('lambda');ylabel(“损失(MSE)”);网格;

损失値がになる λ の値をます。

[〜,idx] = min(elyloss);bestlambda = lambdavals(idx)
BestLambda = 0.0251

最良の λ 値をて回帰の选択をします予测子の値をを标准化化。。。

NCA2 = FSRNCA(Xtrain,Ytrain,“标准化”,1,'lambda',Bestlambda,...“损失功能”,,,,'疯狂的');

特徴量重みをプロット。。

fige()图(nca.featureWeaights,'ro'

特徴量のはされなかっ検定データに対して新しい新しい新しいモデルモデルモデル使用しして,,损失ます

l2 =损失(nca2,xtest,ytest,“损失功能”,,,,'疯狂的'
L2 = 2.0560

正则化调整は关连ある特徴を识别て损失を减らす减らすためにに。。。

予测さ応答値検定セット内実际応答値をプロットします。

ypred =预测(NCA2,XTEST);数字;情节(ypred,ytest,'bo');

予测さ応答は,実际の十分近いように见え。

参考文献

[1] Harrison,D。和D.L.,Rubinfeld。“享乐价格和对清洁空气的需求。”J. Environ。经济与管理。第5卷,1978年,第81-102页。

[2] Lichman,M。UCI机器学习存储库,加利福尼亚州欧文:加利福尼亚大学,信息与计算机科学学院,2013年。https://archive.ics.uci.uci.edu/ml

バージョン履歴

R2016Bで导入