Пример за размита логика в класификацията

Трябва да класифицирам обекти с помощта на размита логика. Всеки обект се характеризира с 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}. Как да го класифицирам? Или моето разбиране е неправилно, че трябва да преформулирам всичко?


person SKM    schedule 03.06.2014    source източник
comment
Обмисляли ли сте да използвате Bays Net вместо Fuzzy Logic? Там поне има ясен физически смисъл на всичко.   -  person mdaoust    schedule 12.06.2014


Отговори (2)


Размитата логика означава, че всеки модел принадлежи към клас до ниво. С други думи, изходът на алгоритъма за всеки модел може да бъде вектор от да кажем проценти на сходство с всеки клас, които сумират до единица. Тогава решението за клас може да бъде взето чрез проверка на праг. Това означава, че целта на размитата логика е да определи количествено несигурността. Ако имате нужда от решение за вашия случай, прост класификатор за минимално разстояние или мнозинство гласуване трябва да е достатъчно. В противен случай дефинирайте отново проблема си, като вземете под внимание "числовия фактор".

person fyts    schedule 02.07.2014
comment
Благодаря ви за отговора, но не е ясен и бихте ли разяснили как да вземете решение? Трябва ли да се вземе предвид дефузификацията? Как да дефинирам функция за членство за класовете, за да кажа, че определена характеристика принадлежи към клас. Това не ми е ясно. И така, Dustbin е клас, тогава как да се представи функцията за членство, ако изобщо е необходима, и как да се класифицира? - person SKM; 02.07.2014

Един възможен подход може да бъде да се дефинират центроиди за отделен атрибут на всяка характеристика, например Large_size=15cm и Small_size=7cm. След това функцията на принадлежност може да се дефинира като функция на разстоянието от тези центроиди. След това можете да направите следното: 1) Изчислете евклидовата разлика * ядро ​​на Гаус или Бътъруърт (за да обхванете диапазона около центроида) за всяка функция. Подгответе ядро ​​за всеки клас, например кошчето за боклук като цел се нуждае от голям размер, груба текстура и т.н. 2) Изчислете произведението на всичко по-горе (това е подход на Naive Bayes). Размитата логика свършва тук. 3) След това можете да присвоите модела на класа с най-висока стойност на функцията за членство. Съжалявам, че отнехте твърде много време за отговор, надявам се това да помогне.

person fyts    schedule 09.07.2014
comment
Съжалявам, днес забелязах отговора. Не мога да разбера как се присвояват етикетите на класа. Като цяло казваме, че когато неврон извежда [100] като клас 1; или [001] като клас 2. Как да направите за размит случай, когато кажете, че моделът е присвоен на класа с най-висока стойност на функцията за принадлежност. - person SKM; 28.07.2014