1.1 readtable
语法:
-
T = readtable(filename)
-
通过从文件中读取列向数据来创建表;
例子:
-
tbl =readtable(‘abalone.data’,‘Filetype’,‘text’,‘ReadVariableNames’,false);
-
参数解释:
1.1.1 ‘filename’- 文件名
readtable 基于文件的扩展名确定文件格式:
.txt、.dat 或 .csv(适用于带分隔符的文本文件)
.xls、.xlsb、.xlsm、.xlsx、.xltm、.xltx 或 .ods(适用于电子表格文件)
1.1.2 ‘FileType’ - 文件类型
文件类型,以逗号分隔的对组形式指定,其中包含 ‘FileType’ 以及 ‘text’ 或 ‘spreadsheet’。
当 filename 不包含文件扩展名或扩展名不是以上列出来的任一项时,请指定 ‘FileType’ 名称-值对组参数。
示例:'FileType','text'
数据类型: char | string
1.1.3 ‘ReadVariableNames’ - 读取第一行作为变量名称
读取第一行以作为变量名称的指示符,指定为逗号分隔的对组,包含 ‘ReadVariableNames’ 和 true、false、1 或 0。如果未指定,readtable 将自动检测是否存在变量名称。
指示符 | 说明 |
---|---|
true | 当要读取的区域的第一行包含表格的变量名称时使用。readtable 将使用检测到的变量名称为 T 中的每列创建一个变量。 |
false | 当要读取的区域的第一行包含表格中的数据时使用。readtable 将创建 ‘Var1’,…,‘VarN’ 形式的默认变量名称,其中 N 是变量的数量。 |
未指定 | 如果未指定,readtable 将自动检测 true 或 false,并进行相应的处理。 |
注意:如果 ‘ReadVariableNames’ 和 ‘ReadRowNames’ 逻辑指示符都为 true,则 readtable 将读取的区域第一行第一列中的名称保存为属性 T.Properties.DimensionNames 中的第一个维度名称。
如果除 opts 导入选项外您还指定了 ReadVariableNames 参数,readtable 的行为将因您的指定而异:
- 如果 ReadVariableNames 为 true,则通过使用导入选项对象的 VariableNamesRange 或 VariableNamesLine 属性从指定的文件中读取变量名称。
- 如果 ReadVariableNames 为 false,则从导入选项对象的 VariableNames 属性中读取变量名称。
比如:tbl = readtable(‘abalone.data’,‘Filetype’,‘text’,‘ReadVariableNames’,false);
tbl.Properties.VariableNames = {‘Sex’,‘Length’,‘Diameter’,‘Height’,‘WWeight’,‘SWeight’,‘VWeight’,‘ShWeight’,‘NoShellRings’};
1.2 fitrgp
- 拟合高斯过程回归(GPR)模型
语法:
-
gprMdl = fitrgp(___,Name,Value)
-
返回先前语法中任何输入参数的GPR模型,以及由一个或多个名称、值对参数指定的其他选项。
-
例如,您可以指定拟合方法FitMethod,预测方法PredictMethod,协方差函数KernelFunction或活动集选择方法ActiveSetMethod。您还可以训练交叉验证的模型a cross-validated model。
例子:
-
gprMdl = fitrgp(tbl,‘NoShellRings’,‘KernelFunction’,‘ardsquaredexponential’,‘FitMethod’,‘sr’,‘PredictMethod’,‘fic’,‘Standardize’,1)
输出: gprMdl = RegressionGP PredictorNames: {'Sex' 'Length' 'Diameter' 'Height' 'WWeight' 'SWeight' 'VWeight' 'ShWeight'} ResponseName: 'NoShellRings' CategoricalPredictors: 1 ResponseTransform: 'none' NumObservations: 4177 KernelFunction: 'ARDSquaredExponential' KernelInformation: [1×1 struct] BasisFunction: 'Constant' Beta: 10.914842268491327 Sigma: 2.024259943112117 PredictorLocation: [10×1 double] PredictorScale: [10×1 double] Alpha: [1000×1 double] ActiveSetVectors: [1000×10 double] PredictMethod: 'FIC' ActiveSetSize: 1000 FitMethod: 'SR' ActiveSetMethod: 'Random' IsActiveSetVector: [4177×1 logical] LogLikelihood: -9.001273721582709e+03 ActiveSetHistory: [1×1 struct] BCDInformation: []
具体的Name,Value:
1.2.1 Fitting
1.2.1.1 ‘FitMethod’- 估计GPR模型参数的方法
估计GPR模型参数的方法,指定为逗号分隔的一对,由“ FitMethod”和以下项之一组成。
Fit Method | Description |
---|---|
‘none’ | 无需估算,可以将初始参数值用作已知参数值。 |
‘exact’ | 精确的高斯过程回归。如果n≤2000,则为默认值,其中n是观察数(样本数) |
‘sd’ | 数据点近似值的子集。如果n> 2000,则为默认值,其中n是观察数(样本数) |
‘sr’ | 回归子近似值的子集。 |
‘fic’ | 完全独立的条件逼近。 |
示例:“ FitMethod”,“ fic”
1.2.1.2 ‘BasisFunction’- GPR模型中的显式基础
GPR模型中的显式基础Explicit Basis,指定为由’BasisFunction’和以下项之一组成的逗号分隔对。如果n是观察次数,则基函数将项H*β添加到模型中,其中H是基矩阵,β是基系数,p*1向量。
Explicit Basis | Basis Matrix |
---|---|
‘none’ | Empty matrix. |
‘constant’ | H=1(n-by-1 vector of 1s, 其中n是观察数(样本数)) |
‘linear’ | H=[1,X] |
‘pureQuadratic’ | H=[1,X,X2], |
Function handle | fitrgp调用的函数句柄hfcn为:H = hfcn(X),其中X是预测变量n-d矩阵,H是基函数的n-p矩阵。 |
示例:“ BasisFunction”,“ pureQuadratic”
显式基函数,h将输入x投影到p维特征空间中。h(x)是一组基函数,它们将d维的原始特征向量x转换为p维中的新特征向量h(x)。
1.2.1.3 ‘Beta’-系数的初始值
显式基础Explicit Basis系数的初始值,指定为由’Beta’和p*1向量组成的逗号分隔对,其中p是基矩阵H中的列数。
基矩阵取决于对显式基函数the explicit basis function的选择,如下所示(另请参阅BasisFunction)。
1.2.1.4 ‘Sigma’-高斯过程模型的噪声标准偏差的初始值
高斯过程模型的噪声标准差的初始值,指定为由“ Sigma”和正标量值组成的逗号分隔对。
示例:“ Sigma”,2
1.2.1.5 ‘ConstantSigma’- 高斯过程模型的噪声标准差Sigma常数
高斯过程模型的噪声标准差的Sigma常数,指定为逻辑标量。当ConstantSigma为true时,fitrgp不会优化Sigma的值,而是在整个计算过程中将初始值作为值。
示例:“ ConstantSigma”,true
1.2.1.6 ‘Standardize’ - 标准化数据的指标
标准化数据的指示符,指定为以逗号分隔的一对,由“标准化”和逻辑值组成。
如果设置“ Standardize”,1,则软件将分别通过列均值和标准差对预测器数据的每一列进行居中和缩放。该软件未标准化它为分类预测变量生成的虚拟变量列中包含的数据。
示例:“ Standardize”,1
示例:“ Standardize”,true
1.2.1.7 ‘Regularization’ -正则化标准偏差
回归子集(‘sr’)和完全独立的条件变量(‘fic’)的稀疏方法子集的正则化标准差,指定为由“正则化”和标量值组成的逗号分隔对。
示例:‘Regularization’,0.2
1.2.1.8 ‘ComputationMethod’-计算对数似然和梯度的方法
使用回归子集(‘sr’)和完全独立的条件(‘fic’)近似方法(指定为以逗号分隔的一对,由’ComputationMethod’和下列值之一组成)来计算参数估计的对数似然度和梯度的方法。
'qr'-使用基于QR分解的方法,此选项可提供更好的准确性。
'v'-使用基于V方法的方法。此选项提供对数似然梯度的更快计算。
示例:“ ComputationMethod”,“ v”
1.2.2 Kernel (Covariance) Function
1.2.2.1 ‘KernelFunction’-协方差函数的形式
示例:“ KernelFunction”,“ matern32”
1.2.2.2 ‘KernelParameters’-内核参数的初始值
内核参数的初始值,指定为以逗号分隔的一对,由“ KernelParameters”和一个向量组成。
向量的大小和值取决于KernelFunction名称-值对参数指定的协方差函数的形式。
示例:“ KernelParameters”,theta
1.2.3 Active Set Selection
1.2.3.1 ‘ActiveSetMethod’-活动集选择方法
活动集选择方法,指定为以逗号分隔的一对,由“ ActiveSetMethod”和以下项之一组成。
Method | Description |
---|---|
‘random’ | 随机选择 |
‘sgma’ | 稀疏贪婪矩阵逼近 |
‘entropy’ | 基于微分熵的选择 |
‘likelihood’ | 基于对数似然选择的回归子集 |
所有活动集选择方法(“随机”除外)都需要存储一个n×m矩阵,其中m是活动集的大小,n是观察数。
示例:‘ActiveSetMethod’,‘entropy’
1.2.4 Prediction
1.2.4.1 ‘PredictMethod’-用于进行预测的方法
在给定参数的情况下用于根据高斯过程模型进行预测的方法,指定为以逗号分隔的一对,其中包括“ PredictMethod”和以下参数之一。
Method | Description |
---|---|
‘exact’ | 精确的高斯过程回归方法。如果n≤10000,则为默认值。 |
‘bcd’ | 块坐标下降。如果n> 10000,则为默认值。 |
‘sd’ | 数据点近似值的子集。 |
‘sr’ | 回归子近似值的子集。 |
‘fic’ | 完全独立的条件近似。 |
示例:“ PredictMethod”,“ bcd”
1.2.5 Optimization
1.2.5.1 ‘Optimizer’-用于参数估计的优化器
用于参数估计的优化器,指定为以逗号分隔的一对,由“ Optimizer”和此表中的值组成。
Value | Description |
---|---|
‘quasinewton’ | 对Hessian的密集,对称,基于秩1的拟牛顿近似 |
‘lbfgs’ | 基于LBFGS的Hessian拟牛顿近似 |
‘fminsearch’ | 使用Lagarias等人的单纯形搜索方法进行无约束的非线性优化。 |
‘fminunc’ | 不受约束的非线性优化(需要Optimization Toolbox™许可证) |
‘fmincon’ | 约束非线性优化(需要Optimization Toolbox许可证) |
有关优化器的更多信息,请参见算法。
示例:“ Optimizer”,“ fmincon”
1.2.6 Hyperparameter Optimization
1.2.6.1 ‘OptimizeHyperparameters’-要优化的参数
要优化的参数,指定为以逗号分隔的一对,由“ OptimizeHyperparameters”和以下项之一组成:
- ‘none’-不优化。
- ‘auto’ — Use {‘Sigma’}.
- ‘all’-优化所有合格参数,等效于{‘BasisFunction’,‘KernelFunction’,‘KernelScale’,‘Sigma’,‘Standardize’}。
1.2.7 Output Arguments
1.2.7.1 gprMdl —高斯过程回归模型
高斯过程回归模型,作为RegressionGP或RegressionPartitionedModel对象返回。
- 如果进行交叉验证,即使用’Crossval’, ‘KFold’, ‘Holdout’, ‘Leaveout’, 或 ‘CVPartition’ 名称/值对之一,则gprMdl是RegressionPartitionedModel对象。您不能使用RegressionPartitionedModel对象使用预测进行预测。有关此对象的方法和属性的更多信息,请参见RegressionPartitionedModel。
- 如果不交叉验证,则gprMdl是RegressionGP对象。您可以使用predict方法将此对象用于预测。有关此对象的方法和属性的更多信息,请参见RegressionGP。
1.2.8 Active Set Selection and Parameter Estimation
- fitrgp接受拟合,预测和活动集选择方法的任何组合。在某些情况下,可能无法计算预测响应的标准偏差,因此无法计算预测间隔。详见预测。在某些情况下,由于训练数据的大小,使用精确的方法可能会很昂贵。
- PredictorNames属性为每个原始预测变量名称存储一个元素。例如,如果有三个预测变量,其中一个是具有三个级别的分类变量,则PredictorNames是字符向量的1×3单元格数组。
- ExpandedPredictorNames属性为每个预测变量(包括伪变量)存储一个元素。例如,如果有三个预测变量,其中一个是具有三个级别的类别变量,则ExpandedPredictorNames是字符向量的1×5单元格数组。
- 类似地,Beta属性为每个预测变量(包括虚拟变量)存储一个beta系数。
- X属性将训练数据存储为原始输入。它不包括虚拟变量。
- 当您具有包含许多内核参数的GPR模型时(例如,使用具有许多预测变量的ARD内核时),在fitrgp中初始化Hessian逼近的默认方法可能会很慢。在这种情况下,请考虑指定“自动”或初始步长值。
- 您可以设置’Verbose’,1以显示迭代诊断消息,然后开始使用带有默认fitrgp优化的LBFGS或准牛顿优化器来训练GPR模型。
如果几秒钟后未显示迭代诊断消息,则可能是Hessian逼近的初始化时间太长。在这种情况下,请考虑重新开始训练并使用初始步长来加快优化速度。
1.2.9 Algorithms
-
拟合GPR模型涉及从数据估计以下模型参数:(3个超参数)
1、根据向量θ中的核参数进行参数化的协方差函数k(x i,x j|θ) 2、噪声方差Noise variance,σ2 3、固定基函数的系数向量Coefficient vector of fixed basis functions,β
“ KernelParameters”名称-值对参数的值是一个矢量[σl,σf],由特征长度尺度σl和信号标准偏差σf的初始值组成。 fitrgp函数使用这些值来确定内核参数。同样,“ Sigma”名称-值对参数包含噪声标准差σ的初始值。
- 在优化过程中,fitrgp通过使用噪声标准偏差和内核参数的初始值来创建不受约束的初始参数值η0的向量。
- fitrgp从θ和σ2的估计值解析确定由“ Beta”名称-值对自变量指定的显式基本系数β。因此,当fitrgp初始化数值优化时,β不会出现在η0向量中。
1.3 resubPredict
在支持向量机(SVM)分类器中对观察结果进行分类
语法:
-
label = resubPredict(SVMModel)
-
使用预测数据SVMModel.x返回经过训练的支持向量机(SVM)分类器SVMModel的预测类标签(Label)向量。
ypred = resubPredict(gprMdl), 注意这里的预测语句,resubPredict(gprMdl) 这个函数输入是训练好的gprMdl模型。然后对应于训练数据x预测相应的y,是用训练好的模型,重新预测训练数据x对应的y值。
1.4 resubLoss
通过替换查找支持向量机(SVM)分类器的分类损失