1.理论基础
最简单的识别方法就是模板匹配,就是把未知样品和一个标准模板相比,看它们是否相同或相似。下面讨论两类别和多类别的情况。
(1)两类别
设有两个标准样品模板为A和B,其特征向量为n维特征:X A =(x A1 ,x A2 ,…,x An ) T 和X B =(x B1 ,x B2 ,…,x Bn ) T 。任何一个待识别的样品X,其特征向量为:X=(x 1 ,x 2 ,…,x n ) T ,那么,它是A,还是B呢?
用模板匹配方法来识别,若X=X A ,则该样品为A,若X=X B ,则该样品为B。怎样知道X=X A ,还是X=X B 呢?最简单的识别方法就是利用距离来判别。如果X距离X A 比距离X B 近,则X属于X A ,否则属于X B 。这就是最小距离判别法。
任意两点X,Y之间的距离:
根据距离远近可作为判据,构成距离分类器,其判别法则为
(2)多类别
设有M个类别:ω 1 ,ω 2 ,…,ω M 。每类由若干个向量表示,如ω i 类,有
对于任意被识别的样品X,有
计算距离d(X i ,X),若存在某一个i,使
d(X i ,X)<d(X j ,X),j=1,2,…,M,i≠j
即到某一个样品最近,则X∈ω i 。
具体判别时,X,Y两点距离可以用|X-Y| 2 表示,即
式中的 为特征的线性函数,可作为判别函数
若d(X,X i )=mind i (X),则X∈ω i 。这就是多类问题的最小距离分类法。
2.实现步骤
① 待测样品X与训练集里每个样品X i 的距离为d(X,X i )=|X-X i | 2 。
② 循环计算待测样品和训练集中各已知样品之间的距离,找出距离待测样品最近的已知样品,该已知样品的类别就是待测样品的类别。
3.编程代码
4.效果图
远行效果如图3-5所示。
图3-5 模板匹配法
在使用模板匹配法之前,先对特征进行主成分分析。按照一定贡献值,提取前m个主分量,用较低维数的特征来进行分类。
1.实现步骤
① 选取各类全体样本组成矩阵X n×N ,待测样品为X n×1 。
② 计算X n×N 的协方差矩阵S n×n 。
③ 计算S n×n 的特征值λ 1 ≥λ 2 ≥…≥λ n 和特征向量C n×n 。
④ 根据一定的贡献率,选取C n×n 的前m列,构成C n×m 。
⑤ 计算样本库样本主成分X m×N = X n×N 和样品主成分X m×1 = X n×1 。
⑥ 采用模板匹配法进行多类别分类。
2.编程代码
3.效果图
运行效果如图3-6所示。
图3-6 使用PCA的最邻近模板匹配法
1.理论基础
设有M个类别:ω 1 ,ω 2 ,…,ω M 。每类有 N i 个样品,如ω i 类,可表示为 X (ωi) =( , 。对于任意待识别的样品X=(x 1 ,x 2 ,x 3 ,…,x n ),计算距离d 2 (X,ω i )= ),其中 为第i类的类中心。比较X到各类的距离若满足下式
则X∈ω i 。
2.实现步骤
① 选取某一类样本X。
② 计算类中心 。
③ 待测样品X与训练集里每类样品X i 的距离采用下式计算。
④ 循环计算待测样品和训练集中各类中心距离,找出距离待测样品最近的已知类别,该类别就是待测样品的类别。
3.编程代码
4.效果图
运行效果如图3-7所示。
图3-7 基于类中心的欧式距离法
1.理论基础
设有M个类别:ω 1 ,ω 2 ,…,ω M 。每类有 N i 个样品,如ω i 类,可表示为 X (ωi) =( , 。对于任意待识别的样品X=(x 1 ,x 2 ,x 3 ,…,x n ),计算该样品到各类中心的马氏距离d 2 (X,ω i )= ,其中 为第i类的类中心,S为全体样本的协方差。比较X到各类的距离若满足下式
d(X,ω i )<d(X,ω j )j=1,2,…,M,i≠j
则X到ω i 类最近,则X∈ω i 。
2.实现步骤
(1)待测样品X与训练集里每个类中心的距离采用马氏距离法,计算公式为
(2)循环计算待测样品到各类中心的马氏距离,找出距离最小的类别作为该待测样品的类别。
3.编程代码
4.效果图
运行效果如图3-8所示。
图3-8 使用马氏距离法识别结果
1.实现步骤
① 待测样品X与训练集里每个样品X i 的距离采用下式计算。
② 循环计算待测样品和训练集中各已知样品之间的距离,找出距离待测样品最近的已知样品,该已知样品的类别就是待测样品的类别。
2.编程代码
3.效果图
运行效果如图3-9所示。
图3-9 使用夹角余弦距离法的识别结果
1.实现步骤
① 将样本库中的每个样本进行二值化,取阈值T=0.05。
② 利用夹角余弦距离法对待测样品X进行分类。
2.编程代码
3.效果图
运行效果如图3-10所示。
图3-10 使用二值化的夹角余弦距离法
1.实现步骤
① 将样本库中的每个样本进行二值化,取阈值T=0.05。
② 待测样品X与训练集里每个样品X i 的距离
③ 循环计算待测样品和训练集中各已知样品之间的距离,找出距离待测样品最近的已知样品,该已知样品的类别就是待测样品的类别。
2.编程代码
3.效果图
运行效果如图3-11所示。
图3-11 使用二值化Tanimoto距离测度