perceptron and ANN
2024-09-30 10:02:54
%% Perceptron Regression
close all
clear %%load data
x = load('ex4x.dat');
y = load('ex4y.dat'); x=ones(,);
for i=:
x(i,)=mod(i,);
x(i,)=floor(i/);
end for i=:
if (x(i,)+x(i,))<
y(i)=;
else
y(i)=;
end
end [m, n] = size(x); % Add intercept term to x
x = [ones(m, ), x]; %%draw picture
% find returns the indices of the
% rows meeting the specified condition
pos = find(y == );
neg = find(y == );
% Assume the features are in the 2nd and 3rd
% columns of x
figure('NumberTitle', 'off', 'Name', '感知机');
plot(x(pos, ), x(pos,), '+');
hold on;
plot(x(neg, ), x(neg, ), 'o'); %进行初始化
s = ; % 标识符,当s=0时,表示迭代终止
n = ; % 表示迭代的次数
N = ; %定义N为最大分类判别次数,判别次数超过此值则认定样本无法分类。
w= [,,]'; % 取权向量初始值 % 开始迭代
while s
J = ; % 假设初始的分类全部正确
for i = :size(pos)
if (x(pos(i),:)*w)<= % 查看x1分类是否错误,在x属于w1却被错误分类的情况下,w'x<0
w = w+x(pos(i),:)';% 分类错误,对权向量进行修正
J = ; % 置错误标志位为1
end
end
for i = :size(neg)
if (x(neg(i),:)*w)>= % 查看x2分类是否错误,在x属于w2却被错误分类的情况下,w'x>0
w = w-x(neg(i),:)';% 分类错误,对权向量进行修正
J = ; % 置错误标志位为1
end
end
if J== % 代价为0,即分类均正确
s = ; % 终止迭代
end
n = n+; % 迭代次数加1
if n == N
s=;
end
end w=[;w()/w();w()/w()]; %%Calculate the decision boundary line
plot_x = [min(x(:,)), max(x(:,))];
plot_y = (-./w()).*(w().*plot_x +w());
plot(plot_x, plot_y)
legend('Admitted', 'Not admitted', 'Decision Boundary')
hold off
最新文章
- GeoServer中WMS、WFS的请求规范
- 【bzoj1923】 Sdoi2010—外星千足虫
- Win10 驱动装不上,提示:Windows 无法验证此设备所需的驱动程序的数字签名。该值受安全引导策略保护,无法进行修改或删除。
- svn branch and merge(svn切换分支和合并)详解
- Android--再探MVP模式
- C语言结构体的初始化
- 一行代码设置TLabel.Caption的前世今生
- [hadoop源代码解读] 【SequenceFile】
- 【Eclipse】Tomcat 改变发布路径
- linux下卸载和安装mysql数据库的方法
- jdk源码剖析五:JDK8-废弃永久代(PermGen)迎来元空间(Metaspace)
- Beta的计划和人员的变动
- 【BZOJ1087】【SCOI2005】互不侵犯(状态压缩,动态规划)
- JAVA写JSON的三种方法,java对象转json数据
- javaweb中的文件上传的一般写法(初次接触时写)
- EntityFramwork 七七八八
- STM32学习笔记:【003】GPIO
- 更改h标签的字体粗细
- WIN10 评估版 查看过期时间
- 第三百九十五节,Django+Xadmin打造上线标准的在线教育平台—Xadmin集成富文本框