模糊模式识别基础
学习这篇博客需要上一篇的基础知识 模糊数学基础文章目录模糊模式识别基础1.择近原则定义汉明贴近度欧几里得贴近度黎曼贴近度则近原则栗:公式解:用python程序求解:2.最大隶属原则定义栗:解:模糊模式识别基础1.择近原则贴近度是对两个F集接近程度的一种度量定义设A,B,C∈F(U)A,B,C\in{F(U)}A,B,C∈F(U) 若映射N:F(U)×F(U)−>[0,1]N: F(U)\t
学习这篇博客需要上一篇的基础知识 模糊数学基础
模糊模式识别基础
1.择近原则
贴近度是对两个F集接近程度的一种度量
定义
设 A , B , C ∈ F ( U ) A,B,C\in{F(U)} A,B,C∈F(U) 若映射
N : F ( U ) × F ( U ) − > [ 0 , 1 ] N: F(U)\times{F(U)}->[0,1] N:F(U)×F(U)−>[0,1]
满足条件:
( 1 ) : N ( A , B ) = N ( B , A ) (1):N(A,B)=N(B,A) (1):N(A,B)=N(B,A)
( 2 ) : N ( A , A ) = 1 , N ( U , ∅ ) = 0 (2):N(A,A)=1,N(U,\emptyset)=0 (2):N(A,A)=1,N(U,∅)=0
( 3 ) : 若 A ∈ B ∈ C , 则 N ( A , C ) ≤ N ( A , B ) ∩ N ( B , C ) (3):若A\in{B}\in{C},则N(A,C)\leq{N(A,B)}\cap{N(B,C)} (3):若A∈B∈C,则N(A,C)≤N(A,B)∩N(B,C)
(注:这里本来应该用^符号来表示模糊集的交集,但是不方便打出来,求它也就是求min{})
则称 N(A,B)为F集A与B的贴近度.N称为F(U)上的贴近度函数.
贴近度函数一般有以下三种
汉明贴近度
若U={u1,u2,···,un},则
N ( A , B ) = 1 − 1 n ∑ i = 1 n ∣ A ( u i ) − B ( u i ) ∣ N(A,B)=1-\frac{1}{n}\sum_{i=1}^{n}{|A(u_i)-B(u_i)|} N(A,B)=1−n1i=1∑n∣A(ui)−B(ui)∣
当U为实数域上的闭区间[a,b]时,则有
N ( A , B ) = 1 − 1 b − a ∫ a b ∣ A ( u ) − B ( u ) ∣ d u N(A,B)=1-\frac{1}{b-a}\int_{a}^{b}|A(u)-B(u)|d_u N(A,B)=1−b−a1∫ab∣A(u)−B(u)∣du
(Hint:实际上这里的"="应该为定义符号)
欧几里得贴近度
若U={u1,u2,···,un},则当U=[a,b]时,则有
N ( A , B ) = 1 − 1 b − a ( ∫ a b ( ( A ( u ) − B ( u ) ) 2 d u ) 1 2 N(A,B)=1-\frac{1}{\sqrt{b-a}}{(\int_{a}^{b}(({A(u)-B(u))}^{2}du)}^{\frac{1}{2}} N(A,B)=1−b−a1(∫ab((A(u)−B(u))2du)21
黎曼贴近度
若 U = ( − ∞ , + ∞ ) U=(-\infty,+\infty) U=(−∞,+∞)为实数域,所涉及的函数都黎曼可积,且广义积分收敛,则两种黎曼贴近度分别记作
N 1 ( A , B ) = ∫ − ∞ + ∞ ( A ( u ) ∩ B ( u ) ) d u ∫ − ∞ + ∞ ( A ( u ) ∪ B ( u ) ) d u N1(A,B)=\frac{\int_{-\infty}^{+\infty}(A(u)\cap{B(u)})du}{\int_{-\infty}^{+\infty}(A(u)\cup{B(u)})du} N1(A,B)=∫−∞+∞(A(u)∪B(u))du∫−∞+∞(A(u)∩B(u))du (Hint: 这里本来应该用^符号来表示模糊集的交集,但是不方便打出来)
贴近原则
设 A i , B ∈ F ( u ) ( i = 1 , 2 , ⋅ ⋅ ⋅ , n ) , 若 存 在 i 0 , 使 设A_i,B\in{F(u)}(i=1,2,···,n),若存在i_0,使 设Ai,B∈F(u)(i=1,2,⋅⋅⋅,n),若存在i0,使
N ( A i 0 , B ) = m a x { N ( A 1 , B ) , N ( A 2 , B ) , ⋅ ⋅ ⋅ , N ( A n , B ) } N(A_i0,B)=max\{N(A1,B),N(A2,B),···,N(An,B)\} N(Ai0,B)=max{N(A1,B),N(A2,B),⋅⋅⋅,N(An,B)}
则 认 为 B 与 A i 0 最 贴 近 , 即 判 定 B 与 A i 0 为 一 类 , 该 原 则 称 为 择 近 原 则 . 则认为B与A_i0最贴近,即判定B与A_{i0}为一类,该原则称为择近原则. 则认为B与Ai0最贴近,即判定B与Ai0为一类,该原则称为择近原则.
栗:
设标准库集合(向量表示法)A1=(0.4,0.3,0.5,0.3), A2=(0.3,0.3,0.4,0.4), A3=(0.2,0.3,0.3,0.3),
待识别集合B=(0.2,0.3,0.4,0.3),试确定B属于哪一类.
公式解:
利用欧几里得贴近度分别计算 N(B,A1) N(B,A2) N(B,A3)
得到N(B,A3)=0.95最大 因此集合库B与集合库中A3最为接近,因此B归于A3类.
用python程序求解:
import numpy as np
a=np.array([[0.4,0.3,0.5,0.3],[0.3,0.3,0.4,0.4],[0.2,0.3,0.3,0.3]])
b=np.array([0.2,0.3,0.4,0.3]); N=[]
for i in range(len(a)): N.append(1-(np.linalg.norm(a[i]-b))/2) ##这里的2就是是1/sqrt(a.size/a.shape[0])
print("贴近度分别为: ",N)
这里使用了numpy的linalg模块 linalg就是linear和algebra的组合 也就是说这个库主要是用来研究线性代数的 np.linalg.norm是用来求范数的,可以是向量范数或者是矩阵范数
默认情况下是求L2(二范数) 也就是最常见的模 平方和开方
2.最大隶属原则
定义
设 A i ∈ F ( U ) ( i = 1 , 2 , ⋅ ⋅ ⋅ , n ) , 对 u 0 ∈ U , 若 存 在 i 0 , 使 设A_i\in{F(U)}(i=1,2,···,n),对u_0\in{U},若存在i_0,使 设Ai∈F(U)(i=1,2,⋅⋅⋅,n),对u0∈U,若存在i0,使
A i 0 ( u 0 ) = m a x { A 1 ( u 0 ) , A 2 ( u 0 ) , ⋅ ⋅ ⋅ , A n ( u 0 ) } A_{i0}(u_0)=max\{A1(u_0),A2(u_0),···,An(u_0)\} Ai0(u0)=max{A1(u0),A2(u0),⋅⋅⋅,An(u0)}
则 认 为 u 0 相 对 地 隶 属 于 A i 0 , 这 就 是 最 大 隶 属 原 则 则认为u_0相对地隶属于A_{i0},这就是最大隶属原则 则认为u0相对地隶属于Ai0,这就是最大隶属原则
栗:
考虑人的年龄问题,分为年轻、中年、老年三类,分别对应三个F集A1,A2,A3.设论域U=(0,100],且对
x ∈ ( 0 , 100 ] x\in{(0,100]} x∈(0,100],有
A 1 ( x ) = { 1 , 0 < x ≤ 20 1 − 2 ( x − 20 20 ) 2 , 20 < x ≤ 30 2 ( x − 40 20 ) 2 , 30 < x ≤ 40 0 , 40 < x ≤ 100 A1(x)=\begin{cases} 1, 0<x\leq20\ \\1-2({\frac{x-20}{20})}^2, 20<x\leq30 \\2({\frac{x-40}{20})}^2, 30<x\leq40 \\ 0,40<x\leq100\end{cases} A1(x)=⎩⎪⎪⎪⎨⎪⎪⎪⎧1,0<x≤20 1−2(20x−20)2,20<x≤302(20x−40)2,30<x≤400,40<x≤100
A 2 ( x ) = { 0 , 0 < x ≤ 50 2 ( x − 20 20 ) 2 , 50 < x ≤ 60 1 − 2 ( x − 40 20 ) 2 , 60 < x ≤ 70 1 , 70 < x ≤ 100 A2(x)=\begin{cases} 0, 0<x\leq50\ \\2({\frac{x-20}{20})}^2, 50<x\leq60 \\ 1-2({\frac{x-40}{20})}^2, 60<x\leq70 \\ 1,70<x\leq100\end{cases} A2(x)=⎩⎪⎪⎪⎨⎪⎪⎪⎧0,0<x≤50 2(20x−20)2,50<x≤601−2(20x−40)2,60<x≤701,70<x≤100
1 − A 1 ( x ) − A 3 ( x ) = { 0 , 0 < x ≤ 20 2 ( x − 20 20 ) 2 , 20 < x ≤ 30 1 − 2 ( x − 40 20 ) 2 , 30 < x ≤ 40 1 , 40 < x ≤ 50 1 − 2 ( x − 40 20 ) 2 , 50 < x ≤ 60 2 ( x − 70 20 ) 2 , 60 < x ≤ 70 0 , 70 < x ≤ 100 1-A1(x)-A3(x)=\begin{cases} 0, 0<x\leq20\ \\2({\frac{x-20}{20})}^2, 20<x\leq30 \\ 1-2({\frac{x-40}{20})}^2, 30<x\leq40 \\ 1,40<x\leq50 \\ 1-2({\frac{x-40}{20})}^2, 50<x\leq60 \\2({\frac{x-70}{20})}^2, 60<x\leq70 \\ 0, 70<x\leq100 \end{cases} 1−A1(x)−A3(x)=⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧0,0<x≤20 2(20x−20)2,20<x≤301−2(20x−40)2,30<x≤401,40<x≤501−2(20x−40)2,50<x≤602(20x−70)2,60<x≤700,70<x≤100
解:
某人40岁,根据上式,A1(40)=0, A2(40)=1,A3(40)=0,
则A2(40)=max{A1(40),A2(40),A3(40)}=1,
按最大隶属原则,他应该是中年人.
又如当x=35时,A1(35)=0.125,A2(35)=0.875,A3(35)=0.
可见35岁的人应该是中年人.
所以,建立一个模糊数学模型的关键就是隶属函数的确定.
更多推荐
所有评论(0)