我是靠谱客的博主 优美小甜瓜,最近开发中收集的这篇文章主要介绍基于最小错误率的Bayes分类器进行仿真,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

>> x1=[0 0;2 1;1 0]
x1 =
0
0
2
1
1
0
>> x2=[-1 1;-2 0;-2 -1];
>> x3=[0 -2;0 -1;1 -2];
>> cl=cov(x1);
>> c2=cov(x2);
>> c3=cov(x3);
>> c1=cl
c1 =
1.0000
0.5000
0.5000
0.3333
>> c1=cl;
>> t1=diag(c1);
>> t2=diag(c2);
>> t3=diag(c3);
>> c1=diag(t1);
>> c2=diag(t2);
>> c3=diag(t3);
>> cc1=inv(c1);
>> cc2=inv(c2);
>> cc3=inv(c3);
>> d1=det(c1);
>> d2=det(c2);
>> d3=det(c3);
>> u1=mean(x1);
>> u2=mean(x2);
>> u3=mean(x3);
>> u1=u1';
>> u2=u2';
>> u3=u3';
>> p=[-2;2];
>> p1=-0.5*((p-u1)'*cc1*(p-u1)+log(d1));
>> p2=-0.5*((p-u2)'*cc2*(p-u2)+log(d2));
>> p3=-0.5*((p-u3)'*cc3*(p-u3)+log(d3));
>> if p1>p2
if p1>p3
w=1;
else
w=3;
end
elseif p2>p3
w=2;
else w=3;
end
>> fprintf('X=(-2,2)属于第%g类n',w);
X=(-2,2)属于第2类
>> G=sym('[x;y]');
错误使用 sym>convertChar (第 1557 行)
Character vectors and strings in the first argument can only specify a variable or number. To evaluate character vectors and strings
representing symbolic expressions, use 'str2sym'.
出错 sym>tomupad (第 1273 行)
S = convertChar(x);
出错 sym (第 229 行)
S.s = tomupad(x);
>> G=str2sym('[x;y]');
>> g1=simplify((-0.5)*G'*cc1*G+(cc1*u1)'*G-0.5*(u1'*cc1*u1+log(d1)));
>> g2=simplify((-0.5)*G'*cc2*G+(cc2*u2)'*G-0.5*(u2'*cc2*u2+log(d2)));
>> g3=simplify((-0.5)*G'*cc3*G+(cc3*u3)'*G-0.5*(u3'*cc3*u3+log(d3)));
>> g12=simplify(g1-g2);
>> g23=simplify(g2-g3);
>> g13=simplify(g1-g3);
>> h1=ezplot(g12);
>> hold on;
>> set(h1,'LineWidth',2,'color','red');
错误使用 matlab.graphics.chart.primitive.Contour/set
对象无效或已删除。
>> h2=ezplot(g23);
hold on;
>> set(h2,'LineWidth',2,'color','blue');
错误使用 matlab.graphics.chart.primitive.Contour/set
对象无效或已删除。
>> g31=simplify(g3-g1);
>> h3=ezplot(g31);
>> hold on;
>> set(h3,'LineWidth',2,'color','yellow');
>> h1=ezplot(g12);
>> hold on;
>> set(h1,'LineWidth',2,'color','red')
>> h2=ezplot(g23);
>> hold on;
>> set(h2,'LineWidth',2,'color','blue');
>> legend('g12','g12','g23','g31');
警告: 忽略额外的图例条目。
> 位置:legend>process_inputs (第 596 行)
位置: legend>make_legend (第 328 行)
位置: legend (第 272 行)
>> plot(x1(1,1),x1(1,2),'or');
>> hold on;
>> plot(x1(2,1),x1(2,2),'or');
>> hold on;
>> plot(x1(3,1),x1(3,2),'or');
>> hold on;
>> plot(x2(1,1),x1(1,2),'xb');
>> hold on;
>> plot(x2(1,1),x2(1,2),'xb');
>> hold on;
>> plot(x2(2,1),x2(2,2),'xb');
>> hold on;
>> plot(x2(3,1),x2(3,2),'xb');
>> hold on;
>> plot(x3(1,1),x3(1,2),'y');
>> hold on;
>> plot(x3(2,1),x3(3,2),'y');
>> hold on;
>> plot(x3(3,1),x3(3,2),'y');
>> hold on;
>>
>> title('bayes分类:协方差矩阵不等');
>> xlabel('x1'),ylabel('x2');
>> grid;
>> box;
>> hold off
>> c
函数或变量 'c' 无法识别。
>>
>>
>> c=c1+c2+c3;
>> cc=inv(c):
cc=inv(c):
↑
错误: 表达式无效。请检查缺失或多余的字符。
>> cc=inv(c);
>> Q=str2sym('[x;y]');
>> gq1=simplify((cc*u1)*Q-0.5*u1'*cc*u1);
错误使用 symengine
Dimensions do not match.
出错 sym/privBinaryOp (第 1034 行)
Csym = mupadmex(op,args{1}.s, args{2}.s, varargin{:});
出错
*
(第 329 行)
X = privBinaryOp(A, B, 'symobj::mtimes');
>> q1=simplify((cc*u1)*Q-0.5*u1'*cc*u1);
错误使用 symengine
Dimensions do not match.
出错 sym/privBinaryOp (第 1034 行)
Csym = mupadmex(op,args{1}.s, args{2}.s, varargin{:});
出错
*
(第 329 行)
X = privBinaryOp(A, B, 'symobj::mtimes');
>> gq1=simplify((cc*u1)'*Q-0.5*u1'*cc*u1);
>> gq2=simplify((cc*u2)'*Q-0.5*u2'*cc*u2);
>> gq3=simplify((cc*u3)'*Q-0.5*u3'*cc*u3);
>> gq12=simplify(gq1-gq2);
>> gq23=simplify(gq2-gq3);
>> gq31=simplify(gq3-gq1);
>> figure;
>> hq1=ezplot(gq12);
>> hold on;
>> set(hq1,'color','red');
>> hq2=ezplot(gq23);
>> hold on;
>> set(hq2,'color','blue');
>> hq3=ezplot(gq31);
>> hold on;
>> set(hq3,'color','yellow');
>> legend('gq12','gq23','gq31');
>> plot(x1(1,1),x1(1,2),'or');
>> hold on;
>> plot(x1(1,1),x1(1,2),'or');
>> plot(x1(2,1),x1(2,2),'or');
>> hold on;
>> plot(x1(3,1),x1(3,2),'or');
>> hold on;
>> plot(x2(1,2),x2(1,2),'xb');
>> hold on;
>> plot(x2(1,2),x2(1,2),'xb');
>> plot(x2(2,2),x2(2,2),'xb');
>> hold on;
>> plot(x2(3,2),x2(3,2),'xb');
>> plot(x3(1,2),x3(1,2),'y');
>> hold on;
>> plot(x3(2,2),x3(2,2),'y');
>> hold on;
>> plot(x3(3,2),x3(3,2),'y');
>> hold on;
>> title('bayes分类:协方差矩阵相等');
>> xlabel('x1'),ylabel('x2');
>> grid;
>> V=[-3,3,-3,3];
>> axis(V);
>> hold off;
>>

最后

以上就是优美小甜瓜为你收集整理的基于最小错误率的Bayes分类器进行仿真的全部内容,希望文章能够帮你解决基于最小错误率的Bayes分类器进行仿真所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部