Fisher线性判别与感知器算法Matlab实现
来源:互联网 发布:太平洋电脑软件下载 编辑:程序博客网 时间:2024/05/01 03:17
参考用书:
本文是在学习此书Chapter4时,跑的实验。
4.1.4 Fisher‘s Linear Discriminate
- function [w y1 y2 Jw] = FisherLinearDiscriminat(data, label)
- % FLD Fisher Linear Discriminant.
- % data : D*N data
- % label : {+1,-1}
- % Reference:M.Bishop Pattern Recognition and Machine Learning p186-p189
- % compute means and scatter matrix
- %-------------------------------
- inx1 = find( label == 1);
- inx2 = find( label == -1);
- n1 = length(inx1);
- n2 = length(inx2);
- m1 = mean(data(:,inx1),2);
- m2 = mean(data(:,inx2),2);
- S1 = (data(:,inx1)-m1*ones(1,n1))*(data(:,inx1)-m1*ones(1,n1))';
- S2 = (data(:,inx2)-m2*ones(1,n2))*(data(:,inx2)-m2*ones(1,n2))';
- Sw = S1 + S2;
- % compute FLD
- %-------------------------------
- W = inv(Sw)*(m1-m2);
- y1 = W'*m1; %label=+1
- y2 = W'*m2; %label=-1
- w = W;
- Jw = (y1-y2)^2/(W'*Sw*W);
4.1.7 The perceptron algorithm
- function [w, mis_class] = perceptron(X,t)
- % The perceptron algorithm
- %by LiFeiteng email:lifeiteng0422@gmail.com
- % X : D*N维输入数据
- % t : {+1,-1}标签
- %
- % w : [w0 w1 w2]
- % mis_class : 错误分类数据点数
- % 对t做简单的检查
- if size(unique(t),2)~=2
- return
- elseif max(t)~=1
- return
- elseif min(t)~=-1
- return
- end
- [dim num_data] = size(X);
- w = ones(dim+1,1);%%w = [w0 w1 w2]'
- X = [ones(1,num_data); X];
- maxiter = 100000;
- mis_class = 0;
- iter = 0;
- while iter<maxiter
- iter = iter+1;
- y = w'*X;
- label = ones(1, num_data);%{+1,-1}
- label(y<=0) = -1;
- index = find(label~=t); %错误分类的点
- mis_class = numel(index); %错误分类点的数目
- if mis_class==0
- break
- end
- for i = 1:mis_class
- w = w + X(:,index(i))*t(index(i));
- end
- end
- if iter==maxiter
- disp(['达到最大迭代次数' num2str(maxiter)])
- end
0 0
- Fisher线性判别与感知器算法Matlab实现
- Fisher线性判别与感知器算法Matlab实现
- 多分类Fisher线性判别算法
- 线性分类器:Fisher线性判别
- 线性分类器之Fisher线性判别
- Fisher线性判别
- Fisher线性判别
- Fisher线性判别(*)
- Fisher线性判别
- Fisher线性判别
- 【模式识别】Fisher线性判别
- Fisher线性判别
- fisher线性判别
- 模式识别五--PCA主分量分析与Fisher线性判别
- 感知器算法----Matlab实现
- 基于fisher线性判别法的分类器设计
- LDA 线性判别分析/Fisher线性判别
- python实现自适应线性感知器算法
- 共享池调整
- java的修饰符
- 20141016 【Arduino + C51单片机】 八段数码管--数字循环显示
- HTTP头信息
- 自己SQL的总结
- Fisher线性判别与感知器算法Matlab实现
- MTLAB中的legend和xlabel,ylabel设置
- Find Minimum in Rotated Sorted Array
- EM算法学习资料备忘
- poj3176--Cow Bowling(dp:数塔问题)
- hdu4612——Warm up
- 线程的休眠和强制运行
- git使用笔记
- JSP+JQuery+AJAX继承模板页面开发