は,予測子データB
=套索(<一个href="//www.tatmou.com/jp/help/stats/#d123e494481" class="intrnllnk">X,<一个href="//www.tatmou.com/jp/help/stats/#d123e494505" class="intrnllnk">
y)
λ内の特定の正則化係数に対応します。既定では,
は1つ以上の名前と値のペアの引数で指定された追加オプションを使用して,正則化された回帰をあてはめます。たとえばB
=套索(<一个href="//www.tatmou.com/jp/help/stats/#d123e494481" class="intrnllnk">X,<一个href="//www.tatmou.com/jp/help/stats/#d123e494505" class="intrnllnk">
y,<一个href="//www.tatmou.com/jp/help/stats/#namevaluepairarguments" class="intrnllnk">
名称,值)
[<一个href="//www.tatmou.com/jp/help/stats/#d123e495487" class="intrnllnk">
は,前の構文の入力引数のいずれかを使用して,モデルのあてはめに関する情報が格納されている構造体B,<一个href="//www.tatmou.com/jp/help/stats/#d123e495536" class="intrnllnk">
FitInfo) =套索(
予測子変数を
RNG('默认' )重复性的% X =兰德(100 1);y = 2*X + randn(100,1)/10;
正則化の値を指定し,切片項のない回帰モデルの係数を求めます。
λ= 1 e 03;B =套索(X, y,“λ” λ,“拦截” 假)
警告:当“拦截”值为false时,“标准化”值设置为FALSE。
B = 1.9825.
予測値(線)に対して実数値(点)をプロットします。
散射(X, y)在 x = 0:0.1:1;绘图(x,x * b)持有从
冗長な予測子があるデータセットを作成し,交差検証された
One hundred.年個の5次元正規変数が含まれている行列
rng默认的 重复性的%X = randn (100 5);权重=[0;2。0;3。0];%只有两个非零系数 Y = x *重量+ RANDN(100,1)* 0.1;%小的添加噪声
予測子変数にラベルを付け,10分割交差検証を使用して,套索近似を作成します。
[b,fitinfo] =套索(x,y,“简历” 10“PredictorNames” ,{'x1' ,'x2' ,'x3' ,'x4' ,'x5' });
最小の交差検証平均二乗誤差(MSE)に対応するモデル内の変数を表示します。
idxlambdaminmse = fitinfo.indexminmse;minmsemodelpredictors = fitinfo.predictornames(b(:,idxlambdaminmse)〜= 0)
minMSEModelPredictors =1 x2单元格{“x2”}{“x4”}
最小のMSEから1標準誤差以内にある,最もスパースなモデル内の変数を表示します。
idxLambda1SE = FitInfo.Index1SE;sparsemodelpredictors = fitinfo.predictornames(b(:,idxlambda1se)〜= 0)
sparseModelPredictors =1 x2单元格{“x2”}{“x4”}
この例では,
さまざまな正式化レベル交差検证误差误差を视覚にますます调べ调べ
標本データを読み込みます。
负载乙炔
定数項を持たない,交互作用がある計画行列を作成します。
X = [x1 x2 x3];D = x2fx (X,“互动” );D (: 1) = [];无常数项
10分分交差交差検证使使て套装近似を作品成し。结果结果をプロットできるよう,出力
rng默认的 重复性的%[B, FitInfo] =套索(D, y,“简历” 10);
交差検証した近似をプロットします。
lassoPlot (B FitInfo“PlotType” ,“简历” );传奇(“显示” )%显示传奇
緑の円と点線は,交差検証誤差が最小になる
套索と弹性净法を使用して,学生の試験の点数を予測します。
负载examgrades x =等级(:,1:4);Y =等级(:,5);
データを学習セットと検定セットに分割します。
n =长度(y);c = cvpartition(n,“坚持” , 0.3);idxTrain =培训(c, 1);idxTest = ~ idxTrain;XTrain = X (idxTrain:);yTrain = y (idxTrain);XTest = X (idxTest:);欧美= y (idxTest);
10分割交差検証と
[B, FitInfo] =套索(XTrain yTrain,“α” , 0.75,“简历” 10);idxLambda1SE = FitInfo.Index1SE;系数= B (:, idxLambda1SE);coef0 = FitInfo.Intercept (idxLambda1SE);
検定データについて試験の点数を予測します。基準線を使用して,予測された値を実際の試験の成績と比較します。
yhat = xtest * coof + cof0;抓住在 yhat散射(欧美)情节(欧美,欧美)包含(实际考试成绩的 ) ylabel (“预测考试成绩” )举行从
[1] Tibshirani, R.“通过套索的回归收缩和选择”。皇家统计学会杂志。系列B, Vol. 58, No. 1, 1996, pp. 267-288。
[2]邹,H.和Hastie。“通过弹性网进行正则化和可变选择。”皇家统计学会杂志。B,Vol系列。67,2,2,2,2,2,2,2,9120。301-320。
[3]弗里德曼,J.,R. Tibshirani和T. Hastie。“通过坐标血统的广义线性模型的正则化路径。”统计软件杂志。卷。33,2010年第1号。<一个href="https://www.jstatsoft.org/v33/i01" target="_blank">https://www.jstatsoft.org/v33/i01
Hastie, T., R. Tibshirani, J. Friedman。统计学习的要素,第二版。纽约:施普林格,2008。
[5] Boyd, S.,《通过交替方向乘法器的分布式优化和统计学习》。机器学习的基础和趋势。第3卷,第1期,2010年,1 - 122页。
詳細は,<一个href="//www.tatmou.com/jp/help/matlab/tall-arrays.html" class="a">高配列一个>を参照してください。
並列実行するには,この関数を呼び出すときに名前と値の引数
たとえばgydF4y2Ba,次のようにます。
並列計算の詳細については,<一个href="//www.tatmou.com/jp/help/parallel-computing/run-matlab-functions-with-automatic-parallel-support.html" class="a">自動並列サポートを使用したMATLAB関数の実行一个>(并行计算工具箱)を参照してください。