主要内容

RegressionPartitionedLinear

包:classreg.learning.partition
超类:RegressionPartitionedModel

旨在为高维数据线性回归模型

描述

RegressionPartitionedLinear是一组线性回归模型训练旨在折叠。线性回归模型,获得一个旨在使用fitrlinear并指定一个交叉验证选项。你可以估计模型的预测质量,或如何推广的线性回归模型,利用一个或多个“kfold”方法:kfoldPredictkfoldLoss

每个“kfold”方法使用模型训练的观测预测out-of-fold观察的反应。例如,假设您旨在使用5折。在这种情况下,软件随机分配每个观测分成大致相等大小的五组。的培训褶皱包含四个组的(也就是说,约4/5的数据)和测试褶皱包含另一组(即约1/5的数据)。在这种情况下,交叉验证收益如下:

  1. 软件培训(存储在第一个模型CVMdl.Trained {1})使用观察过去四组和储备第一组的观测验证。

  2. 软件培训(存储在第二个模型CVMdl.Trained {2})使用观察第一组最后三组。软件保留在第二组观察验证。

  3. 软件第三到五收益以类似的方式模型。

如果验证通过调用kfoldPredict的观测,计算预测使用第一个模型组1,组2第二模式,等等。简而言之,每个观测使用的软件估计响应模型训练没有观察。

请注意

不像其他旨在回归模型,RegressionPartitionedLinear模型对象不存储预测数据集。

建设

CVMdl = fitrlinear (X, Y,名称,值)当创建了一个旨在,线性回归模型的名字要么是“CrossVal”,“CVPartition”,“坚持”,或“KFold”。更多细节,请参阅fitrlinear

属性

全部展开

交叉验证的属性

旨在模型名称,指定为一个特征向量。

例如,“线性”指定了一个旨在为二进制分类或回归线性模型。

数据类型:字符

旨在折叠,指定为一个正整数。

数据类型:

交叉验证参数值,例如,旨在使用名称-值对参数值的线性模型,指定为一个对象。ModelParameters不包含估计参数。

访问的属性ModelParameters使用点符号。

在训练数据的观察,指定为一个积极的数字标量。

数据类型:

数据分区显示软件将数据分为交叉验证折叠,如何指定为一个cvpartition模型。

线性回归模型训练在交叉验证折叠,指定的单元阵列RegressionLinear模型。训练有素的k细胞,k是折叠的数量。

数据类型:细胞

观察权重模型,旨在使用指定为一个数值向量。WNumObservations元素。

软件可实现重量以便用于培训sum (W, omitnan)1

数据类型:|

观察到的反应模型,旨在使用向量包含指定为一个数字NumObservations元素。

每一行的Y代表观察到的响应预测相应的观测的数据。

数据类型:|

其他回归属性

分类预测指标,指定为一个向量的正整数。CategoricalPredictors包含索引值表明相应的预测分类。索引值介于1和p,在那里p预测的数量被用来训练模型。如果所有的预测都直言,那么这个属性是空的([])。

数据类型:|

预测出他们名字的顺序出现在预测数据,指定为一个单元阵列的特征向量。的长度PredictorNames等于在训练数据变量的数量X资源描述作为预测变量。

数据类型:细胞

响应变量名称,指定为一个特征向量。

数据类型:字符

响应变换函数,指定为“没有”或一个函数处理。ResponseTransform描述了软件转换原始响应值。

对于一个MATLAB®函数或你定义一个函数,输入它的功能处理。例如,您可以输入Mdl。ResponseTransform = @函数,在那里函数接受一个数字矢量的原始响应并返回一个同样大小的数值向量包含转换后的反应。

数据类型:字符|function_handle

方法

kfoldLoss 回归损失的观察中未使用培训
kfoldPredict 预测反应观察不用于培训

复制语义

价值。学习如何价值类影响复制操作,明白了复制对象

例子

全部折叠

从这个模型模拟10000年观测

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

  • X = { x 1 , , x 1 0 0 0 } 是一个10000 - 10% - 1000稀疏矩阵非零标准正态元素。

  • e是随机的正常误差均值为0和标准偏差0.3。

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

