感知机 MATLAB实现(数据+代码)
2017-10-27 22:33
295 查看
感知机 MATLAB实现(数据+代码)
1.数据如图片所示:(命名为data.xlsx)
2.代码如下:
clear;clc; %% 载入数据 data = xlsread('data.xlsx'); %% 绘制数据点 sample = data(:,1:2); % 每一行代表一个数据点 label = data(:,end); draw(sample, label) hold on %% 初始化w,b,alpha w = [-1,-2]; b = 2; alpha = 1; % learning rate %% 更新 w,b while 1 [idx_misclass, counter] = class(sample, label, w, b); if (counter~=0) R = unidrnd(counter); w = w + alpha * sample(idx_misclass(R),:) * label(idx_misclass(R)); b = b + alpha * label(idx_misclass(R)); else break end end %% 绘制线性分类器 x1 = 1:0.01:10; x2 = (-b-w(1).*x1)./w(2); plot(x1, x2) function [idx_misclass, counter] = class(sample, label, w, b) counter = 0; idx_misclass = []; for i=1:length(label) if (label(i)*(w*sample(i,:)'+b)<=0) idx_misclass = [idx_misclass i]; counter = counter + 1; end end end function draw(sample, label) idx_pos = find(label==1); idx_neg = find(label~=1); plot(sample(idx_pos, 1), sample(idx_pos, 2),'ro') hold on plot(sample(idx_neg, 1), sample(idx_neg, 2),'b*') axis([0 10 0 10]) grid on end
3. 结果如下:
相关文章推荐
- Matlab通过sina web接口获取个数即时股票数据函数实现代码
- 【Matlab】自编代码实现感知机
- 对CTreeCtrl数据加载方式的改进,实现代码的重用
- AjaxPro.NET实现TextBox智能获取服务端数据功能(Asp.net 2.0)(示例代码下载)
- AjaxPanel自定义控件实现页面无刷新数据交互(做了个示例程序, 效果确实比较Cool, 用法非常简单! )(示例代码下载)
- AjaxPanel自定义控件实现页面无刷新数据交互(做了个示例程序, 效果确实比较Cool, 用法非常简单! )(示例代码下载)
- newxy+struts实现零java代码或极少java代码开发以数据为中心的web运用系统 作者:胡立新
- AjaxPro.NET实现TextBox智能获取服务端数据功能(Asp.net 2.0)(示例代码下载)
- AjaxPanel自定义控件实现页面无刷新数据交互(做了个示例程序, 效果确实比较Cool, 用法非常简单! )(示例代码下载)
- Ajax 实现在WebForm中拖动控件并即时在服务端保存状态数据 (Asp.net 2.0)(示例代码下载)
- 转载:Ajax 实现在WebForm中拖动控件并即时在服务端保存状态数据 (Asp.net 2.0)(示例代码下载)
- 如何自动更新JTable中的数据(代码实现)
- C#.NET示例读写xml所有节点的代码实现方法和读取xml节点的数据总结
- AjaxPanel自定义控件实现页面无刷新数据交互(做了个示例程序, 效果确实比较Cool, 用法非常简单! )(示例代码下载)
- newxy技术零java代码实现数据分页显示 作者:胡立新
- 一个将数据文件转换成excel文件打印的java实现方法的代码片断(Struts+poi)
- DataView数据视图实现数据过滤,排序(代码调试通过)
- Ajax即时实现服务端数据验证(Asp.net 2.0)(示例代码下载)
- 如何自动更新JTable中的数据(代码实现)
- 数据加载等待页面的VB.NET代码实现