模糊逻辑在分类中的应用示例

5
我需要使用模糊逻辑对物体进行分类。每个物体由4个特征描述 - {大小,形状,颜色,纹理}。每个特征都通过语言术语和一些隶属函数进行模糊化。问题在于我不知道如何进行去模糊化以便知道未知物体属于哪个类别。使用Mamdani Max-Min推理,有人能帮助解决这个问题吗?
物体 = {垃圾桶,罐子,瓶子,杯子} 或表示为{1,2,3,4}。每个特征的模糊集如下:
特征:大小
$\tilde{Size_{Large}}$ = {1//1,1/2,0/3,0.6/4}  for crisp values in range 10cm - 20 cm

$\tilde{Size_{Small}}$ = {0/1,0/2,1/3,0.4/4}  (4cm - 10cm)

形状:
$\tilde{Shape_{Square}}$ = {0.9/1, 0/2,0/3,0/4}  for crisp values in range 50-100

$\tilde{Shape_{Cylindrical}}$ = {0.1/1, 1/2,1/3,1/4}  (10-40)

功能:颜色

$\tilde{Color_{Reddish}}$ = {0/1, 0.8/2, 0.6/3,0.3/4}  say red values in between 10-50 (not sure, assuming)

$\tilde{Color_{Greenish}}$ = {1/1, 0.2/2, 0.4/3, 0.7/4}  say color values in 100-200

特性:纹理

$\tilde{Tex_{Coarse}}$ = {0.2/1, 0.2/2,0/3,0.5/4}  if texture crisp values 10-20

$\tilde{Tex_{Shiny}}$ = {0.8/1, 0.8/2, 1/3, 0.5/4}  30-40

分类的 If-Then-Else 规则如下:

R1:如果物体的大小大而圆柱形,颜色呈绿色且质地粗糙,则该物体是垃圾桶。

或者为了节省空间,以表格形式呈现:

Object type  Size   Shape          Color        Texture
Dustbin :   Large  cylindrical       greenish   coarse
Can :       small  cylindrical       reddish    shiny
Bottle:     small  cylindrical        reddish    shiny
Cup :       small  cylindrical       greenish   shiny

接下来,有一个带有清晰值X = {12cm, 52,120,11}的未知特征。我该如何对其进行分类?或者我的理解是否不正确,需要重新表述整个问题?


你有没有考虑使用贝叶斯网络而不是模糊逻辑?至少每个元素都有明确的物理意义。 - mdaoust
2个回答

0
模糊逻辑意味着每个模式都属于一个类别,到一定程度。换句话说,对于每个模式,算法的输出可以是相似性百分比向量,总和为1。然后,通过检查阈值来决定类别。这意味着模糊逻辑的目的是量化不确定性。如果您需要针对您的情况做出决策,则简单的最小距离分类器或多数表决就足够了。否则,请再次考虑问题,并考虑“数量因素”。

谢谢您的回复,但是它并不清楚,您能否详细说明如何做出决策?应该考虑去模糊化吗?我如何定义类别的隶属函数,以便说某个特征属于一个类别。这对我来说不是很清楚。所以,Dustbin 是一个类,那么如何表示隶属函数(如果需要的话),以及如何分类呢? - SKM

0
一种可能的方法是为每个特征的不同属性定义质心,例如,Large_size=15cm和Small_size=7cm。隶属函数可以定义为距离这些质心的函数。然后您可以执行以下操作: 1)计算每个特征的欧几里得差异*高斯或Butterworth核(以捕获质心周围的范围)。为每个类别准备一个核,例如,垃圾桶作为目标需要大尺寸,粗糙纹理等。 2)计算所有上述内容的乘积(这是朴素贝叶斯方法)。模糊逻辑到此结束。 3)然后,您可以将模式分配给具有最高隶属函数值的类别。 抱歉回答太晚了,希望这会有所帮助。

抱歉,我今天才看到您的回复。我无法理解类标签是如何分配的。通常情况下,当神经元输出[100]作为类1时,或者[001]作为类2时,我们会这样说。但在模糊情况下,当您说将模式分配给具有最高成员函数值的类时,该怎么做呢? - SKM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接