主要内容

selectModels

类:RegressionLinear

选择拟合的正则化线性回归模型

描述

例子

SubMdl= selectModels (Mdlidx从一组线性回归模型中返回经过训练的线性回归模型的子集(Mdl)训练使用各种正规化力量。指数idx对应于中的正则化强度Mdl。lambda,并指定返回哪些模型。

输入参数

全部展开

使用各种正则化强度训练的线性回归模型,指定为RegressionLinear模型对象。您可以创建RegressionLinear模型对象使用fitrlinear

虽然Mdl一个模型对象,如果元素个数(Mdl.Lambda)l≥2,然后你可以想Mdl作为l训练模型。

与正则化强度对应的索引,指定为正整数的数字向量。的值idx必须在区间[1,l),l元素个数(Mdl.Lambda)

数据类型:|

输出参数

全部展开

使用各种正则化强度训练的线性回归模型的子集,返回为RegressionLinear模型对象。

例子

全部展开

从这个模型模拟10000个观察结果

y x 1 0 0 + 2 x 2 0 0 + e

  • X x 1 x 1 0 0 0 是一个10000 × 1000稀疏矩阵,含有10%的非零标准正规元素。

  • e为随机正态误差,均值为0,标准差为0.3。

rng (1)%的再现性n = 1 e4;d = 1 e3;新西兰= 0.1;X = sprandn (n, d,新西兰);Y = X(:,100) + 2*X(:,200) + 0.3*randn(n,1);

创建一组15个对数间隔的正则化强度 1 0 - 4 通过 1 0 - 1

λ= logspace(4 1、15);

保留30%的数据进行测试。识别测试样本指标。

本量利= cvpartition(元素个数(Y),“坚持”, 0.30);idxTest =测试(cvp);

训练一个线性回归模型使用套索惩罚的力量λ.指定正则化强度,使用SpaRSA优化目标函数,进行数据分区。要提高执行速度,可以调换预测器数据并指定观察结果在列中。

X = X ';CVMdl = fitrlinear (X, Y,“ObservationsIn”“列”“λ”λ,...“规划求解”“sparsa”“正规化”“套索”“CVPartition”、本量利);Mdl1 = CVMdl.Trained {1};元素个数(Mdl1.Lambda)
ans = 15

Mdl1是一个RegressionLinear模型。因为λ你能想到一个15维向量的正规化强度吗Mdl1作为15个训练模型,每个正规化强度。

估计每个正则化模型的测试样本均方误差。

mse =损失(Mdl1 X (:, idxTest), Y (idxTest),“ObservationsIn”“列”);

更高的值λ导致预测变量的稀疏性,这是回归模型的一个很好的品质。使用整个数据集和前面使用的所有选项(除了数据分区规范)重新训练模型。确定每个模型的非零系数的数目。

Mdl = fitrlinear (X, Y,“ObservationsIn”“列”“λ”λ,...“规划求解”“sparsa”“正规化”“套索”);numNZCoeff = (Mdl.Beta ~ = 0)之和;

在同一图中,绘制每个正则化强度的非零系数的MSE和频率。在对数尺度上绘制所有变量。

图;[h, hL1, hL2] = plotyy (log10(λ)log10 (mse),...log10(λ)log10 (numNZCoeff));hL1。标志=“o”;hL2。标志=“o”;ylabel (h (1),“log_ {10} MSE的) ylabel (h (2),“log_ {10} nonzero-coefficient频率”)包含(“log_{10}λ的)举行

图中包含2个轴对象。axis对象1包含一个类型为line的对象。axis对象2包含一个类型为line的对象。

选择索引或索引λ这平衡了最小的分类误差和预测变量的稀疏性(例如,λ(11)).

idx = 11;idx MdlFinal = selectModels (Mdl);

MdlFinal是一个培训RegressionLinear模型对象使用λ(11)作为正规化的力量。

提示

建立多个预测线性回归模型的一种方法是:

  1. 拿出一部分数据进行测试。

  2. 使用。训练线性回归模型fitrlinear.属性指定正则化强度的网格λ名称-值对参数并提供训练数据。fitrlinear返回一个RegressionLinear模型对象,但它包含每个正则化强度的模型。

  3. 为了确定每个正则化模型的质量,将返回的模型对象和保留的数据传递给,例如,损失

  4. 识别指数(idx),然后将返回的模型和索引传递给selectModelsselectModels返回一个RegressionLinear模型对象,但它包含元素个数(idx)正则化模型。

  5. 要预测新数据的类标签,请将数据和正则化模型的子集传递给预测

介绍了R2016a