学习这篇博客需要上一篇的基础知识 模糊数学基础

模糊模式识别基础

1.择近原则

贴近度是对两个F集接近程度的一种度量

定义

A , B , C ∈ F ( U ) A,B,C\in{F(U)} A,B,CF(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):ABC,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)=1n1i=1nA(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)=1ba1abA(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)=1ba 1(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,BF(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}为一类,该原则称为择近原则. BAi0BAi0.

在这里插入图片描述

栗:

设标准库集合(向量表示法)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,使 AiF(U)(i=1,2,,n),u0U,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},这就是最大隶属原则 u0Ai0,

栗:

考虑人的年龄问题,分为年轻、中年、老年三类,分别对应三个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<x20 12(20x20)2,20<x302(20x40)2,30<x400,40<x100

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<x50 2(20x20)2,50<x6012(20x40)2,60<x701,70<x100

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} 1A1(x)A3(x)=0,0<x20 2(20x20)2,20<x3012(20x40)2,30<x401,40<x5012(20x40)2,50<x602(20x70)2,60<x700,70<x100

解:

某人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岁的人应该是中年人.

所以,建立一个模糊数学模型的关键就是隶属函数的确定.

Logo

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

更多推荐