📄 ex1.m
字号:
%实验一:贝叶斯分类实验
clear
xx1(:,1) = normrnd(10,4,20,1);%鲈鱼长度
xx1(:,2) = normrnd(12,4,20,1);%鲈鱼亮度
yy1(:,1)=normrnd(12,3,20,1);%鲑鱼长度
yy1(:,2)=normrnd(14,3,20,1);%鲑鱼亮度
%第1题
t=[normrnd(11,3.5);normrnd(13,3.5)];%测试数据
x1=mean(xx1(:,1));
y1=mean(xx1(:,2));
x2=mean(yy1(:,1));
y2=mean(yy1(:,2));
plot(xx1(:,1),xx1(:,2),'ro');
xlabel('长度');
ylabel('亮度');
hold on;
plot(yy1(:,1),yy1(:,2),'bd');
plot(x1,y1,'r*',x2,y2,'b*');
if x1~=x2 & y1~=y2
k=-(x1-x2)/(y1-y2);
b=(y1+y2)/2-k*(x1+x2)/2;
tx=2:0.5:20;
ty=k*tx+b;
temp=(t(2)-k*t(1)-b)*(y1-k*x1-b);
elseif x1~=x2 & y1==y2
tx=(x1+x2)/2;
ty=2:0.5:20;
temp=((x1+x2)/2-x1)*((x1+x2)/2-t(1));
else ty=(y1+y2)/2;
tx=2:0.5:20;
temp=((y1+y2)/2-y1)*((y1+y2)/2-t(2));
end
plot(tx,ty,'k:');
plot(t(1),t(2),'gp');
legend('鲈鱼','鲑鱼','鲈鱼均值点','鲑鱼均值点','分类边界','测试数据');
hold off;
fprintf('第一题:');
fprintf('测试数据为:(%f,%f)\n',t(1),t(2));
if temp>0
fprintf('根据判断结果,此样本点表示的应该是鲈鱼\n');
else
fprintf('根据判断结果,此样本点表示的应该是鲑鱼\n');
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -