Fisher线性判别与感知器算法Matlab实现

参考用书:


本文是在学习此书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(:,i
  • 0
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
Fisher线性判别是一种用于模式分类和特征选择的经典线性判别方法。该方法的基本思想是通过线性投影将样本映射到一维或多维空间中,使得同一类别的样本距离尽可能近,不同类别的样本距离尽可能远。通过计算类内散布矩阵和类间散布矩阵的比值,找到最佳投影方向,实现特征的降维和分类目标的达到。 感知器算法(Perceptron Algorithm)是一种二分类的线性分类算法。该算法的主要思想是通过迭代的方式调整权重,使得错分类的样本离分类超平面更近,从而最终得到一个可以对样本进行正确分类的超平面。感知器算法适用于线性可分的样本,但对于线性不可分的样本会发散。 k近邻算法(k-Nearest Neighbors, k-NN)是一种基于邻近性的分类算法。该算法的核心思想是根据样本之间的距离进行分类。在训练阶段,将所有样本的特征向量与对应的标签存储起来;在预测阶段,根据样本的特征向量与已知样本的距离,选择与该样本最临近的k个已知样本,统计这k个样本所属类别的频次,最后将频次最高的类别作为预测结果。k的选择会影响分类的准确性和计算复杂度,通常需要通过交叉验证进行确定。 总结起来,Fisher线性判别是一种用于模式分类和特征选择的方法,感知器算法是一种线性二分类算法,k近邻算法是一种基于邻近性的分类算法

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值