文件帮助中心文件
预测标签使用K.- 最终邻居分类模型
标签=预测(mdl, X)
[标签,分数,成本] =预测(MDL,x)
标签=预测(MDL.那X)返回表或矩阵中预测器数据的预测类标签向量X,基于培训K.- 最终邻居分类模型MDL..看预测类标签.
标签=预测(MDL.那X)
标签
MDL.
X
例子
[标签那分数那成本) =预测(MDL.那X)也返回:
[标签那分数那成本) =预测(MDL.那X)
分数
成本
分类分数矩阵(分数)表示标签来自特定类的可能性。为了K.- 最终邻居,分数是后验概率。看后验概率.
预期分类成本的矩阵(成本).对于每次观察X,预测类标签对应于所有类别中的最低预期分类成本。看预期成本.
全部收缩
创建一个K.- Fisher虹膜数据的最近邻分类器,其中K.= 5.评估新数据的一些模型预测。
加载Fisher Iris数据集。
加载渔民X =量;Y =物种;
为五个最近邻居创建分类器。标准化非相似的预测器数据。
mdl = fitcknn (X, Y,'numneighbors'5,“标准化”,1);
预测最小,平均值和最大特性的花卉分类。
xnew = [min(x);平均(x); max(x)];[标签,分数,成本] =预测(MDL,Xnew)
标签=3x1细胞{'versicolor'} {'versicolor'} {'virginica'}
得分=3×30.4000 0.6000 0 0 1.0000 0 0 0 1.0000
成本=3×30.6000 0.4000 1.0000 1.0000 0 1.0000 1.0000 1.0000 0
分数和代价矩阵的第二和第三行有二进制值,这意味着所有的平均值和最大花测量值的5个最近邻都有相同的分类。
ClassificationKnn.
K.-最近邻分类器模型,指定为ClassificationKnn.目的。
要分类的预测器数据,指定为数字矩阵或表。
每一排X对应一个观察值,每一列对应一个变量。
对于数字矩阵:
构成列的变量X必须具有与用于培训的预测变量相同的顺序MDL..
如果你训练MDL.使用表格(例如,资源描述),然后X可以是一个数字矩阵资源描述包含所有数字预测变量。K.- 最终邻居分类需要均匀的预测因子。因此,治疗所有数字预测因子资源描述作为训练中的分类,设置'patericalpricictors','全部'当你训练使用时Fitcknn..如果资源描述包含异构预测器(例如,数字和分类数据类型)和X是一个数字矩阵,然后预测抛出错误。
资源描述
'patericalpricictors','全部'
Fitcknn.
预测
一个表:
预测不支持字符向量的单万博1manbetx元格阵列以外的多列变量和单元阵列。
如果你训练MDL.使用表格(例如,资源描述),然后所有预测变量X必须具有与训练所用的相同的变量名和数据类型MDL.(存储在mdl。P.redictorNames).但是,的列顺序X不需要对应于列顺序资源描述.两个都资源描述和X可以包含其他变量(响应变量,观察权重等),但是预测忽略它们。
mdl。P.redictorNames
如果你训练MDL.使用一个数字矩阵,然后预测器命名mdl。P.redictorNames和相应的预测变量名称X必须是一样的。要在培训期间指定预测器名称,请参阅PredictorNames名称 - 值对参数Fitcknn..所有预测因子变量X必须是数字向量。X可以包含其他变量(响应变量,观察权重等),但是预测忽略它们。
PredictorNames
如果你设置了'标准化',真实在Fitcknn.训练MDL.,然后该软件标准化列的列X使用相应的手段mdl.mu.和标准偏差mdl.sigma..
'标准化',真实
mdl.mu.
mdl.sigma.
数据类型:双|单身的|桌子
双
单身的
桌子
预测观察的类标签(行)X,作为分类阵列,字符阵列,逻辑向量,数值的矢量,或字符向量的单元数组。标签长度等于行数X.标签是具有最小预期成本的课程。看预测类标签.
预测的类别或后验概率,作为一个数字矩阵返回N——- - - - - -K..N观察的数量(行)在吗X, 和K.是课程数量(inmdl.classnames.).得分(i,j)是观察的后验概率一世在X是课堂j在mdl.classnames..看后验概率.
mdl.classnames.
得分(i,j)
一世
j
数据类型:单身的|双
预期的分类成本,作为数值矩阵返回N——- - - - - -K..N观察的数量(行)在吗X, 和K.是课程数量(inmdl.classnames.).成本(i,j)是分类行的成本一世的X作为类j在mdl.classnames..看预期成本.
成本(i,j)
预测通过最小化预期的错误分类成本来分类:
y ^ = arg 闵 y = 1 那 ...... 那 K. σ. j = 1 K. P. ^ ( j | X ) C ( y | j ) 那
在哪里:
y ^ 是预测的分类。
K.是课程的数量。
P. ^ ( j | X ) 是类的后验概率吗j为观察X.
C ( y | j ) 是分类观察的成本y当它的真实课程是j.
考虑向量(单个查询点)XNew.和一个模型MDL..
XNew.
K.是预测中使用的最近邻居的数量,mdl.numneighbors..
mdl.numneighbors.
NBD(MDL,Xnew)指定K.最近的邻居到XNew.在mdl.x..
NBD(MDL,Xnew)
mdl.x.
Y(NBD)指定该点的分类NBD(MDL,Xnew),即MDL.Y(NBD).
Y(NBD)
MDL.Y(NBD)
w(nbd)指定点的权重NBD(MDL,Xnew).
w(nbd)
事先的指定类中的前瞻mdl.y..
事先的
mdl.y.
如果该模型包含现有概率的向量,则观察权重W.通过课程标准化为总和。这个过程可能涉及点的计算XNew.,因为重量可以取决于距离XNew.切中要害mdl.x..
W.
后验概率P.(j|XNew.) 是
P. ( j | X 新的 ) = σ. 一世 ∈ NBD. W. ( 一世 ) 1 y ( X ( 一世 ) ) = j σ. 一世 ∈ NBD. W. ( 一世 ) .
这里, 1 y ( X ( 一世 ) ) = j 是1什么时候mdl.Y (i) = j, 和0.否则。
1
mdl.Y (i) = j
0.
两个成本与KNN分类有关:每阶级的真正错误分类成本和每次观察的预期错误分类成本。
您可以使用每类设置真正的错误分类成本'成本'运行时的名称-值对参数Fitcknn..的值成本(i,j)是对课堂分类的成本j如果它真正的阶级是一世.默认情况下,成本(i,j)= 1如果我〜= j, 和成本(i,j)= 0如果我= J..换句话说,成本是0.正确分类和1对于不正确的分类。
'成本'
成本(i,j)= 1
我〜= j
成本(i,j)= 0
我= J.
两个成本与KNN分类有关:每阶级的真正错误分类成本和每次观察的预期错误分类成本。第三个产出预测每次观察预期的错误分类费用是。
假设你有谈判您想要使用培训的分类器分类的观察结果MDL.,而你有K.课程。您将观察结果放入矩阵中XNew.每行一个观察。命令
谈判
K.
[标签,分数,成本] =预测(MDL,Xnew)
返回矩阵成本的大小谈判——- - - - - -K.在其他产出中。每一行成本矩阵包含将观察分类为每个的预期(平均)成本K.课程。成本(n, j)是
成本(n, j)
σ. 一世 = 1 K. P. ^ ( 一世 | X N E. W. ( N ) ) C ( j | 一世 ) 那
在哪里
P. ^ ( 一世 | X ( N ) ) 是个后验概率类的一世为观察XNew.(N).
C ( j | 一世 ) 是分类观察的真正错误分类成本j当它的真实课程是一世.
此功能完全支持高阵列。万博1manbetx有关更多信息,请参阅高阵列.
使用注意事项及限制:
采用saveLearnerForCoder那loadlearnerforcoder., 和Codegen.(MATLAB编码器)为此生成代码预测功能。使用培训模型saveLearnerForCoder.定义通过使用加载保存的模型的入口点函数loadlearnerforcoder.并调用预测功能。然后使用Codegen.为入口点函数生成代码。
saveLearnerForCoder
loadlearnerforcoder.
Codegen.
要为predict生成单精度的C/ c++代码,请指定name-value参数'dataType','single'当你打电话的时候loadlearnerforcoder.功能。
'dataType','single'
此表包含有关参数的说明预测.未包含在此表中的参数完全支持。万博1manbetx
一种ClassificationKnn.模型对象是一个没有相应紧凑对象的完整对象。对于这个模型,saveLearnerForCoder保存一个不包含HyperParameter优化属性的紧凑型版本。
如果MDL.是一种使用该模型培训的模型K.d-tree搜索算法,代码生成构建类型是一个MEX函数,然后Codegen.(MATLAB编码器)使用Intel生成一个MEX函数®线程构建块(TBB),用于并行计算。否则,Codegen.使用。使用代码议案(MATLAB编码器).
议案
MEX功能K.D树搜索算法 -Codegen.使用Intel TBB生成优化的MEX函数,用于在多核平台上并行计算。您可以使用MEX功能加速MATLAB®算法。有关英特尔TBB的详细信息,请参阅https://software.intel.com/en-us/intel-tbb.
如果生成MEX函数以测试生成的代码议案版本,您可以禁用Intel TBB的使用。设定外形MEX配置对象的属性错误的.有关详细信息,请参见编码器。MexCodeConfig(MATLAB编码器).
外形
错误的
编码器。MexCodeConfig
MEX函数的穷举搜索算法和独立的C/ c++代码的两种算法-生成的代码预测使用议案(MATLAB编码器)要创建在生成的代码中的支持的共享内存多核平台上并行运行的循环。万博1manbetx如果您的编译器不支持打开的多处理(OpenMP)应用万博1manbetx程序界面或禁用OpenMP库,Matlab Coder™对待议案- 乐队为了- 砍伐。要查找支持的编译万博1manbetx器,请参阅万博1manbetx支持的编译器.要禁用OpenMP库,请设置EnableOpenmp.属性错误的.有关详细信息,请参见coder.codeConfig(MATLAB编码器).
为了
EnableOpenmp.
coder.codeConfig
有关模型对象的使用说明和限制,请参阅代码生成的ClassificationKnn.目的。
X必须是单精度或双精度矩阵或包含数字变量,分类变量或两者的表。
行数或观察的数量X可以是一个可变的大小,但是X必须固定。
如果你想指定X作为表格,那么必须使用表培训您的模型,并且您的预测的入口点函数必须:
接受数据作为阵列。
根据数据输入参数创建表,并指定表中的变量名。
把桌子传递给预测.
有关此表工作流的示例,请参阅生成代码以在表中对数据进行分类.有关在代码生成中使用表的详细信息,请参阅表格的代码(MATLAB编码器)和代码生成的表限制(MATLAB编码器).
有关更多信息,请参阅代码生成简介.
该功能完全支持GPU阵列。万博1manbetx有关更多信息,请参阅在GPU上运行matlab函数(并行计算工具箱).
这个函数支持带有GPU阵列输万博1manbetx入参数的模型对象。
ClassificationKnn.|Fitcknn.
您有此示例的修改版本。您是否希望使用您的编辑打开此示例?
您单击了与此MATLAB命令对应的链接:
在MATLAB命令窗口中输入它来运行命令。Web浏览器不支持MATLAB命令。万博1manbetx
选择一个网站,以便在可用的地方进行翻译的内容,并查看本地活动和优惠。根据您的位置,我们建议您选择:.
您还可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。
与当地办事处联系