本学期选了模式识别的课程,该期末考试了, 将本课程的几种基本算法整理一下。

0.最小距离分类判别算法

(1)定义:是指求出未知类别向量到要识别各类别代表向量中心点的距离,将未知类别向量归属于距离最小一类的一种图像分类方法。

(2)用Matlab实现的一个算法一看就懂了:

clc
clear all
close all
%% 已知样本特征向量
 %class_w1=[2 2 2 3 3 2.5 1.5 3.5 4 0.5;3 2 4 3 4 3 2 2.5 4 0.5]  
 %class_w2=[0 -2 -1 1 3 -2 -3 -5 4;2.5 2 -1 -2 0 -2 -4 -2 -1]    
  class_w1=[2 2 2 3;0 2 4 3]  
 class_w2=[0 -2 -1 1 3;3 2 -1 -2 -1]   
% 在二维平面上绘制两类点
 plot(class_w1(1,:),class_w1(2,:),'r*')  
 hold on;                                      
  plot(class_w2(1,:),class_w2(2,:),'b+') 
 hold on;                                      
   title('苹果橘子的二维图像')  
%找到他们的均值
   R_w1 = mean(class_w1')'
   R_w2 = mean(class_w2')'
    %分别获取他们的x坐标和y坐标
   R_w1_x=R_w1(1,:)
   R_w1_y=R_w1(2,:)
   R_w2_x=R_w2(1,:)
   R_w2_y=R_w2(2,:)
   %求两点的中点
   tall_x=(R_w1_x+R_w2_x)/2
   tall_y=(R_w1_y+R_w2_y)/2
   %求两点的斜率
   k=(R_w2_y-R_w1_y)/(R_w2_x-R_w1_x);
     %求两点的斜率的负倒数
   k=-1*(1/k);
   b=tall_y-k*tall_x;
    %% 画分类线 用斜率式求直线
syms x  y;
ss=k*x + b-y;
ezplot(ss,[-5,5,-5,5])
    axis equal

 1.最近邻算法

(1)最近邻算法:为了判定未知样本的类别,以全部训练样本作为代表点,计算未知样本与所有训练样本的距离,并以最近邻者的类别作为决策未知样本类别的唯一依据。

 (2)公式表达:对于S类别问题,每类有Ni个样本,则第i类的识别函数是(i=1,2,…S)




2. KNN算法

(1)KNN算法:K-最近邻算法是最近邻算法的一个延伸。基本思路是:选择未知样本一定范围内确定个数的K个样本,该K个样本大多数属于某一类型,则未知样本判定为该类            型。

(2)数学表达式:


(3)决策规则:


Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