包:classreg.learning.partition
超类:ClassificationPartitionedModel
用于高维数据多类分类的交叉验证线性纠错输出码模型
ClassificationPartitionedLinearECOC
是一组由线性分类模型组成的纠错输出码(ECOC)模型,在交叉验证褶皱上训练。使用一个或多个“kfold”函数进行交叉验证,估计分类的质量:kfoldPredict
,kfoldLoss
,Kfoldmargin.
,kfoldEdge
.
每一种“kfold”方法都使用在折叠观测中训练的模型来预测折叠观测的响应。例如,假设您使用5倍交叉验证。在这种情况下,软件将每个观察结果随机分成五个大小大致相同的组。的培训褶皱包含四组(即大约4/5的数据)和测试褶皱包含另一组(即大约1/5的数据)。在本例中,交叉验证按如下步骤进行。
软件训练第一个模型(存储在CVMdl。训练有素的{1}
),使用后四组的观察结果,保留第一组的观察结果作验证。
软件训练第二个模型(存储在CVMdl。训练有素的{2}
),使用第一组和最后三组的观察结果。该软件保留第二组的观察结果以供验证。
对于第三、第四和第五种模型,软件以类似的方式进行。
如果您通过调用kfoldPredict
,它使用第一个模型,第2组用于第二模型的第1组的观察的预测,等等。简而言之,软件估计使用没有该观察的模型训练的模型对每个观察的响应。
请注意
ClassificationPartitionedLinearECOC
模型对象不存储预测数据集。
CVMdl = fitcecoc (X, Y,“学习者”,t,名称,值)
返回一个交叉验证的线性ECOC模型:
t
是“线性”
或返回的模板对象templateLinear
.
的名字
是其中之一“CrossVal”
,“CVPartition”
,“坚持”
,或“KFold”
.
有关详细信息,请参见fitcecoc
.
CrossValidatedModel
- - - - - -旨在模型名称交叉验证的模型名称,指定为字符向量。
例如,“ECOC”
指定一个交叉验证的ECOC模型。
数据类型:字符
KFold
- - - - - -交叉验证折叠数量交叉验证折叠的数量,指定为正整数。
数据类型:双
ModelParameters
- - - - - -交叉验证参数值交叉验证参数值,例如,用于交叉验证作为对象指定的ECOC分类器的名称-值对参数值。ModelParameters
不包含估计参数。
访问的属性ModelParameters
使用点符号。
NumObservations
- - - - - -数量的观察训练数据中的观测数,指定为正数值标量。
数据类型:双
分区
- - - - - -数据分区cvpartition
模型数据分区,指示软件如何将数据分割成交叉验证折叠,指定为cvpartition
模型。
训练有素的
- - - - - -经过交叉验证褶皱训练的紧凑分类器CompactClassificationECOC
模型在交叉验证折叠上训练的紧凑分类器,指定为单元格数组CompactClassificationECOC
模型。训练有素的
有k细胞,k为折叠次数。
数据类型:细胞
W
- - - - - -观察权重用于交叉验证模型的观察权重,指定为数字向量。W
有NumObservations
元素。
该软件将用于训练的重量标准化为此sum (W, omitnan)
是1
.
数据类型:单
|双
Y
- - - - - -观察到的类标签观察到的类标签用于交叉验证模型、指定为类别或字符数组、逻辑或数字向量或字符向量的单元格数组。Y
有NumObservations
元素,以及与输入参数相同的数据类型Y
你通过了fitcecoc
交叉验证模型。(该软件将字符串数组视为字符向量的单元格数组。)
每一行的Y
表示预测数据中观测值的观测分类。
数据类型:字符
|细胞
|分类
|逻辑
|单
|双
BinaryY
- - - - - -二元学习者类别标签[]
二进制学习者类标签,指定为数字矩阵或[]
.
如果编码矩阵在折叠中是相同的,那么BinaryY
是一个NumObservations
——- - - - - -l矩阵,其中l为二元学习者的人数(大小(CodingMatrix, 2)
).
的元素BinaryY
是-1
,0
,或1
,该值对应于二分类赋值。这个表描述了如何学习j
分配的观察k
对对应于价值的二分法类BinaryY (k, j)
.
价值 | 两个类的任务 |
---|---|
1 |
学习者j 分配的观察k 给负类。 |
0 |
在培训之前,学习者j 删除的观察k 从数据集。 |
1 |
学习者j 分配的观察k 一个积极的班级。 |
如果编码矩阵随着折叠而变化,那么BinaryY
是空的([]
).
数据类型:双
CodingMatrix
- - - - - -指定课堂作业的代码[]
为二进制学习者指定课堂作业的代码,指定为数字矩阵或[]
.
如果编码矩阵在折叠中是相同的,那么CodingMatrix
是一个K——- - - - - -l矩阵。K班级的数量是多少l是二元学习者的数量。
的元素CodingMatrix
是-1
,0
,或1
,该值对应于二分类赋值。这个表描述了如何学习j
在课堂上分配观察我
对对应于价值的二分法类CodingMatrix (i, j)
.
价值 | 两个类的任务 |
---|---|
1 |
学习者j 在课堂上分配观察我 给负类。 |
0 |
在培训之前,学习者j 删除类中的观察值我 从数据集。 |
1 |
学习者j 在课堂上分配观察我 一个积极的班级。 |
如果编码矩阵随着折叠而变化,那么CodingMatrix
是空的([]
).的方法得到每个折叠的编码矩阵训练有素的
财产。例如,CVMdl.Trained {1} .CodingMatrix
是交叉验证的ECOC模型的第一折叠中的编码矩阵CVMdl
.
数据类型:双
|单
|int8
|int16
|int32
|int64
CategoricalPredictors
- - - - - -分类预测指标[]
分类预测索引指定为正整数的向量。假设预测器数据包含行中的观察,CategoricalPredictors
包含与包含分类预测器的预测器数据列对应的索引值。如果没有任何预测器是绝对的,则此属性为空([]
).
数据类型:单
|双
一会
- - - - - -独特的类标签训练中使用的唯一类标签,指定为类别或字符数组、逻辑或数字向量或字符向量的单元数组。一会
具有与类标签相同的数据类型Y
.(该软件将字符串数组视为字符向量的单元格数组。)一会
也决定了类的顺序。
数据类型:分类
|字符
|逻辑
|单
|双
|细胞
成本
- - - - - -误分类代价此属性是只读的。
误分类代价,指定为方阵数值矩阵。成本
有K行和列,其中K为类数。
成本(i, j)
将一个点分类的成本是多少j
如果它真正的阶级是我
.的行和列的顺序成本
中类的顺序一会
.
fitcecoc
在不同类型的二元学习者中,采用不同的误分类成本。
数据类型:双
预测
- - - - - -预测的名字预测器名称按照它们在预测器数据中的出现顺序,指定为字符向量的单元格数组。长度预测
等于培训数据中的变量数X
或资源描述
用作预测变量。
数据类型:细胞
之前
- - - - - -先前的概率此属性是只读的。
先验类概率,指定为数字向量。之前
元素的数量和类的数量一样多一会
,元素的顺序与类的顺序相对应一会
.
fitcecoc
在不同类型的二元学习者中,采用不同的误分类成本。
数据类型:双
ResponseName
- - - - - -响应变量名响应变量名,指定为字符向量。
数据类型:字符
ScoreTransform
- - - - - -分数转换函数“doublelogit”
|“invlogit”
|“ismax”
|分对数的
|“没有”
|函数处理|……用于预测分数的分数转换函数,指定为函数名或函数句柄。
对于线性分类模型和变换前,预测的分类评分为观测值x(行向量)f(x) =xβ+b,在那里β和b对应于Mdl。β
和Mdl。偏见
,分别。
例如,要将分数转换函数更改为:函数
,使用点表示法。
对于内置函数,输入此代码并替换函数
使用表中的值。
Mdl。ScoreTransform = '函数”;
价值 | 描述 |
---|---|
“doublelogit” |
1 /(1 +e2x) |
“invlogit” |
日志(x/ (1 -x)) |
“ismax” |
将分数最大的班级的分数设置为1,并将所有其他班级的分数设置为0 |
分对数的 |
1 /(1 +e- - - - - -x) |
“没有” 或“身份” |
x(转换) |
“标志” |
1x< 0 为0x= 0 1x> 0 |
“对称” |
2x- 1 |
“symmetricismax” |
将分数最大的班级的分数设置为1,并将所有其他班级的分数设置为-1 |
“symmetriclogit” |
2 / (1 +e- - - - - -x) - 1 |
对于一个MATLAB®函数或您定义的函数,输入其函数句柄。
Mdl。ScoreTransform = @函数;
函数
必须接受每个类的原始分数矩阵,然后返回一个大小相同的矩阵,表示每个类的转换分数。
数据类型:字符
|function_handle
kfoldEdge | 未用于训练的观测值的分类边缘 |
kfoldLoss | 训练中未使用的观察值的分类损失 |
Kfoldmargin. | 训练中未使用的观察值的分类边距 |
kfoldPredict | 预测未用于培训的观察标签 |
价值。要了解值类如何影响复制操作,请参见复制对象.
加载NLP数据集。
负载nlpdata
X
是预测数据的稀疏矩阵,和Y
是类标签的分类向量。
交叉验证一个多类,线性分类模型,可以识别哪个MATLAB®工具箱的文档网页是基于页面上的单词计数。
RNG(1);%的再现性CVMdl = fitcecoc (X, Y,“学习者”,“线性”,“CrossVal”,“上”)
CVMdl = ClassificationPartitionedLinearECOC CrossValidatedModel: 'LinearECOC' ResponseName: 'Y' NumObservations: 31572 KFold: 10 Partition: [1x1 cvpartition] ClassNames: [1x13 categorical] ScoreTransform: 'none'属性,方法
CVMdl
是一个ClassificationPartitionedLinearECOC
旨在模型。因为fitcecoc
默认情况下实现10倍交叉验证,CVMdl。训练有素的
含有10×1细胞向量十CompactClassificationECOC
包含训练ECOC模型的结果,ECOC模型由二元线性分类模型组成,每个折叠。
估计未折叠观测的标签,并通过传递估计泛化误差CVMdl
来kfoldPredict
和kfoldLoss
,分别。
Ooflabels = kfoldpredict(cvmdl);ge = kfoldloss(cvmdl)
通用电气(ge) = 0.0958
估计的泛化误差约为10%的误分类观测值。
要改善泛化错误,请尝试指定另一个求解器,如LBFGS。为了改变训练由线性分类模型组成的ECOC模型时的默认选项,使用templateLinear
,然后将模板传递给fitcecoc
.
为了确定ECOC模型的良好的套索惩罚强度,使用logistic回归学习者的线性分类模型,实现5倍交叉验证。
加载NLP数据集。
负载nlpdata
X
是预测数据的稀疏矩阵,和Y
是类标签的分类向量。
为简单起见,在所有的观察中使用“其他”标签Y
不“万博1manbetx模型”
,“dsp”
,或“通讯”
.
Y (~ (ismember (Y, {“万博1manbetx模型”,“dsp”,“通讯”}))) =“别人”;
创建一组11个对数间隔的正则化强度 通过 .
λ= logspace (7 2 11);
创建一个线性分类模型模板,指定使用逻辑回归学习者,使用套索惩罚的力量λ
,使用Sparsa训练,并降低目标函数梯度的容差1 e-8
.
t = templatelinear(“学习者”,“物流”,“规划求解”,“sparsa”,...“正规化”,“套索”,“λ”λ,'gradienttolerance'1 e-8);
旨在模型。要提高执行速度,可以调换预测器数据并指定观察结果在列中。
X = X ';rng (10);%的再现性CVMdl = fitcecoc (X, Y,“学习者”t'观察',“列”,“KFold”5);
CVMdl
是一个ClassificationPartitionedLinearECOC
模型。
解剖CVMdl
,以及其中的每个模型。
numECOCModels =元素个数(CVMdl.Trained)
numECOCModels = 5
ECOCMdl1 = CVMdl。训练有素的{1}
ECOCMdl1 = CompactClassificationECOC ResponseName: 'Y' ClassNames: [comm dsp 万博1manbetxsimulink others] ScoreTransform: 'none' BinaryLearners: {6×1 cell} CodingMatrix: [4×6 double]属性,方法
numCLModels =元素个数(ECOCMdl1.BinaryLearners)
numCLModels = 6
CLMdl1 = ECOCMdl1。BinaryLearners {1}
CLMdl1 = ClassificationLinear response: 'Y' ClassNames: [-1 1] ScoreTransform: 'logit' Beta: [34023×11 double] Bias: [-0.3169 -0.3169 -0.3168 -0.3168 -0.3167 -0.1725 -0.0805 -0.1762 -0.3450 -0.5174] Lambda: [1.0000e-07 3.1623e-07 1.1623e -05 1.0000e-04 3.1623e-04 1.0000e-03 0.0032 0.0100]“物流”属性,方法
因为fitcecoc
实现5倍交叉验证,CVMdl
包含一个5 × 1单元数组CompactClassificationECOC
软件在每次折叠时训练的模型。的BinaryLearners
每个人的财产CompactClassificationECOC
模型包含了ClassificationLinear
模型。的数量ClassificationLinear
每个紧凑ECOC型号内的型号取决于不同的标签和编码设计的数量。因为λ
你能想到一个正规化强度的序列吗CLMdl1
作为11个型号,一个用于每个正则化强度λ
.
通过绘制每个正则化强度的5倍分类误差的平均值,确定模型的泛化程度。确定正则化强度,使网格上的泛化误差最小化。
ce = kfoldLoss (CVMdl);图;plot(log10(Lambda),log10(ce)) [~,minCEIdx] = min(ce);minLambda =λ(minCEIdx);持有在情节(log10 (minLambda) log10 (ce (minCEIdx)),“罗”);ylabel ('log_{10} 5倍分类错误')包含(“log_{10}λ的)传说(MSE的,“最小分类错误”)举行从
利用整个数据集训练由线性分类模型组成的ECOC模型,并指定最小正则化强度。
t = templatelinear(“学习者”,“物流”,“规划求解”,“sparsa”,...“正规化”,“套索”,“λ”minLambda,'gradienttolerance'1 e-8);MdlFinal = fitcecoc (X, Y,“学习者”t'观察',“列”);
要估计新观测值的标签,请通过MdlFinal
和新的数据预测
.
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。万博1manbetx
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。