如何使用MATLAB分类学习器导出的线性判别模型并可视化决策边界
解决MATLAB分类学习器线性判别模型的输出查看与决策边界绘制问题
一、查看模型预测输出
执行预测命令后,将结果保存到变量即可直接查看,还可以通过混淆矩阵对比真实标签与预测标签的匹配情况:
% 获取预测结果 yfit = trainedModel_LD.predictFcn(T); % 打印预测标签 disp('预测标签:'); disp(yfit); % 生成混淆矩阵,评估分类效果 confusion_matrix = confusionmat(T(:,1), yfit); disp('混淆矩阵:'); disp(confusion_matrix);
注:T(:,1)是原始数据中的真实标签列,yfit是模型输出的预测标签。
二、绘制类间决策边界
分类学习器导出的trainedModel_LD是结构体,需先提取其中的底层LDA模型对象,再调用绘图函数:
% 提取底层线性判别模型 ldaModel = trainedModel_LD.LinearDiscriminantModel; % 绘制原始分类散点图 figure gscatter(T(:,2), T(:,3), T(:,1), 'rgb', 'osd'); hold on % 绘制决策边界 plot(ldaModel) title('LDA模型决策边界与原始数据分布') xlabel('x') ylabel('y') legend('Cluster 1','Cluster 2','Cluster 3','Location','eastoutside') hold off
之前直接plot(trainedModel_LD)报错,是因为该结构体不是MATLAB可直接绘图的模型对象,必须提取LinearDiscriminantModel字段对应的模型。
三、查看模型相关信息
直接在命令行输入trainedModel_LD并回车,即可展开结构体查看所有模型相关信息,关键字段包括:
LinearDiscriminantModel:底层LDA模型对象,包含均值、协方差、判别系数等核心参数predictFcn:预测函数句柄ClassNames:模型识别的类别名称ScoreTransform:分数转换规则
若要查看LDA模型的具体参数,可通过以下代码:
ldaModel = trainedModel_LD.LinearDiscriminantModel; % 查看各类别的均值向量 disp('各类别均值:'); disp(ldaModel.Mu); % 查看协方差矩阵 disp('协方差矩阵:'); disp(ldaModel.Covariance);
内容的提问来源于stack exchange,提问作者user2587726
相关产品推荐
相关产品推荐

