支持向量机(SVM)和其他分类器的多牌型号万博1manbetxgydF4y2Ba
Classifiedecoc.gydF4y2Ba
是一个gydF4y2Ba纠错输出代码(ECOC)分类器gydF4y2Ba对于多种多组学习,分类器由多个二进制学习者组成,例如支持向量机(SVM)。万博1manbetx训练有素gydF4y2BaClassifiedecoc.gydF4y2Ba
分类器存储培训数据,参数值,先前概率和编码矩阵。使用这些分类器执行任务,例如预测新数据的标签或后验概率(参见gydF4y2Ba预测gydF4y2Ba
)。gydF4y2Ba
创建一个gydF4y2BaClassifiedecoc.gydF4y2Ba
通过使用gydF4y2BaFitcecoc.gydF4y2Ba
.gydF4y2Ba
如果在不指定交叉验证选项的情况下指定线性或内核二进制学习者,则gydF4y2BaFitcecoc.gydF4y2Ba
返回一个gydF4y2BaCompactClassificeCoc.gydF4y2Ba
反对者。gydF4y2Ba
创建一个gydF4y2BaClassifiedecoc.gydF4y2Ba
模型对象,可以使用点表示法来访问其属性。例如,看到gydF4y2Ba使用SVM学习者列车多标配模型gydF4y2Ba.gydF4y2Ba
BinaryLearnersgydF4y2Ba
- - - - - -gydF4y2Ba训练有素的二进制学习者gydF4y2Ba培训的二进制学习者,指定为模型对象的单元格向量。二元学习者的数量取决于类的数量gydF4y2BaYgydF4y2Ba
并进行了编码设计。gydF4y2Ba
软件培训gydF4y2Babinarylearner {j}gydF4y2Ba
根据二进制问题指定gydF4y2BaCodingMatrixgydF4y2Ba
(:,j)gydF4y2Ba
.例如,对于使用SVM学习者的多字符学习,每个元素gydF4y2BaBinaryLearnersgydF4y2Ba
是A.gydF4y2BaCompactClassificationsVM.gydF4y2Ba
分类器。gydF4y2Ba
数据类型:gydF4y2Ba细胞gydF4y2Ba
BinaryLossgydF4y2Ba
- - - - - -gydF4y2Ba二元学习损失函数gydF4y2Ba“binodeviance”gydF4y2Ba
|gydF4y2Ba'指数'gydF4y2Ba
|gydF4y2Ba'汉明'gydF4y2Ba
|gydF4y2Ba'合页'gydF4y2Ba
|gydF4y2Ba'线性'gydF4y2Ba
|gydF4y2Ba分对数的gydF4y2Ba
|gydF4y2Ba'二次'gydF4y2Ba
二进制学习者丢失函数,指定为表示丢失函数名称的字符矢量。gydF4y2Ba
如果您使用使用不同丢失功能的二进制学习者训练,则软件集gydF4y2BaBinaryLossgydF4y2Ba
至gydF4y2Ba'汉明'gydF4y2Ba
.为了潜在地提高准确性,通过使用使用的预测或损耗计算期间,指定除默认之外的二进制损耗功能gydF4y2Ba'二元乐'gydF4y2Ba
名称 - 值对参数gydF4y2Ba预测gydF4y2Ba
或者gydF4y2Ba失利gydF4y2Ba
.gydF4y2Ba
数据类型:gydF4y2BachargydF4y2Ba
BinaryYgydF4y2Ba
- - - - - -gydF4y2Ba二进制学习者类标签gydF4y2Ba二进制学习者类标签,指定为数字矩阵。gydF4y2BaBinaryYgydF4y2Ba
是A.gydF4y2BaNumObservationsgydF4y2Ba
-经过-gydF4y2BalgydF4y2Ba矩阵,其中gydF4y2BalgydF4y2Ba是二进制学习者的数量(gydF4y2Ba长度(Mdl.BinaryLearners)gydF4y2Ba
)。gydF4y2Ba
要点gydF4y2BaBinaryYgydF4y2Ba
是gydF4y2Ba-1gydF4y2Ba
,gydF4y2Ba0gydF4y2Ba
, 或者gydF4y2Ba1gydF4y2Ba
,并且该值对应于二分法类分配。这张表描述了学习者的方式gydF4y2BajgydF4y2Ba
分配的观察gydF4y2BakgydF4y2Ba
对对应于价值的二分法类gydF4y2BaBinaryy(k,j)gydF4y2Ba
.gydF4y2Ba
价值gydF4y2Ba | 二分法班级任务gydF4y2Ba |
---|---|
-1gydF4y2Ba |
学习者gydF4y2BajgydF4y2Ba 分配的观察gydF4y2BakgydF4y2Ba 到一个负面的课程。gydF4y2Ba |
0gydF4y2Ba |
在培训之前,学习者gydF4y2BajgydF4y2Ba 去除观察gydF4y2BakgydF4y2Ba 从数据集。gydF4y2Ba |
1gydF4y2Ba |
学习者gydF4y2BajgydF4y2Ba 分配的观察gydF4y2BakgydF4y2Ba 积极的课程。gydF4y2Ba |
数据类型:gydF4y2Ba双倍的gydF4y2Ba
毕业生gydF4y2Ba
- - - - - -gydF4y2Ba数值预测器的Bin边缘gydF4y2Ba[]gydF4y2Ba
数字预测器的Bin边缘,指定为单元数组gydF4y2BapgydF4y2Ba数字向量,在哪里gydF4y2BapgydF4y2Ba是预测因子的数量。每个向量包括数值预测器的bin边缘。分类预测器的单元格数组中的元素是空的,因为软件没有装入分类预测器。gydF4y2Ba
只有当您指定gydF4y2Ba'numbins'gydF4y2Ba
名称 - 值对参数作为正整数标量培训与树学习者的模型。的gydF4y2Ba毕业生gydF4y2Ba
房产是空的gydF4y2Ba'numbins'gydF4y2Ba
Value为空(默认)。gydF4y2Ba
您可以重现Binned Predictor数据gydF4y2Baxbinned.gydF4y2Ba
通过使用gydF4y2Ba毕业生gydF4y2Ba
培训模型的财产gydF4y2BaMDL.gydF4y2Ba
.gydF4y2Ba
x = mdl.x;%predictor数据xbinned = zeros(size(x));边缘= mdl.bineges;%查找箱预测因子的指数。idxnumeric = find(〜cellfun(@ isempty,边));如果是iscumn(idxnumeric)idxnumeric = idxnumeric';j = idxnumeric x = x(:,j);如果x是表,%将x转换为数组。如果是Istable(x)x = table2array(x);结束%X通过使用X进入垃圾箱gydF4y2Ba离散化gydF4y2Ba
功能。xbinned =离散化(x,[ - inf;边缘{j}; inf]);Xbinned(:,j)= xbinned;结束gydF4y2Ba
xbinned.gydF4y2Ba
包含单位,范围为1到箱数,用于数字预测器。gydF4y2Baxbinned.gydF4y2Ba
对于分类预测器,值为0。如果gydF4y2BaXgydF4y2Ba
包含gydF4y2Ba南gydF4y2Ba
s,然后相应的gydF4y2Baxbinned.gydF4y2Ba
值是gydF4y2Ba南gydF4y2Ba
s。gydF4y2Ba
数据类型:gydF4y2Ba细胞gydF4y2Ba
CodingMatrixgydF4y2Ba
- - - - - -gydF4y2Ba类分配代码gydF4y2Ba二进制学习者的类分配代码,指定为数字矩阵。gydF4y2BaCodingMatrixgydF4y2Ba
是A.gydF4y2BaKgydF4y2Ba-经过-gydF4y2BalgydF4y2Ba矩阵,其中gydF4y2BaKgydF4y2Ba是班数和gydF4y2BalgydF4y2Ba是二元学习者的数量。gydF4y2Ba
元素gydF4y2BaCodingMatrixgydF4y2Ba
是gydF4y2Ba-1gydF4y2Ba
,gydF4y2Ba0gydF4y2Ba
, 或者gydF4y2Ba1gydF4y2Ba
,值对应于二分法类分配。这张表描述了学习者的方式gydF4y2BajgydF4y2Ba
在课堂上分配观察gydF4y2Ba我gydF4y2Ba
对对应于价值的二分法类gydF4y2BaCodingMatrix (i, j)gydF4y2Ba
.gydF4y2Ba
价值gydF4y2Ba | 二分法班级任务gydF4y2Ba |
---|---|
-1gydF4y2Ba |
学习者gydF4y2BajgydF4y2Ba 在课堂上分配观察gydF4y2Ba我gydF4y2Ba 到一个负面的课程。gydF4y2Ba |
0gydF4y2Ba |
在培训之前,学习者gydF4y2BajgydF4y2Ba 在课堂上删除观察gydF4y2Ba我gydF4y2Ba 从数据集。gydF4y2Ba |
1gydF4y2Ba |
学习者gydF4y2BajgydF4y2Ba 在课堂上分配观察gydF4y2Ba我gydF4y2Ba 积极的课程。gydF4y2Ba |
数据类型:gydF4y2Ba双倍的gydF4y2Ba
|gydF4y2Ba单身的gydF4y2Ba
|gydF4y2BaINT8.gydF4y2Ba
|gydF4y2Baint16gydF4y2Ba
|gydF4y2BaINT32.gydF4y2Ba
|gydF4y2BaINT64.gydF4y2Ba
codingname.gydF4y2Ba
- - - - - -gydF4y2Ba编码设计的名字gydF4y2Ba编码设计名称,指定为字符向量。有关更多详细信息,请参阅gydF4y2Ba编码设计gydF4y2Ba.gydF4y2Ba
数据类型:gydF4y2BachargydF4y2Ba
LearnerWeightsgydF4y2Ba
- - - - - -gydF4y2Ba二进制学习者权重gydF4y2Ba二进制学习者权重,指定为数字行向量。长度gydF4y2BaLeanerweights.gydF4y2Ba
等于二元学习者的数量(gydF4y2Ba长度(Mdl.BinaryLearners)gydF4y2Ba
)。gydF4y2Ba
学习者重量(J)gydF4y2Ba
是二进制学习者的观察权重的总和gydF4y2BajgydF4y2Ba
用于训练其分类器。gydF4y2Ba
软件使用gydF4y2BaLearnerWeightsgydF4y2Ba
通过最大限度地减少kullback-leibler分歧来适应后验概率。软件忽略了gydF4y2BaLearnerWeightsgydF4y2Ba
当它使用二次编程方法估算后验概率。gydF4y2Ba
数据类型:gydF4y2Ba双倍的gydF4y2Ba
|gydF4y2Ba单身的gydF4y2Ba
分类预测器gydF4y2Ba
- - - - - -gydF4y2Ba分类预测索引gydF4y2Ba[]gydF4y2Ba
分类预测索引指定为正整数的向量。gydF4y2Ba分类预测器gydF4y2Ba
包含与包含分类预测器的预测器数据列对应的索引值。如果没有预测器都是分类的,则此属性是空的(gydF4y2Ba[]gydF4y2Ba
)。gydF4y2Ba
数据类型:gydF4y2Ba单身的gydF4y2Ba
|gydF4y2Ba双倍的gydF4y2Ba
一会gydF4y2Ba
- - - - - -gydF4y2Ba独特的类标签gydF4y2Ba在培训中使用的唯一类标签,指定为分类或字符阵列,逻辑或数字矢量或字符向量的单元格数组。gydF4y2Ba一会gydF4y2Ba
具有与类标签相同的数据类型gydF4y2BaYgydF4y2Ba
.gydF4y2Ba(软件将字符串数组视为字符向量的单元数组。)gydF4y2Ba一会gydF4y2Ba
还确定了类顺序。gydF4y2Ba
数据类型:gydF4y2Ba分类gydF4y2Ba
|gydF4y2BachargydF4y2Ba
|gydF4y2Ba逻辑gydF4y2Ba
|gydF4y2Ba单身的gydF4y2Ba
|gydF4y2Ba双倍的gydF4y2Ba
|gydF4y2Ba细胞gydF4y2Ba
成本gydF4y2Ba
- - - - - -gydF4y2Ba错误分类成本gydF4y2Ba此属性是只读的。gydF4y2Ba
错误分类成本,指定为方形数字矩阵。gydF4y2Ba成本gydF4y2Ba
具有gydF4y2BaKgydF4y2Ba行和列,在哪里gydF4y2BaKgydF4y2Ba是课程的数量。gydF4y2Ba
成本(i,j)gydF4y2Ba
是将一个点分类为课程的成本gydF4y2BajgydF4y2Ba
如果它的真实课程是gydF4y2Ba我gydF4y2Ba
.行和列的顺序gydF4y2Ba成本gydF4y2Ba
对应于类的顺序gydF4y2Ba一会gydF4y2Ba
.gydF4y2Ba
Fitcecoc.gydF4y2Ba
在不同类型的二进制学习者中采用不同的错误分类代价。gydF4y2Ba
数据类型:gydF4y2Ba双倍的gydF4y2Ba
ExpandedPredictorNames.gydF4y2Ba
- - - - - -gydF4y2Ba扩展预测仪名称gydF4y2Ba扩展的预测器名称,指定为字符向量的单元格数组。gydF4y2Ba
如果模型使用对分类变量的编码,那么gydF4y2BaExpandedPredictorNames.gydF4y2Ba
包括描述扩展变量的名称。除此以外,gydF4y2BaExpandedPredictorNames.gydF4y2Ba
和gydF4y2Ba预测gydF4y2Ba
.gydF4y2Ba
数据类型:gydF4y2Ba细胞gydF4y2Ba
模特分析者gydF4y2Ba
- - - - - -gydF4y2Ba参数值gydF4y2Ba参数值,例如名称值对参数值,用于培训Ecoc分类器,指定为对象。gydF4y2Ba模特分析者gydF4y2Ba
不包含估计参数。gydF4y2Ba
访问的属性gydF4y2Ba模特分析者gydF4y2Ba
使用点表示法。例如,通过使用列出包含二进制学习者参数的模板gydF4y2Bamdl.modelparameters.binarylearner.gydF4y2Ba
.gydF4y2Ba
NumObservationsgydF4y2Ba
- - - - - -gydF4y2Ba观察次数gydF4y2Ba训练数据中的观察数,指定为一个正数标量。gydF4y2Ba
数据类型:gydF4y2Ba双倍的gydF4y2Ba
预测gydF4y2Ba
- - - - - -gydF4y2Ba预测者名称gydF4y2Ba以预测仪数据在其外观的顺序的预测器名称gydF4y2BaXgydF4y2Ba
,指定为字符向量的小区数组。长度gydF4y2Ba预测gydF4y2Ba
等于列数gydF4y2BaXgydF4y2Ba
.gydF4y2Ba
数据类型:gydF4y2Ba细胞gydF4y2Ba
事先的gydF4y2Ba
- - - - - -gydF4y2Ba先前的概率gydF4y2Ba此属性是只读的。gydF4y2Ba
先验类概率,指定为数值向量。gydF4y2Ba事先的gydF4y2Ba
具有与类的数量一样多的元素gydF4y2Ba一会gydF4y2Ba
,元素的顺序对应于类的顺序gydF4y2Ba一会gydF4y2Ba
.gydF4y2Ba
Fitcecoc.gydF4y2Ba
在不同类型的二进制学习者中采用不同的错误分类代价。gydF4y2Ba
数据类型:gydF4y2Ba双倍的gydF4y2Ba
ResponseNamegydF4y2Ba
- - - - - -gydF4y2Ba响应变量名称gydF4y2Ba响应变量名称,指定为字符向量。gydF4y2Ba
数据类型:gydF4y2BachargydF4y2Ba
流浪gydF4y2Ba
- - - - - -gydF4y2Ba适合的行gydF4y2Ba[]gydF4y2Ba
(默认)|gydF4y2Ba逻辑矢量gydF4y2Ba原始数据的行gydF4y2BaXgydF4y2Ba
用于适合拟合gydF4y2BaClassifiedecoc.gydF4y2Ba
模型,指定为逻辑向量。如果使用了所有行,则此属性为空。gydF4y2Ba
数据类型:gydF4y2Ba逻辑gydF4y2Ba
scoretransform.gydF4y2Ba
- - - - - -gydF4y2Ba用于预测分数的分数转换函数gydF4y2Ba'doublelogit'gydF4y2Ba
|gydF4y2Ba'invlogit'gydF4y2Ba
|gydF4y2Ba'ismax'gydF4y2Ba
|gydF4y2Ba分对数的gydF4y2Ba
|gydF4y2Ba“没有”gydF4y2Ba
|gydF4y2Ba函数处理gydF4y2Ba|......gydF4y2Ba分数转换功能适用于预测的分数,指定为函数名称或函数句柄。gydF4y2Ba
将分数转换函数更改为gydF4y2Ba功能gydF4y2Ba
例如,使用点表示法。gydF4y2Ba
对于内置功能,请输入此代码并替换gydF4y2Ba功能gydF4y2Ba
在表中的一个值。gydF4y2Ba
mdl.scoretransform ='gydF4y2Ba功能gydF4y2Ba'gydF4y2Ba
价值gydF4y2Ba | 描述gydF4y2Ba |
---|---|
'doublelogit'gydF4y2Ba |
1 /(1 +gydF4y2BaegydF4y2Ba-2gydF4y2BaxgydF4y2Ba)gydF4y2Ba |
'invlogit'gydF4y2Ba |
日志(gydF4y2BaxgydF4y2Ba/(1 -gydF4y2BaxgydF4y2Ba)))gydF4y2Ba |
'ismax'gydF4y2Ba |
将具有最大分数的类设置为1的分数,并将所有其他类的分数设置为0gydF4y2Ba |
分对数的gydF4y2Ba |
1 /(1 +gydF4y2BaegydF4y2Ba- - - - - -gydF4y2BaxgydF4y2Ba)gydF4y2Ba |
“没有”gydF4y2Ba 或者gydF4y2Ba'身份'gydF4y2Ba |
xgydF4y2Ba(转换)gydF4y2Ba |
'符号'gydF4y2Ba |
-1 for.gydF4y2BaxgydF4y2Ba<0gydF4y2Ba 0gydF4y2BaxgydF4y2Ba= 0gydF4y2Ba 1gydF4y2BaxgydF4y2Ba> 0.gydF4y2Ba |
'对称'gydF4y2Ba |
2gydF4y2BaxgydF4y2Ba- 1gydF4y2Ba |
'ymmetricismax'gydF4y2Ba |
将具有最大分数为1的类设置分数,并将所有其他类的分数设置为-1gydF4y2Ba |
'symmetriclogit'gydF4y2Ba |
2 /(1 +gydF4y2BaegydF4y2Ba- - - - - -gydF4y2BaxgydF4y2Ba) - 1gydF4y2Ba |
对于matlab.gydF4y2Ba®gydF4y2Ba函数或定义的函数输入其功能句柄。gydF4y2Ba
mdl.scoretransform = @gydF4y2Ba功能gydF4y2Ba;gydF4y2Ba
功能gydF4y2Ba
必须接受矩阵(原始分数)并返回相同大小的矩阵(转换的分数)。gydF4y2Ba
数据类型:gydF4y2BachargydF4y2Ba
|gydF4y2Bafunction_handlegydF4y2Ba
WgydF4y2Ba
- - - - - -gydF4y2Ba观察权重gydF4y2Ba用于训练Ecoc分类器的观察权重,指定为数字向量。gydF4y2BaWgydF4y2Ba
具有gydF4y2BaNumObservationsgydF4y2Ba
元素。gydF4y2Ba
该软件将用于训练的重量标准化为此gydF4y2BaNANSUM(W)gydF4y2Ba
是gydF4y2Ba1gydF4y2Ba
.gydF4y2Ba
数据类型:gydF4y2Ba单身的gydF4y2Ba
|gydF4y2Ba双倍的gydF4y2Ba
XgydF4y2Ba
- - - - - -gydF4y2Ba解体化的预测仪数据gydF4y2Ba用于培训ECOC分类器的解控算预测数据,指定为数字矩阵或表。gydF4y2Ba
每一排gydF4y2BaXgydF4y2Ba
对应于一个观察,并且每列对应于一个变量。gydF4y2Ba
数据类型:gydF4y2Ba单身的gydF4y2Ba
|gydF4y2Ba双倍的gydF4y2Ba
|gydF4y2Ba桌子gydF4y2Ba
YgydF4y2Ba
- - - - - -gydF4y2Ba观察到的类标签gydF4y2Ba观察到的类标签用于训练ECOC分类器,指定为分类或字符阵列,逻辑或数字矢量或字符向量的单元格数组。gydF4y2BaYgydF4y2Ba
具有gydF4y2BaNumObservationsgydF4y2Ba
元素并具有与输入参数相同的数据类型gydF4y2BaYgydF4y2Ba
的gydF4y2BaFitcecoc.gydF4y2Ba
.gydF4y2Ba(软件将字符串数组视为字符向量的单元数组。)gydF4y2Ba
每一排gydF4y2BaYgydF4y2Ba
表示观察到的相应行分类gydF4y2BaXgydF4y2Ba
.gydF4y2Ba
数据类型:gydF4y2Ba分类gydF4y2Ba
|gydF4y2BachargydF4y2Ba
|gydF4y2Ba逻辑gydF4y2Ba
|gydF4y2Ba单身的gydF4y2Ba
|gydF4y2Ba双倍的gydF4y2Ba
|gydF4y2Ba细胞gydF4y2Ba
HyperparameterOptimizationResultsgydF4y2Ba
- - - - - -gydF4y2Ba超公共比仪的交叉验证优化描述gydF4y2Ba贝叶斯偏见gydF4y2Ba
对象gydF4y2Ba|gydF4y2Ba桌子gydF4y2Ba封立参数的交叉验证优化的描述,指定为agydF4y2Ba贝叶斯偏见gydF4y2Ba
对象或超参数和关联值的表。如果是,则此属性为非空gydF4y2Ba'OptimizeHyperParameters'gydF4y2Ba
创建模型时,名称值对参数是非空的。的价值gydF4y2BaHyperparameterOptimizationResultsgydF4y2Ba
取决于gydF4y2Ba优化器gydF4y2Ba
田野gydF4y2BaHyperParameterOptimizationOptions.gydF4y2Ba
创建模型时的结构,如此表格中所述。gydF4y2Ba
的价值gydF4y2Ba优化器gydF4y2Ba 场地gydF4y2Ba |
的价值gydF4y2BaHyperparameterOptimizationResultsgydF4y2Ba |
---|---|
“bayesopt”gydF4y2Ba (默认)gydF4y2Ba |
类的对象gydF4y2Ba贝叶斯偏见gydF4y2Ba |
'gridsearch'gydF4y2Ba 或者gydF4y2Ba'randomsearch'gydF4y2Ba |
使用的超参数表,观察到的客观函数值(交叉验证丢失),以及从最低(最佳)到最高(最差)的观测等级gydF4y2Ba |
compareHoldoutgydF4y2Ba |
使用新数据比较两个分类模型的精度gydF4y2Ba |
袖珍的gydF4y2Ba |
减少多种误差校正输出代码(ECOC)模型的大小gydF4y2Ba |
crossvalgydF4y2Ba |
交叉验证多款纠错输出代码(ECOC)模型gydF4y2Ba |
丢弃普罗斯韦普万博1manbetx罗斯韦gydF4y2Ba |
丢弃ecoc模型万博1manbetx中线性SVM二元学习者的支持向量gydF4y2Ba |
边缘gydF4y2Ba |
多种误差校正输出代码(ECOC)模型的分类边gydF4y2Ba |
失利gydF4y2Ba |
多种误差输出代码(ECOC)模型的分类损失gydF4y2Ba |
利润gydF4y2Ba |
用于多款纠错输出代码(ECOC)模型的分类边缘gydF4y2Ba |
预测gydF4y2Ba |
使用多款纠错输出代码(ECOC)模型进行分类观察gydF4y2Ba |
resubEdgegydF4y2Ba |
用于多款纠错输出代码(ECOC)模型的重新提交分类边缘gydF4y2Ba |
resubLossgydF4y2Ba |
多类纠错输出码(ECOC)模型的再替代分类损失gydF4y2Ba |
重新提交gydF4y2Ba |
用于多款纠错输出代码(ECOC)模型的重新提交分类边缘gydF4y2Ba |
resubPredictgydF4y2Ba |
在多种误差校正输出代码(ECOC)模型中分类观察gydF4y2Ba |
使用支持向量机(SVM)二进制学习者培训多种误差校正输出代码(ECOC)模型。万博1manbetxgydF4y2Ba
装载Fisher的Iris数据集。指定预测器数据gydF4y2BaXgydF4y2Ba
和响应数据gydF4y2BaYgydF4y2Ba
.gydF4y2Ba
加载gydF4y2BafisheririsgydF4y2BaX =量;Y =物种;gydF4y2Ba
使用默认选项列车多种多组ECOC模型。gydF4y2Ba
mdl = fitcecoc(x,y)gydF4y2Ba
mdl = classificationecoc challactename:'y'patporicalpricictors:[] classNames:{setosa''versicolor''virginica'} scoreTransform:'none'binarylearners:{3x1 cell} codingname:'OneVSONE'属性,方法gydF4y2Ba
MDL.gydF4y2Ba
是A.gydF4y2BaClassifiedecoc.gydF4y2Ba
模型。默认,gydF4y2BaFitcecoc.gydF4y2Ba
使用SVM二进制学习者和一个与一个编码设计。你可以访问gydF4y2BaMDL.gydF4y2Ba
使用点表示法的属性。gydF4y2Ba
显示类名和编码设计矩阵。gydF4y2Ba
mdl.classnames.gydF4y2Ba
ans =gydF4y2Ba3x1细胞gydF4y2Ba{'setosa'} {'versicolor'} {'virginica'}gydF4y2Ba
codingmat = mdl.codingmatrix.gydF4y2Ba
CodingMat =gydF4y2Ba3×3gydF4y2Ba1 1 0 -1 0 1 0 -1gydF4y2Ba
一个针对三个类的一对一编码设计产生了三个二进制学习者。的列gydF4y2BacodingmatgydF4y2Ba
对应于学习者,并且行对应于类。班级订单与订单相同gydF4y2Bamdl.classnames.gydF4y2Ba
.例如,gydF4y2BaCodingMat (: 1)gydF4y2Ba
是gydF4y2Ba[1;-1;0]gydF4y2Ba
表明该软件使用分类为的所有观测结果训练第一个SVM二元学习器gydF4y2Ba'setosa'gydF4y2Ba
和gydF4y2Ba'versicolor'gydF4y2Ba
.因为gydF4y2Ba'setosa'gydF4y2Ba
对应于gydF4y2Ba1gydF4y2Ba
,这是积极的课程;gydF4y2Ba'versicolor'gydF4y2Ba
对应于gydF4y2Ba-1gydF4y2Ba
,所以它是否定类。gydF4y2Ba
您可以使用单元格索引和点表示法访问每个二进制学习器。gydF4y2Ba
Mdl。BinaryLearners {1}gydF4y2Ba%第一个二元学习者gydF4y2Ba
ans = classReg.Learning.classif.Comp.ClassificationsVM Recopdename:'Y'类分类:[] ClassNames:[-1 1] ScorEtransform:'None'Beta:[4x1 Double]偏置:1.4505内核参数:[1x1 struct]属性,方法gydF4y2Ba
计算重新提交的分类错误。gydF4y2Ba
错误= resubLoss (Mdl)gydF4y2Ba
错误= 0.0067.gydF4y2Ba
培训数据上的分类错误很小,但分类器可能是过度符合的模型。您可以使用跨验证分类器使用gydF4y2BacrossvalgydF4y2Ba
并计算交叉验证分类错误。gydF4y2Ba
使用支持向量机二元学习者训练ECOC分类器。然后,使用点表示法访问二进制学习者的属性,如估计参数。gydF4y2Ba
装载Fisher的Iris数据集。将花瓣尺寸指定为预测器和物种名称作为响应。gydF4y2Ba
加载gydF4y2BafisheririsgydF4y2BaX = MEAS(:,3:4);Y =物种;gydF4y2Ba
使用SVM二进制学习者和默认编码设计列车常规分类器(一个与-One)。标准化预测器并保存支持向量。万博1manbetxgydF4y2Ba
t = templatesvm(gydF4y2Ba'标准化'gydF4y2Ba,真的,gydF4y2Ba'save万博1manbetxsupportvectors'gydF4y2Ba,真的);predictornames = {gydF4y2Ba'petallength'gydF4y2Ba,gydF4y2Ba'petalwidth'gydF4y2Ba};ReplateName =gydF4y2Ba'irisspecies'gydF4y2Ba;ClassNames = {gydF4y2Ba'setosa'gydF4y2Ba,gydF4y2Ba'versicolor'gydF4y2Ba,gydF4y2Ba'virginica'gydF4y2Ba};gydF4y2Ba%指定类订单gydF4y2Bamdl = fitcecoc(x,y,gydF4y2Ba“学习者”gydF4y2Ba,t,gydF4y2Ba“ResponseName”gydF4y2Ba,ractorybeame,gydF4y2Ba......gydF4y2Ba“PredictorNames”gydF4y2Ba,预测,gydF4y2Ba'classnames'gydF4y2Ba,classnames)gydF4y2Ba
mdl = classificationecoc predictornames:{'petallength''petalwidth'} racitchename:'irisspecies'patporicalpricictors:[] classnames:{'setosa''versicolor''virginica'} scoreTransform:'none'binarylearners:{3x1 cell} codingname:'Onevsone'属性,方法gydF4y2Ba
tgydF4y2Ba
是一个包含SVM分类选项的模板对象。这个函数gydF4y2BaFitcecoc.gydF4y2Ba
为空的(gydF4y2Ba[]gydF4y2Ba
) 特性。gydF4y2BaMDL.gydF4y2Ba
是A.gydF4y2BaClassifiedecoc.gydF4y2Ba
分类器。您可以访问属性gydF4y2BaMDL.gydF4y2Ba
使用点表示法。gydF4y2Ba
显示类名和编码设计矩阵。gydF4y2Ba
mdl.classnames.gydF4y2Ba
ans =gydF4y2Ba3x1细胞gydF4y2Ba{'setosa'} {'versicolor'} {'virginica'}gydF4y2Ba
Mdl。CodingMatrixgydF4y2Ba
ans =gydF4y2Ba3×3gydF4y2Ba1 1 0 -1 0 1 0 -1gydF4y2Ba
列对应SVM二进制学习者,行对应不同的类。行顺序与。中的顺序相同gydF4y2Ba一会gydF4y2Ba
财产gydF4y2BaMDL.gydF4y2Ba
.每一列:gydF4y2Ba
1gydF4y2Ba
表示gydF4y2BaFitcecoc.gydF4y2Ba
使用相应类中的观察作为正组的成员进行培训SVM。gydF4y2Ba
-1gydF4y2Ba
表示gydF4y2BaFitcecoc.gydF4y2Ba
使用相应类中的观察作为负数组的成员培训SVM。gydF4y2Ba
0gydF4y2Ba
表示SVM不在相应类中使用观察。gydF4y2Ba
在第一个SVM中,例如,gydF4y2BaFitcecoc.gydF4y2Ba
分配所有观察gydF4y2Ba'setosa'gydF4y2Ba
或者gydF4y2Ba'versicolor'gydF4y2Ba
, 但不是gydF4y2Ba'virginica'gydF4y2Ba
.gydF4y2Ba
使用小区订户和点表示法访问SVM的属性。存储每个SVM的标准化支持向量。万博1manbetx解开支持向量。万博1manbetxgydF4y2Ba
l =大小(mdl.codingmatrix,2);gydF4y2Ba%支持向量机个数gydF4y2BaSV =细胞(L,1);gydF4y2Ba%预分配支持向量指数万博1manbetxgydF4y2Ba为了gydF4y2Baj = 1:L SVM = mdl . binary学习者{j};sv {j} = SVM万博1manbetx.SupportVectors;sv {j} = sv {j}。* SVM。σ+ SVM.Mu;gydF4y2Ba结束gydF4y2Ba
SV.gydF4y2Ba
是包含用于SVM的非标准化支持载体的基质阵列。万博1manbetxgydF4y2Ba
绘制数据,并识别支持向量。万博1manbetxgydF4y2Ba
图gscatter (X (: 1), (:, 2), Y);持有gydF4y2Ba上gydF4y2Ba标记= {gydF4y2Ba'ko'gydF4y2Ba,gydF4y2Ba'ro'gydF4y2Ba,gydF4y2Ba'博'gydF4y2Ba};gydF4y2Ba%应该是长度lgydF4y2Ba为了gydF4y2Baj = 1:l svs = sv {j};绘图(SVS(:,1),SVS(:,2),标记{J},gydF4y2Ba......gydF4y2Ba'Markersize'gydF4y2Ba,10 +(J - 1)* 3);gydF4y2Ba结束gydF4y2Ba标题(gydF4y2Ba'fisher'的虹膜 - ecoc支持vec万博1manbetxtors'gydF4y2Ba)xlabel(predictornames {1})ylabel(predictornames {2})图例([classnames,{gydF4y2Ba'万博1manbetx支持vectors - SVM 1'gydF4y2Ba,gydF4y2Ba......gydF4y2Ba'万博1manbetx支持向量 - SVM 2'gydF4y2Ba,gydF4y2Ba'万博1manbetx支持向量 - SVM 3'gydF4y2Ba}),gydF4y2Ba......gydF4y2Ba'地点'gydF4y2Ba,gydF4y2Ba“最佳”gydF4y2Ba) 抓住gydF4y2Ba离开gydF4y2Ba
你可以通过gydF4y2BaMDL.gydF4y2Ba
这些函数:gydF4y2Ba
预测gydF4y2Ba
,分类新观察gydF4y2Ba
resubLossgydF4y2Ba
,估算培训数据的分类错误gydF4y2Ba
crossvalgydF4y2Ba
,执行10倍的交叉验证gydF4y2Ba
使用SVM二进制学习者交叉验证ECOC分类器,并估计广义分类错误。gydF4y2Ba
装载Fisher的Iris数据集。指定预测器数据gydF4y2BaXgydF4y2Ba
和响应数据gydF4y2BaYgydF4y2Ba
.gydF4y2Ba
加载gydF4y2BafisheririsgydF4y2BaX =量;Y =物种;rng (1);gydF4y2Ba重复性的%gydF4y2Ba
创建SVM模板,并标准化预测器。gydF4y2Ba
t = templatesvm(gydF4y2Ba'标准化'gydF4y2Ba,真的)gydF4y2Ba
t =分类SVM的适合模板。alpha:[0x1 double] boxconstraint:[] cacheSize:[] cachingmethod:''clipalphas:[] settagradienttolerance:[] epsilon:[] gaptolerance:[] kkttolerance:[] kkttolerance:[] iterationLimit:[] ererationLimit:[] kernelfunction:'Kerneloffset:[] KernelPolynomialOrder:[] NumPrint:[] Nu:[] OutlieRFraction:[] recouptulaticates:[] ShrinkatePeriod:[] Solver:''标准化数据:1 SaveSupPortVectors:[] v万博1manbetxercoRyLevel:[]版本:2方法:2方法:2方法:2方法:'SVM'类型:'分类'gydF4y2Ba
tgydF4y2Ba
是一个svm模板。大多数模板对象属性都是空的。培训ECOC分类器时,软件将适用的属性设置为其默认值。gydF4y2Ba
培训ECOC分类器,并指定类顺序。gydF4y2Ba
mdl = fitcecoc(x,y,gydF4y2Ba“学习者”gydF4y2Ba,t,gydF4y2Ba......gydF4y2Ba'classnames'gydF4y2Ba,{gydF4y2Ba'setosa'gydF4y2Ba,gydF4y2Ba'versicolor'gydF4y2Ba,gydF4y2Ba'virginica'gydF4y2Ba});gydF4y2Ba
MDL.gydF4y2Ba
是A.gydF4y2BaClassifiedecoc.gydF4y2Ba
分类器。您可以使用点表示法访问其属性。gydF4y2Ba
交叉验证gydF4y2BaMDL.gydF4y2Ba
使用10倍交叉验证。gydF4y2Ba
cvmdl = crossval(mdl);gydF4y2Ba
cvmdl.gydF4y2Ba
是A.gydF4y2BaClassificationedecoc.gydF4y2Ba
交叉验证的Ecoc分类器。gydF4y2Ba
估计广义分类错误。gydF4y2Ba
generror = kfoldloss(cvmdl)gydF4y2Ba
generror = 0.0400.gydF4y2Ba
广义分类误差为4%,说明ECOC分类器具有较好的泛化能力。gydF4y2Ba
一个gydF4y2Ba纠错输出代码(ECOC)模型gydF4y2Ba将三个或更多个类分类的问题减少到一组二进制分类问题。gydF4y2Ba
ECOC分类需要编码设计,该编码设计确定二进制学习者训练的类和解码方案,它决定了二进制分类器的结果(预测)如何聚合。gydF4y2Ba
假设以下内容:gydF4y2Ba
分类问题有三个类。gydF4y2Ba
编码设计是一对一的。对于三个类,这个编码设计是gydF4y2Ba
解码方案使用损耗gydF4y2BaggydF4y2Ba.gydF4y2Ba
学习者是SVMS。gydF4y2Ba
要构建此分类模型,ECOC算法遵循这些步骤。gydF4y2Ba
学习者1在1级或第2级观察中进行列车,并将第1级作为负类视为负类。其他学习者培训了。gydF4y2Ba
让gydF4y2Ba米gydF4y2Ba是具有元素的编码设计矩阵gydF4y2Ba米gydF4y2BaKL.gydF4y2Ba, 和gydF4y2Ba年代gydF4y2BalgydF4y2Ba是学习者正类的预测分类分数gydF4y2BalgydF4y2Ba.该算法对类分配了新的观察(gydF4y2Ba )最大限度地减少了损失的汇总gydF4y2BalgydF4y2Ba二进制学习者。gydF4y2Ba
与其他多键模型相比,ecoc模型可以提高分类准确性gydF4y2Ba[2]gydF4y2Ba.gydF4y2Ba
一个gydF4y2Ba编码设计gydF4y2Ba是一个矩阵,其中元素是由每个二进制学习者训练哪个类的元素,即,多字符问题如何减少到一系列二元问题。gydF4y2Ba
编码设计的每一行对应于一个不同的类,并且每个列对应于二进制学习者。在三元编码设计中,对于特定列(或二进制学习者):gydF4y2Ba
包含1的行指示二进制学习者将相应类中的所有观察结果分组为一个正类。gydF4y2Ba
包含-1的行指示二进制学习者将相应类中的所有观察结果分组到一个否定类中。gydF4y2Ba
包含0的行指示二进制学习者忽略相应类中的所有观察。gydF4y2Ba
基于汉明测量的大,最小,成对行距离的编码设计矩阵是最佳的。有关成对行距离的详细信息,请参阅gydF4y2Ba随机编码设计矩阵gydF4y2Ba和gydF4y2Ba[4]gydF4y2Ba.gydF4y2Ba
此表描述了流行的编码设计。gydF4y2Ba
编码设计gydF4y2Ba | 描述gydF4y2Ba | 许多学习者gydF4y2Ba | 最小成对行距离gydF4y2Ba |
---|---|---|---|
one-versus-all(卵子)gydF4y2Ba | 对于每一个二元学习者,一个班级是积极的,其余的是消极的。这种设计穷尽了所有正类赋值的组合。gydF4y2Ba | KgydF4y2Ba | 2gydF4y2Ba |
一对 - 一(ovo)gydF4y2Ba | 对于每个二进制学习者,一个类是积极的,另一个类是消极的,其余的被忽略。该设计排除了类对分配的所有组合。gydF4y2Ba | KgydF4y2Ba(gydF4y2BaKgydF4y2Ba- 1)/ 2gydF4y2Ba |
1gydF4y2Ba |
二进制完成gydF4y2Ba | 此设计将类分区为所有二进制组合,并且不会忽略任何类。也就是说,所有班级任务都是gydF4y2Ba |
2gydF4y2BaKgydF4y2Ba- 1gydF4y2Ba- 1gydF4y2Ba | 2gydF4y2BaKgydF4y2Ba- 2gydF4y2Ba |
三元完整gydF4y2Ba | 此设计将类分为所有三元组合。也就是说,所有班级任务都是gydF4y2Ba |
(3.gydF4y2BaKgydF4y2Ba- 2gydF4y2BaKgydF4y2Ba+ 1gydF4y2Ba+ 1)/ 2gydF4y2Ba |
3.gydF4y2BaKgydF4y2Ba- 2gydF4y2Ba |
序单gydF4y2Ba | 对于第一个二进制学习者,第一类是负的,其余是积极的。对于第二个二进制学习者,前两个类是消极的,其余的是积极的,等等。gydF4y2Ba | KgydF4y2Ba- 1gydF4y2Ba | 1gydF4y2Ba |
致密呜咽gydF4y2Ba | 对于每个二进制学习者,软件将类分配为正或负类,每种类型中的至少一个。有关更多详细信息,请参阅gydF4y2Ba随机编码设计矩阵gydF4y2Ba.gydF4y2Ba | 随机,但大约10个日志gydF4y2Ba2gydF4y2BaKgydF4y2Ba |
多变的gydF4y2Ba |
稀疏随机gydF4y2Ba | 对于每个二进制学习者,软件随机将类别分配为正或负,概率为0.25,并忽略概率0.5的类。有关更多详细信息,请参阅gydF4y2Ba随机编码设计矩阵gydF4y2Ba.gydF4y2Ba | 随机,但大约15 loggydF4y2Ba2gydF4y2BaKgydF4y2Ba |
多变的gydF4y2Ba |
此曲线比较了编码设计的二进制学习者的数量随着增加的增加gydF4y2BaKgydF4y2Ba.gydF4y2Ba
对于给定数量的课程gydF4y2BaKgydF4y2Ba,该软件产生如下随机编码设计矩阵。gydF4y2Ba
该软件生成其中一个矩阵:gydF4y2Ba
致密的随机 - 软件为每个元素分配1或-1gydF4y2BaKgydF4y2Ba-经过-gydF4y2BalgydF4y2BadgydF4y2Ba编码设计矩阵,在哪里gydF4y2Ba .gydF4y2Ba
稀疏随机 - 软件为每个元素分配1gydF4y2BaKgydF4y2Ba-经过-gydF4y2BalgydF4y2Ba年代gydF4y2Ba编码设计矩阵,概率0.25,-1,概率0.25,概率为0.5,其中gydF4y2Ba .gydF4y2Ba
如果列不包含至少一个1和至少一个-1,则软件会删除该列。gydF4y2Ba
对于不同的列gydF4y2BaugydF4y2Ba和gydF4y2BavgydF4y2Ba, 如果gydF4y2BaugydF4y2Ba=gydF4y2BavgydF4y2Ba或者gydF4y2BaugydF4y2Ba= -gydF4y2BavgydF4y2Ba,然后软件删除gydF4y2BavgydF4y2Ba从编码设计矩阵。gydF4y2Ba
该软件默认情况下随机生成10,000个矩阵,并根据汉明测量值保留具有最大,最小的成对行距离的矩阵(gydF4y2Ba[4]gydF4y2Ba)由gydF4y2Ba
在哪里gydF4y2Ba米gydF4y2BakgydF4y2BajgydF4y2BalgydF4y2Ba是编码设计矩阵的元素gydF4y2BajgydF4y2Ba.gydF4y2Ba
默认情况下以及效率,gydF4y2BaFitcecoc.gydF4y2Ba
清空gydF4y2BaΑgydF4y2Ba
,gydF4y2Ba万博1manbetxSupportVectorLabels.gydF4y2Ba
, 和gydF4y2Ba万博1manbetx支持监视器gydF4y2Ba
所有线性SVM二进制学习者的属性。gydF4y2BaFitcecoc.gydF4y2Ba
清单gydF4y2BabetgydF4y2Ba
, 而不是gydF4y2BaΑgydF4y2Ba
,在模型显示中。gydF4y2Ba
储藏gydF4y2BaΑgydF4y2Ba
,gydF4y2Ba万博1manbetxSupportVectorLabels.gydF4y2Ba
, 和gydF4y2Ba万博1manbetx支持监视器gydF4y2Ba
,通过一个线性SVM模板,指定存储支持向量万博1manbetxgydF4y2BaFitcecoc.gydF4y2Ba
.例如,输入:gydF4y2Ba
t = templatesvm(gydF4y2Ba'save万博1manbetxsupportvectors'gydF4y2Ba,true)mdl = fitcecoc(x,y,gydF4y2Ba“学习者”gydF4y2Bat);gydF4y2Ba
您可以通过传递结果来删除支持向量和相关万博1manbetx值gydF4y2BaClassifiedecoc.gydF4y2Ba
模型到gydF4y2Ba丢弃普罗斯韦普万博1manbetx罗斯韦gydF4y2Ba
.gydF4y2Ba
您可以使用这些替代算法来训练多字母模型:gydF4y2Ba
分类集合 - 见gydF4y2Bafitcensemble.gydF4y2Ba
和gydF4y2Ba分类素..gydF4y2Ba
分类树 - 看gydF4y2BafitctreegydF4y2Ba
和gydF4y2BaClassificationTree.gydF4y2Ba
判别分析分类器 - 见gydF4y2Bafitcdiscr.gydF4y2Ba
和gydF4y2Ba分类Discriminant.gydF4y2Ba
kgydF4y2Ba- 最终邻居分类器 - 看到gydF4y2BaFitcknn.gydF4y2Ba
和gydF4y2BaClassificationKnn.gydF4y2Ba
天真贝叶斯分类器 - 见gydF4y2BaFitcnb.gydF4y2Ba
和gydF4y2BaClassificationniveBayes.gydF4y2Ba
[1]Fürnkranz,约翰内斯。“循环罗宾分类。”gydF4y2Ba机床学习研究gydF4y2Ba,卷。2002年,第721-747页。gydF4y2Ba
[2] Escalera,S.,O. pujol和P. Radeva。“用于纠错输出代码稀疏设计的三元代码的可分离。”gydF4y2Ba模式识别字母gydF4y2Ba,卷。30,第3,2009号,第285-297页。gydF4y2Ba
使用说明和限制:gydF4y2Ba
的gydF4y2Ba预测gydF4y2Ba
和gydF4y2Ba更新gydF4y2Ba
功能支持代码生成。万博1manbetxgydF4y2Ba
使用时培训ECOC模型gydF4y2BaFitcecoc.gydF4y2Ba
,以下限制适用。gydF4y2Ba
您无法使用后部概率gydF4y2Ba“FitPosterior”gydF4y2Ba
名称-值对的论点。gydF4y2Ba
所有二进制学习者必须是SVM分类器或线性分类模型。为了gydF4y2Ba“学习者”gydF4y2Ba
名称-值对参数,您可以指定:gydF4y2Ba
'svm'gydF4y2Ba
或者gydF4y2Ba'线性'gydF4y2Ba
一个SVM模板对象或此类对象的单元格数组(参见gydF4y2Batemplatesvm.gydF4y2Ba
)gydF4y2Ba
线性分类模型模板对象或这些对象的单元格阵列(参见gydF4y2BaTemplateLinear.gydF4y2Ba
)gydF4y2Ba
使用编码器配置程序生成代码时gydF4y2Ba预测gydF4y2Ba
和gydF4y2Ba更新gydF4y2Ba
,以下附加限制适用于二进制学习者。gydF4y2Ba
如果使用SVM模板对象的单元格数组,则值gydF4y2Ba'标准化'gydF4y2Ba
对于SVM学习者必须保持一致。例如,如果您指定gydF4y2Ba'标准化',真实gydF4y2Ba
对于一个SVM学习者,您必须为所有SVM学习者指定相同的值。gydF4y2Ba
如果使用SVM模板对象的单元格数组,并且使用一个SVM学习者使用Linear Kernel(gydF4y2Ba'骨存,'线性'gydF4y2Ba
)另一个具有不同类型的内核功能,然后必须指定gydF4y2Ba
对于带有线性内核的学习者。gydF4y2Ba'save万博1manbetxsupportvectors'gydF4y2Ba
,真的gydF4y2Ba
有关详细信息,请参阅gydF4y2BaclassificationcoccoderconfigurergydF4y2Ba
.有关在恢复模型时无法修改的名称值对参数的信息,请参阅gydF4y2Ba尖端gydF4y2Ba.gydF4y2Ba
SVM分类器和线性分类模型的代码生成限制也适用于Ecoc分类器,具体取决于二进制学习者的选择。有关更多详细信息,请参阅gydF4y2Ba代码生成gydF4y2Ba的gydF4y2BaCompactClassificationsVM.gydF4y2Ba
班级和gydF4y2Ba代码生成gydF4y2Ba的gydF4y2Ba分类线性gydF4y2Ba
班级。gydF4y2Ba
有关更多信息,请参阅gydF4y2Ba代码生成简介gydF4y2Ba.gydF4y2Ba
Classificationedecoc.gydF4y2Ba
|gydF4y2BaCompactClassificeCoc.gydF4y2Ba
|gydF4y2BaFitcecoc.gydF4y2Ba
|gydF4y2Bafitcsvm.gydF4y2Ba
您点击了一个对应于这个MATLAB命令的链接:gydF4y2Ba
在MATLAB命令窗口中输入它来运行命令。Web浏览器不支持MATLAB命令。万博1manbetxgydF4y2Ba
选择一个网站,以便在可用的地方进行翻译的内容,并查看本地活动和优惠。根据您的位置,我们建议您选择:gydF4y2Ba.gydF4y2Ba
选择gydF4y2Ba网站gydF4y2Ba你也可以从以下列表中选择一个网站:gydF4y2Ba
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。gydF4y2Ba