RegressionPartitionedLinear
包:classreg.learning.partition
超类:RegressionPartitionedModel
旨在为高维数据线性回归模型
描述
RegressionPartitionedLinear
是一组线性回归模型训练旨在折叠。线性回归模型,获得一个旨在使用fitrlinear
并指定一个交叉验证选项。你可以估计模型的预测质量,或如何推广的线性回归模型,利用一个或多个“kfold”方法:kfoldPredict
和kfoldLoss
。
每个“kfold”方法使用模型训练的观测预测out-of-fold观察的反应。例如,假设您旨在使用5折。在这种情况下,软件随机分配每个观测分成大致相等大小的五组。的培训褶皱包含四个组的(也就是说,约4/5的数据)和测试褶皱包含另一组(即约1/5的数据)。在这种情况下,交叉验证收益如下:
软件培训(存储在第一个模型
CVMdl.Trained {1}
)使用观察过去四组和储备第一组的观测验证。软件培训(存储在第二个模型
CVMdl.Trained {2}
)使用观察第一组最后三组。软件保留在第二组观察验证。软件第三到五收益以类似的方式模型。
如果验证通过调用kfoldPredict
的观测,计算预测使用第一个模型组1,组2第二模式,等等。简而言之,每个观测使用的软件估计响应模型训练没有观察。
请注意
不像其他旨在回归模型,RegressionPartitionedLinear
模型对象不存储预测数据集。
建设
CVMdl = fitrlinear (X, Y,名称,值)
当创建了一个旨在,线性回归模型的名字
要么是“CrossVal”
,“CVPartition”
,“坚持”
,或“KFold”
。更多细节,请参阅fitrlinear
。
属性
CrossValidatedModel
- - - - - -旨在模型名称
特征向量
旨在模型名称,指定为一个特征向量。
例如,“线性”
指定了一个旨在为二进制分类或回归线性模型。
数据类型:字符
KFold
- - - - - -许多旨在折叠
正整数
旨在折叠,指定为一个正整数。
数据类型:双
ModelParameters
- - - - - -交叉验证的参数值
对象
交叉验证参数值,例如,旨在使用名称-值对参数值的线性模型,指定为一个对象。ModelParameters
不包含估计参数。
访问的属性ModelParameters
使用点符号。
NumObservations
- - - - - -数量的观察
积极的数字标量
在训练数据的观察,指定为一个积极的数字标量。
数据类型:双
分区
- - - - - -数据分区
cvpartition
模型
数据分区显示软件将数据分为交叉验证折叠,如何指定为一个cvpartition
模型。
训练有素的
- - - - - -线性回归模型的交叉验证训练折叠
单元阵列的RegressionLinear
模型对象
线性回归模型训练在交叉验证折叠,指定的单元阵列RegressionLinear
模型。训练有素的
有k细胞,k是折叠的数量。
数据类型:细胞
W
- - - - - -观察权重
数值向量
观察权重模型,旨在使用指定为一个数值向量。W
有NumObservations
元素。
软件可实现重量以便用于培训sum (W, omitnan)
是1
。
数据类型:单
|双
Y
- - - - - -观察到的反应
数值向量
观察到的反应模型,旨在使用向量包含指定为一个数字NumObservations
元素。
每一行的Y
代表观察到的响应预测相应的观测的数据。
数据类型:单
|双
CategoricalPredictors
- - - - - -分类预测指标
向量的正整数|[]
分类预测指标,指定为一个向量的正整数。CategoricalPredictors
包含索引值表明相应的预测分类。索引值介于1和p
,在那里p
预测的数量被用来训练模型。如果所有的预测都直言,那么这个属性是空的([]
)。
数据类型:单
|双
PredictorNames
- - - - - -预测的名字
单元阵列的特征向量
预测出他们名字的顺序出现在预测数据,指定为一个单元阵列的特征向量。的长度PredictorNames
等于在训练数据变量的数量X
或资源描述
作为预测变量。
数据类型:细胞
ResponseName
- - - - - -响应变量名
特征向量
响应变量名称,指定为一个特征向量。
数据类型:字符
ResponseTransform
- - - - - -响应转换函数
“没有”
|函数处理
响应变换函数,指定为“没有”
或一个函数处理。ResponseTransform
描述了软件转换原始响应值。
对于一个MATLAB®函数或你定义一个函数,输入它的功能处理。例如,您可以输入Mdl。ResponseTransform = @函数
,在那里函数
接受一个数字矢量的原始响应并返回一个同样大小的数值向量包含转换后的反应。
数据类型:字符
|function_handle
方法
kfoldLoss | 回归损失的观察中未使用培训 |
kfoldPredict | 预测反应观察不用于培训 |
复制语义
价值。学习如何价值类影响复制操作,明白了复制对象。
例子
创建旨在线性回归模型
从这个模型模拟10000年观测
是一个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观察和估计泛化误差的传递CVMdl
来kfoldPredict
和kfoldLoss
,分别。
oofYHat = kfoldPredict (CVMdl);通用电气= kfoldLoss (CVMdl)
通用电气(ge) = 0.1748
泛化,估计均方误差是0.1748。
找到好的套索惩罚使用交叉验证
确定一个好的lasso-penalty强度线性回归模型,利用最小二乘法,实现5倍交叉验证。
从这个模型模拟10000年观测
是一个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对数间隔正则化的优势 通过 。
λ= 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折。因为λ
是一个序列的正则化的优势,你能想到什么Mdl1
15模型,每个正规化的力量在一个λ
。
估计旨在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}λ的)举行从
选择平衡的正则化强度指数预测变量稀疏和低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
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。