fitckernel
利用随机特征展开拟合二值高斯核分类器
语法
描述
fitckernel
训练或交叉验证二元高斯核分类模型用于非线性分类。fitckernel
对于具有大型训练集的大数据应用程序更实用,但也可以应用于适合内存的较小数据集。
fitckernel
将低维空间的数据映射到高维空间,然后通过最小化正则化目标函数来拟合高维空间的线性模型。在高维空间中获得线性模型相当于在低维空间中对模型应用高斯核。现有的线性分类模型包括正则化支持向量机(SVM)和逻辑回归模型。金宝app
要训练用于内存数据二进制分类的非线性SVM模型,请参见fitcsvm
。
返回核分类模型Mdl
= fitckernel (资源描述
,ResponseVarName
)Mdl
使用表中包含的预测变量进行训练资源描述
类标签资源描述。ResponseVarName
。
(
还返回超参数优化结果Mdl
,FitInfo
,HyperparameterOptimizationResults
= fitckernel()___)HyperparameterOptimizationResults
的方法来优化超参数“OptimizeHyperparameters”
名称-值对参数。
例子
训练核分类模型
利用支持向量机训练二值核分类模型。
加载电离层
数据集。该数据集有34个预测因子和351个雷达回波的二进制响应,要么是坏的(“b”
)或好(‘g’
)。
负载电离层[n,p] = size(X)
N = 351
P = 34
resp = unique(Y)
resp =2 x1细胞{b} {' g '}
训练一个二元核分类模型来识别雷达回波是否不良(“b”
)或好(‘g’
)。提取拟合摘要以确定优化算法将模型拟合到数据的程度。
rng (“默认”)%为了重现性[Mdl,FitInfo] = fitckernel(X,Y)
Mdl = ClassificationKernel ResponseName: 'Y' ClassNames: {'b' 'g'} Learner: 'svm' NumExpansionDimensions: 2048 KernelScale: 1 Lambda: 0.0028 BoxConstraint: 1属性,方法
FitInfo =带有字段的结构体:Solver: 'LBFGS-fast' LossFunction: 'hinge' Lambda: 0.0028 beta公差:1.0000e-04 GradientTolerance: 1.0000e-06 objectivalue: 0.2604 GradientMagnitude: 0.0028 RelativeChangeInBeta: 8.2512e-05 FitTime: 0.0954 History: []
Mdl
是一个ClassificationKernel
模型。要检查样本内分类误差,可以通过Mdl
而训练数据或新数据损失
函数。或者,你可以不去Mdl
还有新的预测数据预测
函数用于预测新观测值的类标签。你也可以通过Mdl
训练数据重新开始
功能继续训练。
FitInfo
是包含优化信息的结构数组。使用FitInfo
确定优化终止测量是否令人满意。
为了获得更好的准确性,您可以增加优化迭代的最大次数(“IterationLimit”
),并降低容许值(“BetaTolerance”
和“GradientTolerance”
),使用名称-值对参数。这样做可以改善措施,如ObjectiveValue
和RelativeChangeInBeta
在FitInfo
。的方法来优化模型参数“OptimizeHyperparameters”
名称-值对参数。
交叉验证核分类模型
加载电离层
数据集。该数据集有34个预测因子和351个雷达回波的二进制响应,要么是坏的(“b”
)或好(‘g’
)。
负载电离层rng (“默认”)%为了重现性
交叉验证一个二进制核分类模型。默认情况下,软件使用10次交叉验证。
CVMdl = fitckernel(X,Y,“CrossVal”,“上”)
CVMdl = ClassificationPartitionedKernel CrossValidatedModel: 'Kernel' ResponseName: 'Y' NumObservations: 351 KFold: 10 Partition: [1x1 cvpartition] ClassNames: {'b' 'g'} ScoreTransform: 'none'属性,方法
元素个数(CVMdl.Trained)
Ans = 10
CVMdl
是一个ClassificationPartitionedKernel
模型。因为fitckernel
实现10倍交叉验证,CVMdl
包含10ClassificationKernel
软件在训练折叠(内折叠)观察上训练的模型。
估计交叉验证的分类误差。
kfoldLoss (CVMdl)
Ans = 0.0940
分类错误率约为9%。
优化核分类器
方法自动优化超参数“OptimizeHyperparameters”
名称-值对参数。
加载电离层
数据集。该数据集有34个预测因子和351个雷达回波的二进制响应,要么是坏的(“b”
)或好(‘g’
)。
负载电离层
通过使用自动超参数优化,找到最小化五倍交叉验证损失的超参数。指定“OptimizeHyperparameters”
作为“汽车”
如此......以至于......fitckernel
的最优值“KernelScale”
和“λ”
名称-值对参数。为了再现性,设置随机种子并使用“expected-improvement-plus”
采集功能。
rng (“默认”) [Mdl,FitInfo,HyperparameterOptimizationResults] = fitckernel(X,Y,“OptimizeHyperparameters”,“汽车”,…“HyperparameterOptimizationOptions”结构(“AcquisitionFunctionName”,“expected-improvement-plus”))
|=====================================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFar | KernelScaleλ| | | | |结果运行时| | | (estim(观察) .) | | | |=====================================================================================================| | 最好1 | | 0.35897 | 1.5558 | 0.35897 | 0.35897 | 64.836 | 4.4811 e-06 | | 2 |接受| 0.35897 | 0.82658 | 0.35897 | 0.35897 | 0.036335 | 0.015885 | |3 | Accept | 0.39601 | 1.3498 | 0.35897 | 0.36053 | 0.0022147 | 6.8254e-06 | | 4 | Accept | 0.35897 | 0.80935 | 0.35897 | 0.35898 | 5.1259 | 0.28097 | | 5 | Accept | 0.35897 | 1.2983 | 0.35897 | 0.35897 | 0.24853 | 0.10828 | | 6 | Accept | 0.35897 | 0.86126 | 0.35897 | 0.35897 | 885.09 | 0.00057316 | | 7 | Best | 0.10826 | 1.9662 | 0.10826 | 0.10833 | 8.0346 | 0.0048286 | | 8 | Best | 0.076923 | 1.8062 | 0.076923 | 0.076999 | 7.0902 | 0.0034068 | | 9 | Accept | 0.091168 | 1.5708 | 0.076923 | 0.077059 | 9.1504 | 0.0020604 | | 10 | Best | 0.062678 | 1.1253 | 0.062678 | 0.062723 | 3.5487 | 0.0025912 | | 11 | Accept | 0.062678 | 1.2824 | 0.062678 | 0.062741 | 2.3869 | 0.003321 | | 12 | Accept | 0.41026 | 1.8515 | 0.062678 | 0.062536 | 0.14075 | 0.0022499 | | 13 | Accept | 0.062678 | 1.8949 | 0.062678 | 0.062532 | 3.4215 | 0.0036803 | | 14 | Accept | 0.062678 | 1.7372 | 0.062678 | 0.061956 | 3.2928 | 0.0030533 | | 15 | Best | 0.05698 | 1.5161 | 0.05698 | 0.057204 | 5.0598 | 0.0025499 | | 16 | Accept | 0.062678 | 1.3953 | 0.05698 | 0.057186 | 5.3401 | 0.0015096 | | 17 | Accept | 0.05698 | 1.9142 | 0.05698 | 0.057118 | 1.813 | 0.0069209 | | 18 | Accept | 0.059829 | 1.2101 | 0.05698 | 0.057092 | 1.5122 | 0.0046637 | | 19 | Accept | 0.059829 | 1.0823 | 0.05698 | 0.05718 | 1.9277 | 0.0056364 | | 20 | Accept | 0.065527 | 0.92556 | 0.05698 | 0.057189 | 1.4064 | 0.0094306 | |=====================================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | KernelScale | Lambda | | | result | | runtime | (observed) | (estim.) | | | |=====================================================================================================| | 21 | Accept | 0.05698 | 1.0543 | 0.05698 | 0.057033 | 5.1719 | 0.0023614 | | 22 | Best | 0.054131 | 2.2644 | 0.054131 | 0.054176 | 1.9618 | 6.5704e-05 | | 23 | Best | 0.042735 | 1.5655 | 0.042735 | 0.042763 | 1.9463 | 1.0169e-05 | | 24 | Accept | 0.082621 | 1.6004 | 0.042735 | 0.042775 | 1.0661 | 1.3245e-05 | | 25 | Accept | 0.054131 | 2.3324 | 0.042735 | 0.042789 | 3.288 | 2.0035e-05 | | 26 | Accept | 0.062678 | 1.3236 | 0.042735 | 0.042769 | 2.657 | 3.0334e-06 | | 27 | Accept | 0.059829 | 1.2629 | 0.042735 | 0.043054 | 2.0381 | 1.9791e-05 | | 28 | Accept | 0.042735 | 1.5697 | 0.042735 | 0.042764 | 3.5043 | 0.0001237 | | 29 | Accept | 0.054131 | 0.96811 | 0.042735 | 0.042764 | 1.3897 | 3.2288e-06 | | 30 | Accept | 0.062678 | 1.4174 | 0.042735 | 0.042792 | 2.2414 | 0.0002259 |
__________________________________________________________ 优化完成。达到30分的评价。总函数评估:30总运行时间:72.4556秒总目标函数评估时间:43.3377最佳观察可行点:KernelScale Lambda ___________ __________ 1.9463 1.0169e-05观察目标函数值= 0.042735估计目标函数值= 0.043106函数评估时间= 1.5655估计最佳可行点(根据模型):KernelScale Lambda ___________ _________ 3.5043 0.0001237估计目标函数值= 0.042792估计函数评估时间= 1.3888
Mdl = ClassificationKernel ResponseName: 'Y' ClassNames: {'b' 'g'} Learner: 'svm' NumExpansionDimensions: 2048 KernelScale: 3.5043 Lambda: 1.2370e-04 BoxConstraint: 23.0320属性,方法
FitInfo =带有字段的结构体:Solver: 'LBFGS-fast' LossFunction: 'hinge' Lambda: 1.2370e-04 betatolance: 1.0000e-04 GradientTolerance: 1.0000e-06 objectivalue: 0.0426 GradientMagnitude: 0.0028 RelativeChangeInBeta: 8.9154e-05 FitTime: 0.1958历史:[]
HyperparameterOptimizationResults = BayesianOptimization with properties: ObjectiveFcn: @createObjFcn/inMemoryObjFcn variabledescription: [4x1 optimizableVariable] Options: [1x1 struct] MinObjective: 0.0427 XAtMinObjective: [1x2表]minestimatedobjobjective: 0.0428 xatminestimatedobjobjective: [1x2表]NumObjectiveEvaluations: 30 TotalElapsedTime: 72.4556 NextPoint: [1x2表]XTrace: [30x2表]ObjectiveTrace: [30x1 double] ConstraintsTrace: [] UserDataTrace:{30x1 cell} ObjectiveEvaluationTimeTrace: [30x1 double] IterationTimeTrace: [30x1 double] ErrorTrace: [30x1 double]可行性跟踪:[30x1 logical]可行性概率跟踪:[30x1 double] IndexOfMinimumTrace: [30x1 double] ObjectiveMinimumTrace: [30x1 double] estimatedobjectioneminimumtrace: [30x1 double]
对于大数据,优化过程可能需要很长时间。如果数据集太大而无法运行优化过程,则可以尝试仅使用部分数据来优化参数。使用datasample
功能和指定“替换”,“假”
采样数据而不进行替换。
输入参数
X
- - - - - -预测数据
数字矩阵
资源描述
- - - - - -样本数据
表格
用于训练模型的样本数据,指定为表。每一行资源描述
对应一个观测值,每一列对应一个预测变量。除了字符向量的单元格数组之外,不允许使用多列变量和单元格数组。
可选地,资源描述
可以包含一列用于响应变量和一列用于观测权重。
响应变量必须是分类、字符或字符串数组、逻辑或数字向量,或字符向量的单元格数组。
权重的列必须是一个数字向量。
中指定响应变量
资源描述
通过使用ResponseVarName
或公式
并指定观测值的权重资源描述
通过使用权重
。使用指定响应变量
ResponseVarName
- - - - - -fitckernel
使用剩下的变量作为预测因子。中剩余变量的子集资源描述
作为预测变量,使用PredictorNames
。定义模型规范,使用
公式
- - - - - -fitckernel
中变量的子集资源描述
作为预测变量和响应变量,如公式
。
如果资源描述
不包含响应变量,则使用Y
。响应变量的长度Y
里面的行数资源描述
必须是相等的。中变量的子集资源描述
作为预测变量,使用PredictorNames
。
数据类型:表格
公式
- - - - - -反应变量和预测变量子集的解释模型
特征向量|字符串标量
响应变量的解释模型和预测变量的子集,以字符向量或字符串标量的形式指定“Y ~ x1 + x2 + x3”
。在这个形式中,Y
表示响应变量,和x1
,x2
,x3
表示预测变量。
中的变量子集资源描述
作为训练模型的预测器,请使用公式。如果你指定一个公式,那么软件不使用任何变量资源描述
那就不要出现在公式
。
公式中的变量名必须是资源描述
(Tbl.Properties.VariableNames
)和有效的MATLAB®标识符。中的变量名进行验证资源描述
通过使用isvarname
函数。如果变量名无效,则可以使用matlab.lang.makeValidName
函数。
数据类型:字符
|字符串
请注意
软件处理南
,空字符向量(”
),空字符串(”“
),< >失踪
,<定义>
元素作为缺失值,并删除具有以下任何特征的观测值:
响应变量中缺少的值
预测器观测值中至少有一个缺失值(第一行)
X
或资源描述
)南
值或0
体重(“重量”
)
名称-值参数
指定可选的参数对为Name1 = Value1,…,以=家
,在那里名字
是参数名和吗价值
是对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来名字
在报价。
例子:Mdl = fitckernel(X,Y,'Learner','logistic','NumExpansionDimensions',2^15,'KernelScale','auto')
对象映射预测器数据后实现逻辑回归2 ^ 15
维空间利用特征展开与一个核尺度参数选定的启发式程序。
请注意
控件一起使用任何交叉验证名称-值参数“OptimizeHyperparameters”
名称-值参数。您可以修改的交叉验证“OptimizeHyperparameters”
只有使用“HyperparameterOptimizationOptions”
名称-值参数。
学习者
- - - - - -线性分类模型类型
“支持向量机”
(默认)|“物流”
线性分类模型类型,指定为由逗号分隔的对组成“学习者”
和“支持向量机”
或“物流”
。
在下表中,
x观察值(行向量)来自
p 预测变量。是用于特征展开的观测值(行向量)的变换。T(
x )地图x 在 到一个高维空间( )。β是一个系数向量。
b是标量偏置。
价值 | 算法 | 响应范围 | 损失函数 |
---|---|---|---|
“支持向量机” |
金宝app支持向量机 | y∊{1};正类为1,否则为-1 | 铰链: |
“物流” |
逻辑回归 | 一样“支持向量机” |
异常(物流): |
例子:“学习者”,“物流”
NumExpansionDimensions
- - - - - -扩展空间的维数
“汽车”
(默认)|正整数
扩展空间的维数,指定为由逗号分隔的对组成“NumExpansionDimensions”
和“汽车”
或者一个正整数。为“汽车”
,fitckernel
函数选择使用的维度数2 . ^装天花板(最低(log2 (p) + 5、15))
,在那里p
是预测因子的数量。
有关详情,请参阅随机特征扩展。
例子:“NumExpansionDimensions”、2 ^ 15
数据类型:字符
|字符串
|单
|双
BoxConstraint
- - - - - -箱约束
1(默认)|积极的标量
框约束,指定为包含的逗号分隔对“BoxConstraint”
一个正的标量。
此参数仅在以下情况下有效“学习者”
是“支持向量机”
(默认值),并且您没有为正则化术语强度指定值“λ”
。你可以指定“BoxConstraint”
或“λ”
因为方框约束(
例子:“BoxConstraint”,100年
数据类型:单
|双
λ
- - - - - -正则化项强度
“汽车”
(默认)|负的标量
正则化项强度,指定为由逗号分隔的对组成“λ”
和“汽车”
或者是非负的标量。
为“汽车”
的价值λ
是1 /
当学习者
是“支持向量机”
,您可以指定其中一个BoxConstraint
或λ
因为方框约束(
例子:“λ”,0.01
数据类型:字符
|字符串
|单
|双
CrossVal
- - - - - -训练交叉验证分类器的标志
“关闭”
(默认)|“上”
标记,用于训练交叉验证的分类器,指定为包含的逗号分隔对“Crossval”
和“上”
或“关闭”
。
如果你指定“上”
,然后软件训练一个交叉验证的分类器。
方法覆盖此交叉验证设置CVPartition
,坚持
,KFold
,或Leaveout
名称-值对参数。一次只能使用一个交叉验证的名称-值对参数来创建交叉验证的模型。
例子:“Crossval”,“上”
CVPartition
- - - - - -交叉验证分区
[]
(默认)|cvpartition
分区对象
交叉验证分区,指定为cvpartition
创建的分区对象cvpartition
。分区对象指定交叉验证的类型以及训练集和验证集的索引。
要创建一个交叉验证的模型,你只能指定以下四个名称-值参数中的一个:CVPartition
,坚持
,KFold
,或Leaveout
。
例子:假设您创建了一个随机分区,在500个观察值上进行5次交叉验证cvp = cvpartition(500,'KFold',5)
。然后,您可以通过使用来指定交叉验证模型“CVPartition”,本量利
。
坚持
- - - - - -保留验证的数据部分
(0,1)范围内的标量值
用于保留验证的数据的一部分,指定为(0,1)范围内的标量值。如果你指定‘坚持’,p
,然后软件完成以下步骤:
随机抽取和保留
p * 100
%的数据作为验证数据,并使用其余数据训练模型。将紧凑的训练过的模型存储在
训练有素的
交叉验证模型的属性。
要创建一个交叉验证的模型,你只能指定以下四个名称-值参数中的一个:CVPartition
,坚持
,KFold
,或Leaveout
。
例子:“坚持”,0.1
数据类型:双
|单
KFold
- - - - - -折叠数
10
(默认)|大于1的正整数
在交叉验证模型中使用的折叠数,指定为大于1的正整数值。如果你指定KFold, k
,然后软件完成以下步骤:
将数据随机划分为
k
集。对于每一个集合,保留一个集合作为验证数据,使用另一个集合训练模型
k
- 1集。存储
k
紧凑,训练模型在ak
- × 1的单元向量训练有素的
交叉验证模型的属性。
要创建一个交叉验证的模型,你只能指定以下四个名称-值参数中的一个:CVPartition
,坚持
,KFold
,或Leaveout
。
例子:“KFold”,5
数据类型:单
|双
Leaveout
- - - - - -留一个交叉验证标志
“关闭”
(默认)|“上”
留一个交叉验证标志,指定为由逗号分隔的对“Leaveout”
和“上”
或“关闭”
。如果你指定“Leaveout”,“上”
,然后,对于每一个
保留观测值作为验证数据,使用另一个来训练模型
n - 1次观察。存储
n 紧凑,训练模型的细胞n - × 1的单元向量训练有素的
交叉验证模型的属性。
要创建一个交叉验证的模型,你可以只使用以下四个名称-值对参数之一:CVPartition
,坚持
,KFold
,或Leaveout
。
例子:“Leaveout”,“上”
BetaTolerance
- - - - - -线性系数和偏置项的相对容差
1的军医
(默认)|负的标量
线性系数和偏置项(截距)的相对容差,指定为非负标量。
让
,即优化迭代时的系数向量和偏置项
如果你还指定GradientTolerance
,则当软件满足任一停止准则时,优化终止。
例子:BetaTolerance = 1 e-6
数据类型:单
|双
GradientTolerance
- - - - - -绝对梯度容差
1 e-6
(默认)|负的标量
绝对梯度容差,指定为非负标量。
让
为优化迭代时目标函数相对于系数和偏置项的梯度向量
如果你还指定BetaTolerance
,则当软件满足任一停止准则时,优化终止。
例子:GradientTolerance = 1 e-5
数据类型:单
|双
IterationLimit
- - - - - -优化迭代的最大次数
正整数
优化迭代的最大次数,指定为正整数。
如果转换后的数据适合内存,则默认值为1000BlockSize
名称-值参数。否则,默认值为100。
例子:IterationLimit = 500
数据类型:单
|双
BlockSize
- - - - - -分配的最大内存量
4 e ^ 3
(4 gb)(默认)|积极的标量
分配的最大内存量(以兆字节为单位),指定为由“BlockSize”
一个正的标量。
如果fitckernel
需要比的值更多的内存“BlockSize”
为了保存转换后的预测器数据,软件使用块策略。有关块策略的详细信息,请参见算法。
例子:e4 BlockSize, 1
数据类型:单
|双
RandomStream
- - - - - -随机数流
全球流(默认)|随机流对象
用于再现数据转换的随机数流,指定为随机流对象。有关详情,请参阅随机特征扩展。
使用RandomStream
的随机基函数fitckernel
将预测器数据转换为高维空间。有关详情,请参阅使用RandStream管理全局流和创建和控制随机数流。
例子:RandomStream = RandStream(“mlfg6331_64”)
HessianHistorySize
- - - - - -Hessian近似的历史缓冲区大小
15
(默认)|正整数
Hessian近似的历史缓冲区的大小,指定为由逗号分隔的对组成“HessianHistorySize”
一个正整数。在每次迭代中,fitckernel
利用最新的统计数据组成黑森近似HessianHistorySize
迭代。
例子:“HessianHistorySize”,10
数据类型:单
|双
详细的
- - - - - -冗长的水平
0
(默认)|1
详细级别,指定为由逗号分隔的对“详细”
,要么0
或1
。详细的
控制在命令行显示诊断信息。
价值 | 描述 |
---|---|
0 |
fitckernel 不显示诊断信息。 |
1 |
fitckernel 显示和存储目标函数的值,梯度幅度,和其他诊断信息。FitInfo。历史 包含诊断信息。 |
例子:“详细”,1
数据类型:单
|双
CategoricalPredictors
- - - - - -分类预测表
正整数向量|逻辑向量|字符矩阵|字符串数组|字符向量的单元数组|“所有”
分类预测器列表,指定为该表中的值之一。
价值 | 描述 |
---|---|
正整数向量 | 向量中的每个条目都是一个索引值,表明相应的预测器是分类的。索引值在1和之间 如果 |
逻辑向量 | 一个 |
字符矩阵 | 矩阵的每一行都是一个预测变量的名称。名称必须与中的条目匹配PredictorNames 。用额外的空格填充名称,使字符矩阵的每一行具有相同的长度。 |
字符向量的字符串数组或单元数组 | 数组中的每个元素都是一个预测变量的名称。名称必须与中的条目匹配PredictorNames 。 |
“所有” |
所有的预测都是绝对的。 |
默认情况下,如果预测器数据在表中(资源描述
),fitckernel
如果变量是逻辑向量、分类向量、字符数组、字符串数组或字符向量的单元数组,则假定它是分类的。如果预测数据是一个矩阵(X
),fitckernel
假设所有预测因子都是连续的。要将任何其他预测符标识为分类预测符,请使用CategoricalPredictors
名称-值参数。
对于已确定的分类预测因子,fitckernel
根据分类变量是无序的还是有序的,使用两种不同的模式创建虚拟变量。对于无序分类变量,fitckernel
为分类变量的每个级别创建一个虚拟变量。对于有序分类变量,fitckernel
创建的虚拟变量比类别的数量少一个。有关详情,请参阅自动创建虚拟变量。
例子:“CategoricalPredictors”、“所有”
数据类型:单
|双
|逻辑
|字符
|字符串
|细胞
一会
- - - - - -用于培训的类的名称
分类数组|字符数组|字符串数组|逻辑向量|数值向量|字符向量的单元数组
用于训练的类的名称,指定为分类、字符或字符串数组;向量:逻辑的或数字的向量;或者是字符向量的单元数组。一会
必须有相同的数据类型的响应变量在资源描述
或Y
。
如果一会
是字符数组,则每个元素必须对应于数组的一行。
使用一会
:
指定培训期间的课程顺序。
指定与类顺序对应的任何输入或输出参数维度的顺序。例如,使用
一会
指定维度的顺序成本
返回的分类分数的列顺序预测
。选择一个类的子集进行训练。例如,假设中所有不同类名的集合
Y
是(“a”、“b”、“c”)
。使用来自类的观察来训练模型“一个”
和“c”
只是,指定“类名”,(“a”、“c”)
。
的默认值一会
是响应变量中所有不同类名的集合吗资源描述
或Y
。
例子:“类名”,(“b”,“g”)
数据类型:分类
|字符
|字符串
|逻辑
|单
|双
|细胞
成本
- - - - - -误分类代价
方阵|结构数组
误分类代价,指定为由逗号分隔的对组成“成本”
一个方阵或结构。
的默认值成本
是(
,在那里K
) -眼睛(K
)K
是不同类的数量。
fitckernel
使用成本
中指定的先验类概率之前
。然后,fitckernel
使用调整后的先验概率进行训练。
例子:“成本”,[0 2;1 0]
数据类型:单
|双
|结构体
PredictorNames
- - - - - -预测变量名称
唯一名称的字符串数组|唯一字符向量的单元数组
预测变量名称,指定为唯一名称的字符串数组或唯一字符向量的单元格数组。的功能PredictorNames
这取决于你提供训练数据的方式。
如果你提供
X
和Y
,那么你可以使用PredictorNames
中的预测变量指定名称X
。名字的顺序
PredictorNames
必须对应于的列顺序X
。也就是说,PredictorNames {1}
是…的名字X (: 1)
,PredictorNames {2}
是…的名字X (:, 2)
等等。同时,大小(X, 2)
和元素个数(PredictorNames)
必须是相等的。默认情况下,
PredictorNames
是{x1, x2,…}
。
如果你提供
资源描述
,那么你可以使用PredictorNames
选择在训练中使用哪些预测变量。也就是说,fitckernel
中只使用预测变量PredictorNames
以及训练时的反应变量。PredictorNames
一定是的子集Tbl.Properties.VariableNames
并且不能包含响应变量的名称。默认情况下,
PredictorNames
包含所有预测变量的名称。一个好的实践是使用其中一种来指定训练的预测器
PredictorNames
或公式
,但不是两者都有。
例子:“PredictorNames”(“SepalLength”、“SepalWidth”,“PetalLength”,“PetalWidth”)
数据类型:字符串
|细胞
之前
- - - - - -先验概率
“经验”
(默认)|“统一”
|数值向量|结构数组
每个类的先验概率,指定为由逗号分隔的对“之前”
和“经验”
,“统一”
、数字向量或结构数组。
此表总结了设置先验概率的可用选项。
价值 | 描述 |
---|---|
“经验” |
类先验概率是类的相对频率Y 。 |
“统一” |
所有的类先验概率都等于1/K ,在那里K 是类的数量。 |
数值向量 | 每个元素都是一个类先验概率。按元素在里面的顺序排列Y 。指定顺序“类名” 名称-值对参数,然后对元素进行相应排序。 |
结构数组 | 一个结构
|
fitckernel
归一化的先验概率之前
和为1。
例子:“之前”,结构(“类名”,{{“setosa”、“癣”}},ClassProbs, 1:2)
数据类型:字符
|字符串
|双
|单
|结构体
ResponseName
- - - - - -响应变量名称
“Y”
(默认)|特征向量|字符串标量
响应变量名称,指定为字符向量或字符串标量。
如果你提供
Y
,那么你可以使用ResponseName
为响应变量指定一个名称。如果你提供
ResponseVarName
或公式
,那么你就不能使用ResponseName
。
例子:“ResponseName”、“反应”
数据类型:字符
|字符串
ScoreTransform
- - - - - -分数转换
“没有”
(默认)|“doublelogit”
|“invlogit”
|“ismax”
|“分对数”
|函数处理|……
分数转换,指定为字符向量、字符串标量或函数句柄。
这个表总结了可用的字符向量和字符串标量。
价值 | 描述 |
---|---|
“doublelogit” |
1 / (1 + |
“invlogit” |
日志( |
“ismax” |
将得分最高的类的得分设置为1,并将所有其他类的得分设置为0 |
“分对数” |
1 / (1 + |
“没有” 或“身份” |
x(转换) |
“标志” |
1 为0 1 |
“对称” |
2 |
“symmetricismax” |
将得分最高的类的得分设置为1,并将所有其他类的得分设置为-1 |
“symmetriclogit” |
2 / (1 + |
对于MATLAB函数或您定义的函数,使用其函数句柄进行分数变换。函数句柄必须接受一个矩阵(原始分数)并返回一个相同大小的矩阵(转换后的分数)。
例子:“ScoreTransform”、“分对数”
数据类型:字符
|字符串
|function_handle
权重
- - - - - -观察权重
非负数值向量|中的变量名称资源描述
OptimizeHyperparameters
- - - - - -需要优化的参数
“没有”
(默认)|“汽车”
|“所有”
|符合条件的参数名称的字符串数组或单元格数组|向量的optimizableVariable
对象
要优化的参数,指定为由逗号分隔的对“OptimizeHyperparameters”
其中一个值是:
“没有”
—不优化。“汽车”
——使用{“KernelScale”、“λ”}
。“所有”
—优化所有符合条件的参数。符合条件的参数名称的单元格数组。
向量的
optimizableVariable
对象的输出hyperparameters
。
的交叉验证损失(错误)最小化fitckernel
通过改变参数。控件来控制交叉验证类型和优化的其他方面HyperparameterOptimizationOptions
名称-值对参数。
请注意
的值“OptimizeHyperparameters”
覆盖使用其他名称-值参数指定的任何值。例如,设置“OptimizeHyperparameters”
来“汽车”
原因fitckernel
的超参数“汽车”
选项并忽略超参数的任何指定值。
的合格参数fitckernel
是:
KernelScale
- - - - - -fitckernel
在正值中搜索,默认情况下在范围内按对数缩放(1 e - 3, 1 e3)
。λ
- - - - - -fitckernel
在正值中搜索,默认情况下在范围内按对数缩放(1 e - 3, 1 e3) / n
,在那里n
是观测值的个数。学习者
- - - - - -fitckernel
搜索中“支持向量机”
和“物流”
。NumExpansionDimensions
- - - - - -fitckernel
在正整数中搜索,默认情况下在范围内按对数缩放(100、10000)
。
通过传递的向量来设置非默认参数optimizableVariable
具有非默认值的对象。例如:
负载fisheriris参数=超参数(“fitckernel”量,物种);参数(2)。Range = [1e-4,1e6];
通过参数个数
的值“OptimizeHyperparameters”
。
默认情况下,迭代显示出现在命令行,并根据优化中超参数的数量出现绘图。对于优化和图,目标函数为误分类率。要控制迭代显示,请设置详细的
田野“HyperparameterOptimizationOptions”
名称-值参数。要控制情节,设置ShowPlots
田野“HyperparameterOptimizationOptions”
名称-值参数。
使用示例请参见优化核分类器。
例子:“OptimizeHyperparameters”、“汽车”
HyperparameterOptimizationOptions
- - - - - -优化选项
结构
优化选项,指定为结构。的效果OptimizeHyperparameters
名称-值参数。结构中的所有字段都是可选的。
字段名 | 值 | 默认的 |
---|---|---|
优化器 |
|
“bayesopt” |
AcquisitionFunctionName |
获取函数的名称包括 |
“expected-improvement-per-second-plus” |
MaxObjectiveEvaluations |
目标函数评价的最大次数。 | 30. 为“bayesopt” 和“randomsearch” ,以及整个电网“gridsearch” |
MaxTime |
时间限制,指定为正实标量。时间限制以秒为单位,由 |
正 |
NumGridDivisions |
为“gridsearch” 表示每个维度中值的个数。该值可以是表示每个维度的值的正整数向量,也可以是适用于所有维度的标量。对于分类变量,此字段将被忽略。 |
10 |
ShowPlots |
指示是否显示图形的逻辑值。如果真正的 ,该字段根据迭代次数绘制最佳观测目标函数值。如果你使用贝叶斯优化(优化器 是“bayesopt” ),则该字段也绘制出最佳估计目标函数值。最佳观测目标函数值和最佳估计目标函数值对应于中的值BestSoFar(观察) 和BestSoFar (estim)。 列的迭代分别显示。您可以在属性中找到这些值ObjectiveMinimumTrace 和EstimatedObjectiveMinimumTrace 的Mdl。HyperparameterOptimizationResults 。如果问题包含一个或两个用于贝叶斯优化的优化参数,则ShowPlots 并根据参数绘制了目标函数的模型。 |
真正的 |
SaveIntermediateResults |
时是否保存结果的逻辑值优化器 是“bayesopt” 。如果真正的 ,此字段覆盖名为“BayesoptResults” 在每次迭代中。变量是aBayesianOptimization 对象。 |
假 |
详细的 |
在命令行显示:
详细信息请参见 |
1 |
UseParallel |
指示是否并行运行贝叶斯优化的逻辑值,这需要parallel Computing Toolbox™。由于并行时序的不可再现性,并行贝叶斯优化不一定产生可再现的结果。有关详情,请参阅并行贝叶斯优化。 | 假 |
重新分区 |
指示是否在每次迭代时重新划分交叉验证的逻辑值。如果这个字段是 设置 |
假 |
请使用以下三个选项中的一个。 | ||
CVPartition |
一个cvpartition 对象创建的cvpartition |
“Kfold”,5 如果未指定交叉验证字段 |
坚持 |
范围内的标量(0,1) 表示保留分数 |
|
Kfold |
大于1的整数 |
例子:“HyperparameterOptimizationOptions”、结构(MaxObjectiveEvaluations, 60)
数据类型:结构体
输出参数
Mdl
-训练核分类模型
ClassificationKernel
模型对象|ClassificationPartitionedKernel
交叉验证模型对象
经过训练的核分类模型,返回为ClassificationKernel
模型对象或ClassificationPartitionedKernel
交叉验证的模型对象。
如果您设置了任何名称-值对参数CrossVal
,CVPartition
,坚持
,KFold
,或Leaveout
,然后Mdl
是一个ClassificationPartitionedKernel
旨在分类器。否则,Mdl
是一个ClassificationKernel
分类器。
引用的属性Mdl
,使用点表示法。例如,输入Mdl。NumExpansionDimensions
在命令窗口中显示扩展空间的维数。
请注意
与其他分类模型不同,为了节省内存使用ClassificationKernel
模型对象不存储训练数据或训练过程细节(例如,收敛历史)。
FitInfo
-优化细节
结构数组
优化细节,作为结构数组返回,包括该表中描述的字段。字段包含最终值或名称-值对参数规范。
场 | 描述 |
---|---|
解算器 |
目标函数最小化技术: |
LossFunction |
损失函数。要么“枢纽” 或分对数的 根据模型的类型进行线性分类。看到学习者 。 |
λ |
正则化项强度。看到λ 。 |
BetaTolerance |
对线性系数和偏置项的相对容差。看到BetaTolerance 。 |
GradientTolerance |
绝对梯度容差。看到GradientTolerance 。 |
ObjectiveValue |
优化终止时目标函数的值。分类损失加上正则化项组成目标函数。 |
GradientMagnitude |
优化终止时目标函数梯度向量的无穷范数。看到GradientTolerance 。 |
RelativeChangeInBeta |
优化终止时线性系数和偏置项的相对变化。看到BetaTolerance 。 |
FitTime |
将模型拟合到数据所需的经过的时钟时间(以秒为单位)。 |
历史 |
优化信息历史记录。此字段为空([] ),如果您指定“详细”,0 。有关详情,请参阅详细的 和算法。 |
要访问字段,请使用点表示法。例如,要访问每次迭代的目标函数值向量,请输入FitInfo。ObjectiveValue
在命令窗口中。
一个好的做法是检查FitInfo
评估收敛是否令人满意。
HyperparameterOptimizationResults
-超参数交叉验证优化
BayesianOptimization
对象|超参数表及其值
超参数的交叉验证优化,作为返回BayesianOptimization
对象或包含超参数和相关值的表。的值时,输出是非空的“OptimizeHyperparameters”
不是“没有”
。输出值取决于优化器
的字段值。“HyperparameterOptimizationOptions”
名称-值对参数:
的价值优化器 场 |
的价值HyperparameterOptimizationResults |
---|---|
“bayesopt” (默认) |
类别对象BayesianOptimization |
“gridsearch” 或“randomsearch” |
使用的超参数表,观察到的目标函数值(交叉验证损失),以及观察值从最低(最好)到最高(最差)的排序 |
更多关于
随机特征扩展
随机功能扩展,如随机厨房水槽[1]或快餐[2]是一种近似核分类算法中的高斯核的方案,以一种计算效率高的方式用于大数据。随机特征扩展对于具有大型训练集的大数据应用更实用,但也可以应用于适合内存的较小数据集。
核分类算法在将特征映射到高维空间后,寻找一个最优的超平面,将数据分成两类。在低维空间中不可线性分离的非线性特征在扩展的高维空间中是可分离的。超平面分类的所有计算都只使用点积。下载188bet金宝搏通过替换点积,可以得到一个非线性分类模型x1x2'用非线性核函数
,在那里
随机特征展开方案找到一个随机变换,使其点积接近高斯核。也就是说,
在哪里T(
在哪里
样本取自
和
快餐方案引入了另一个随机基础日志
p)并将存储空间减少到O(
的值NumExpansionDimensions
和KernelScale
的名称-值参数fitckernel
,分别。
的fitckernel
函数使用Fastfood方案进行随机特征展开,并使用线性分类训练高斯核分类模型。不像fitcsvm
函数,这需要计算fitckernel
只需要形成一个有大小的矩阵
箱约束
框约束是一个参数,它控制对违反边界的观测施加的最大惩罚,并有助于防止过拟合(正则化)。增加盒子约束可以导致更长的训练时间。
方框约束(
提示
算法
fitckernel
利用有限记忆Broyden-Fletcher-Goldfarb-Shanno (LBFGS)求解器最小化正则化目标函数。l 2)正规化。要查找用于训练的LBFGS解算器的类型,键入FitInfo。解算器
在命令窗口中。“LBFGS-fast”
- LBFGS求解器。“LBFGS-blockwise”
- LBFGS求解器与一个块明智的策略。如果fitckernel
需要比的值更多的内存BlockSize
为了保存转换后的预测器数据,该函数使用分块策略。“LBFGS-tall”
- LBFGS求解器与一个块明智的策略为高阵列。
当
fitckernel
它采用分块策略,通过在每次迭代时将损失和梯度的计算分布到数据的不同部分来实现LBFGS。同时,fitckernel
通过将模型局部拟合到部分数据中,并通过平均方法将系数组合在一起,从而改进线性系数和偏差项的初始估计。如果你指定“详细”,1
,然后fitckernel
显示每个数据传递的诊断信息,并将该信息存储在历史
领域的FitInfo
。当
fitckernel
不使用分块策略,初始估计为零。如果你指定“详细”,1
,然后fitckernel
控件中显示每个迭代的诊断信息并将信息存储在历史
领域的FitInfo
。如果您指定
成本
,之前
,权重
参数时,输出模型对象将指定值存储在成本
,之前
,W
属性,分别。的成本
属性存储用户指定的成本矩阵(C ),无需修改。的之前
和W
属性分别存储归一化后的先验概率和观测值权重。对于模型训练,软件更新先验概率和观察权重,以纳入代价矩阵中描述的惩罚。有关详情,请参阅错误分类代价矩阵,先验概率和观察权重。
参考文献
B. Rahimi, A.和B. Recht。大型核机器的随机特征。
[2] Le, Q., T. Sarlós和A. Smola。快餐-在线性时间内近似内核展开。
[3] Huang, P. S., H. Avron, T. N. Sainath, V. Sindhwani和B. Ramabhadran。“核方法在TIMIT上匹配深度神经网络。”
扩展功能
高大的数组
使用行数超过内存容量的数组进行计算。
使用注意事项和限制:
fitckernel
不支持高金宝app表格
数据。与内存中的默认值相比,某些名称-值对参数具有不同的默认值
fitckernel
函数。金宝app支持的名称-值对参数及其差异如下:“学习者”
“NumExpansionDimensions”
“KernelScale”
“BoxConstraint”
“λ”
“BetaTolerance”
—默认值放宽为1 e - 3
。“GradientTolerance”
—默认值放宽为1 e-5
。“IterationLimit”
—默认值放宽为20.
。“BlockSize”
“RandomStream”
“HessianHistorySize”
“详细”
—默认值为1
。“类名”
“成本”
“之前”
“ScoreTransform”
“重量”
—Value必须为tall数组。“OptimizeHyperparameters”
“HyperparameterOptimizationOptions”
-对于交叉验证,只支持tall优化金宝app“坚持”
验证。默认情况下,软件选择并保留20%的数据作为保留验证数据,并使用其余数据训练模型。可以通过使用此参数为保留分数指定一个不同的值。例如,指定“HyperparameterOptimizationOptions”、结构(“抵抗”,0.3)
保留30%的数据作为验证数据。
如果
“KernelScale”
是“汽车”
,然后fitckernel
控制的随机流tallrng
二次抽样。为了再现性,必须为全局流和由控制的随机流设置随机数种子tallrng
。如果
“λ”
是“汽车”
,然后fitckernel
可能需要额外通过数据来计算观察值的数量X
。fitckernel
使用分块策略。有关详情,请参阅算法。
有关更多信息,请参见高大的数组。
自动平行支撑金宝app
通过使用并行计算工具箱™自动运行并行计算来加速代码。
执行并行超参数优化,请使用“HyperparameterOptimizationOptions”、结构(UseParallel,真的)
类调用中的名称-值参数fitckernel
函数。
有关并行超参数优化的更多信息,请参见并行贝叶斯优化。
有关并行计算的一般信息,请参见运行MATLAB函数与自动并行支持金宝app(并行计算工具箱)。
版本历史
在R2017b中引入
MATLAB命令
您点击了与此MATLAB命令对应的链接:
通过在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
你亦可选择下列网址:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家网站没有针对您所在位置的访问进行优化。