旨在一个线性回归模型。提高执行速度,转置预测数据和指定列的观测。

X = X ';CVMdl = fitrlinear (X, Y,“CrossVal”,“上”,“ObservationsIn”,“列”);

CVMdl是一个RegressionPartitionedLinear旨在模型。因为fitrlinear实现了10倍交叉验证默认情况下,CVMdl.Trained包含一个向量十细胞RegressionLinear模型。每个单元格都包含一个线性回归模型训练9折,然后测试剩下的褶皱。

预测反应out-of-fold观察和估计泛化误差的传递CVMdlkfoldPredictkfoldLoss,分别。

oofYHat = kfoldPredict (CVMdl);通用电气= kfoldLoss (CVMdl)
通用电气(ge) = 0.1748

泛化,估计均方误差是0.1748。

确定一个好的lasso-penalty强度线性回归模型,利用最小二乘法,实现5倍交叉验证。

从这个模型模拟10000年观测

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

  • X = { x 1 , , x 1 0 0 0 } 是一个10000 - 10% - 1000稀疏矩阵非零标准正态元素。

  • e是随机的正常误差均值为0和标准偏差0.3。

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

创建一组15对数间隔正则化的优势 1 0 - - - - - - 5 通过 1 0 - - - - - - 1

λ= logspace (5、1、15);

旨在模型。提高执行速度,转置预测数据和指定列的观测。使用SpaRSA优化目标函数。

X = X ';CVMdl = fitrlinear (X, Y,“ObservationsIn”,“列”,“KFold”5,“λ”λ,“学习者”,“leastsquares”,“规划求解”,“sparsa”,“正规化”,“套索”);numCLModels =元素个数(CVMdl.Trained)
numCLModels = 5

CVMdl是一个RegressionPartitionedLinear模型。因为fitrlinear实现5倍交叉验证,CVMdl包含5RegressionLinear火车在每个折叠模型软件。

显示第一个训练有素的线性回归模型。

Mdl1 = CVMdl.Trained {1}
Mdl1 = RegressionLinear ResponseName:‘Y’ResponseTransform:“没有一个”测试:[1000 x15双]偏见:[-0.0049 -0.0049 -0.0049 -0.0049 -0.0049 -0.0048……λ:[1.0000 7.1969 3.7276 1.9307 e-05 e-05 e-05 e-05……学生:“leastsquares”属性,方法

Mdl1是一个RegressionLinear模型对象。fitrlinear构造Mdl1通过培训第一个4折。因为λ是一个序列的正则化的优势,你能想到什么Mdl115模型,每个正规化的力量在一个λ

估计旨在MSE。

mse = kfoldLoss (CVMdl);

更高的值λ导致预测变量稀疏,这是一个好质量的回归模型。对于每一个正规化的力量,训练一个线性回归模型使用整个数据集和旨在模型时相同的选项。确定数量的非零系数模型。

Mdl = fitrlinear (X, Y,“ObservationsIn”,“列”,“λ”λ,“学习者”,“leastsquares”,“规划求解”,“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轴对象。坐标轴对象1包含一个类型的对象。坐标轴对象2包含一个类型的对象。

选择平衡的正则化强度指数预测变量稀疏和低MSE(例如,λ(10))。

idxFinal = 10;

提取模型与相应的均方误差最小。

idxFinal MdlFinal = selectModels (Mdl)
MdlFinal = RegressionLinear ResponseName:‘Y’ResponseTransform:“没有一个”测试:[1000 x1双]偏见:-0.0050λ:0.0037学习者:“leastsquares”属性,方法
idxNZCoeff =找到(MdlFinal.Beta ~ = 0)
idxNZCoeff =2×1100 200
EstCoeff = Mdl.Beta (idxNZCoeff)
EstCoeff =2×11.0051 - 1.9965

MdlFinal是一个RegressionLinear模型与一个正规化的力量。非零系数EstCoeff接近系数,模拟数据。

版本历史

介绍了R2016a