文档帮助中心文档
用判别分析分类模型预测标签
标签=预测(Mdl,X)
[标签、分数、成本]=预测(Mdl,X)
标签=预测(Mdl,X)返回表或矩阵中预测器数据的预测类标签向量X,基于训练好的判别分析分类模型Mdl.
标签=预测(Mdl,X)
标签
Mdl
X
[标签,分数,成本) =预测(Mdl,X)返回:
[标签,分数,成本) =预测(Mdl,X)
分数
成本
分类分数矩阵(分数)表示标签来自特定类别的可能性。对于判别分析,分数为后验概率.
一个矩阵的预期分类成本(成本).对于每一个X,预测类标签对应于所有类中的最小预期分类成本。
全部展开
分类判别式
紧分类判别式
判别分析分类模型,指定为分类判别式或紧分类判别式返回的模型对象fitcdiscr.
fitcdiscr
要分类的预测器数据,指定为数字矩阵或表。
每行X对应一个观察值,每列对应一个变量。中的所有预测变量X必须是数字向量。
对于数值矩阵,组成矩阵列的变量X必须和训练的预测变量有相同的顺序吗Mdl.
一个表:
预测除了字符向量的单元金宝app格数组外,不支持多列变量和单元格数组。
预测
如果你训练Mdl使用表(例如,资源描述),然后在X必须具有与那些训练过的相同的变量名和数据类型Mdl(存储在Mdl。PredictorNames).但是,的列顺序X不需要对应的列顺序资源描述.资源描述和X可以包含其他变量(响应变量、观察权重等),但预测忽略了它们。
资源描述
Mdl。PredictorNames
如果你训练Mdl使用数字矩阵,然后将预测值命名为Mdl。PredictorNames和相应的预测变量名X肯定是一样的。要在训练期间指定预测器名称,请参见PredictorNames的名称-值对参数fitcdiscr.X可以包含其他变量(响应变量、观察权重等),但预测忽略了它们。
PredictorNames
数据类型:表格|双重的|仅有一个的
表格
双重的
仅有一个的
预测类标签,作为类别或字符数组、逻辑或数字向量或字符向量的单元格数组返回。
标签:
与观察到的类标签的数据类型相同(Y),训练Mdl.(该软件将字符串数组视为字符向量的单元格数组。)
Y
长度等于行数X.
预测类后验概率,作为大小的数字矩阵返回N-借-K.N是中的观察值(行)数X,K是类的数量(单位为)Mdl.ClassNames).得分(i,j)是观察到的后验概率吗我在X他是一流的j在Mdl.ClassNames.
N
K
Mdl.ClassNames
得分(i,j)
我
j
预期分类费用,返回为大小矩阵N-借-K.N是中的观察值(行)数X,K是类的数量(单位为)Mdl.ClassNames).成本(i, j)对行进行分类的成本是多少我属于X作为类j在Mdl.ClassNames.
成本(i, j)
加载Fisher的iris数据集。确定样本大小。
负载fisheriris1) N =大小(量;
将数据划分为训练集和测试集。拿出10%的数据进行测试。
rng (1);%的再现性本量利= cvpartition (N,“坚持”, 0.1);idxTrn =培训(cvp);%训练集指标idxTest =测试(cvp);%测试集索引
将训练数据存储在一个表中。
tblTrn = array2table(量(idxTrn:));tblTrn。Y=species(idxTrn);
使用训练集和默认选项训练判别分析模型。
Mdl = fitcdiscr (tblTrn,“Y”);
预测测试集的标签。你训练Mdl使用数据表,但可以使用矩阵预测标签。
标签=预测(Mdl,meas(idxTest,:);
为测试集构造一个混淆矩阵。
confusionchart(物种(idxTest)、标签)
Mdl将测试集中的一个杂色虹膜误分类为virginica。
载入费雪的虹膜数据集。只考虑使用花瓣的长度和宽度进行训练。
负载fisheririsX =量(:,3:4);
使用整个数据集训练二次判别分析模型。
Mdl=fitcdiscr(X,物种,“歧视型”,“二次”);
在观测的预测器空间中定义一个网格值。预测网格中每个实例的后验概率。
xMax = max (X);xMin = min (X);d = 0.01;[x1Grid, x2Grid] = meshgrid (xMin (1): d: xMax (1) xMin (2): d: xMax (2));[~,分数]=预测(Mdl [x1Grid (:), x2Grid (:)));Mdl.ClassNames
ans =3 x1细胞{'setosa'} {'versicolor'} {'virginica'}
分数是类后验概率矩阵。列对应于Mdl.ClassNames.例如,分数(j, 1)是观察到的后验概率吗j是鸢尾。
分数(j, 1)
在网格中绘制每个观测的花色分类的后验概率,并绘制训练数据。
图;contourf (x1Grid x2Grid,重塑(分数(:,2),大小(x1Grid, 1),大小(x1Grid, 2)));h = colorbar;caxis ([0 1]);colormap喷气式飞机持有在…上gscatter (X (: 1) X(:, 2),物种,“麦基”,的方式来+);轴线紧头衔(“花斑的后验概率”);持有从
后验概率区域暴露了决策边界的一部分。
一个点的后验概率x属于类k为先验概率与多元正态密度的乘积。多元法线的密度函数d的意思是μk和d-借-d协方差∑k在1 -d点x是
P ( x | k ) = 1 ( ( 2 π ) d | Σ k | ) 1 / 2 经验 ( − 1 2 ( x − μ k ) Σ k − 1 ( x − μ k ) T ) ,
哪里 | Σ k | 是∑的行列式k, Σ k − 1 是逆矩阵。
允许P(k)表示类的先验概率k.然后是观察到的后验概率x他是一流的k是
P ^ ( k | x ) = P ( x | k ) P ( k ) P ( x ) ,
哪里P(x)是一个标准化常数,其和超过k属于P(x|k)P(k).
先验概率是三种选择之一:
“制服”-类的先验概率k是1除以总班级数。
“制服”
k
“经验的”-类的先验概率k是班级的培训样本数k除以训练样本的总数。
“经验的”
自定义-类的先验概率k是k第Th元素之前向量,看到了吗fitcdiscr.
之前
在创建分类模型之后(Mdl),你可以使用点表示法设置优先级:
Mdl。Prior = v;
哪里v是一个正元素向量,表示每个元素出现的频率。在设置新的优先级时,不需要重新训练分类器。
v
每一次观测的预期成本矩阵定义为成本.
预测分类以使预期的分类成本最小化:
y ^ = arg 闵 y = 1 , ... , K ∑ k = 1 K P ^ ( k | x ) C ( y | k ) ,
哪里
y ^ 是预测的分类。
K为类数。
P ^ ( k | x ) 是后验概率一流的k供观察x.
C ( y | k ) 是成本将观察结果归类为y当它真正的阶级是k.
这个函数完全支持高数组。金宝app使用这个函数,您可以使用在内存中或高数据上训练的模型。
有关详细信息,请参阅高大的数组.
使用说明和限制:
使用saveLearnerForCoder,loadLearnerForCoder,编码基因(MATLAB编码器)生成的代码预测作用使用保存经过训练的模型saveLearnerForCoder.定义一个入口点函数,通过使用loadLearnerForCoder打电话给预测函数。然后使用编码基因为入口点函数生成代码。
saveLearnerForCoder
loadLearnerForCoder
编码基因
要为predict生成单精度的C/ c++代码,请指定name-value参数“数据类型”,“单个”当你呼叫loadLearnerForCoder函数。
“数据类型”,“单个”
此表包含有关的参数的注释预测。完全支持此表中未包含的参数。金宝app
有关模型对象的使用说明和限制,请参见代码生成的紧分类判别式对象
X必须是单精度或双精度矩阵或包含数值变量的表。
中的行数或观察值X可以是一个可变的大小,但是X必须修复。
如果你想指定X作为一个表,那么你的模型必须使用一个表来训练,你的预测入口点函数必须:
接受数据作为数组。
根据数据输入参数创建表,并指定表中的变量名。
把桌子递给预测.
有关此表格工作流的示例,请参见生成代码对表中的数据进行分类。有关在代码生成中使用表的详细信息,请参阅表的代码生成(MATLAB编码器)和代码生成的表限制(MATLAB编码器).
有关详细信息,请参阅代码生成简介.
分类判别式|紧分类判别式|边缘|fitcdiscr|丧失|边缘
边缘
丧失
您拥有此示例的修改版本。是否要用编辑打开此示例?
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站以获取可用的翻译内容,并查看本地活动和优惠。根据您的位置,我们建议您选择:.
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
联系当地办事处