1 clear all;
2 close all;
3 clc;
4
5 %生成两组已标记数据
6 randn('seed',1);
7 mu1=[0 0];
8 S1=[0.5 0;
9 0 0.5];
10 P1=mvnrnd(mu1,S1,100);
11
12 mu2=[0 6];
13 S2=[0.5 0;
14 0 0.5];
15 P2=mvnrnd(mu2,S2,100);
16
17 mu3=[6 6];
18 S3=[0.5 0;
19 0 0.5];
20 P3=mvnrnd(mu3,S3,100);
21
22 mu4=[6 0];
23 S4=[0.5 0;
24 0 0.5];
25 P4=mvnrnd(mu4,S4,100);
26
27 P = [P1;P2;P3;P4]';
28
29 %设置标记
30 T1 = zeros(100,1);
31 T2 = ones(100,1);
32
33 T11 = [T1;T1;T2;T2]';
34 T22 = [T1;T2;T2;T1]';
35 %T11 = [T1;T2;T1;T1]';
36 %T22 = [T1;T1;T1;T2]';
37
38 net1 = newp([1 1; 1 1],1);
39 net1 = train(net1,P,T11);
40
41 net2 = newp([1 1; 1 1],1);
42 net2 = train(net2,P,T22);
43
44 plotpv(P,[T1;T2;T1;T2]'); %画出数据
45 plotpc(net1.iw{1,1},net1.b{1,1}) %画出分类线
46 plotpc(net2.iw{1},net2.b{1}) %画出分类线
47
48 %生成测试数据
49 mu2=[3 3 ];
50 S2=[2 0 ;
51 0 2];
52 Q=mvnrnd(mu2,S2,100)';
53 Y1 = sim(net1,Q) ; %Y是利用感知器net对Q进行分类的结果
54 Y2 = sim(net2,Q);
55 Y = xor(Y1,Y2);
56 figure;
57 plotpv(Q,Y); %画出输入的结果表示的点
58 plotpc(net1.iw{1},net1.b{1}) %画出分类线
59 plotpc(net2.iw{1},net2.b{1}) %画出分类线
对已标记数据分类:
对测试数据分类:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)