Доброго времени суток.
Вопрос в принципе озвучен в шапке. Пробовал работать с пакетом "sets" с примерами разобрался но когда решил взять пример из другого источника и проверить его используя R ответ мягко говоря не сошелся. За основу примера было взято страница 17 (основной пример нечеткого вывода).
Если кто сталкивался в работе с системами нечеткого вывода посоветуйте линками или названием пакета с примерами, с которыми Вы разобрались и Вас устроили.
			
			
													посоветуйте пакет по fuzzy logic - ответ: пока пакет sets
- 
				_Vitaliy_
- Новоприбывший
- Сообщения: 13
- Зарегистрирован: 07 ноя 2013, 18:38
- Репутация: 0
посоветуйте пакет по fuzzy logic - ответ: пока пакет sets
					Последний раз редактировалось _Vitaliy_ 20 янв 2015, 19:03, всего редактировалось 1 раз.
									
			
						
										
						- 
				gamm
- Гуру
- Сообщения: 4177
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: посоветуйте пакет по fuzzy logic
система JFS, автор ее забросил 10 лет назад, там почти все исходники есть (некоторые утилиты он не открыл), и работающие exe с документацией. В "Машине времени интернета" следы еще остались ... тыц. Но это не R, и новее я не знаю (давно не интересовался). А пример действительно какой-то странный результат дает ..._Vitaliy_ писал(а):Если кто сталкивался в работе с системами нечеткого вывода посоветуйте линками или названием пакета с примерами, с которыми Вы разобрались и Вас устроили.
- 
				_Vitaliy_
- Новоприбывший
- Сообщения: 13
- Зарегистрирован: 07 ноя 2013, 18:38
- Репутация: 0
Re: посоветуйте пакет по fuzzy logic
Если есть желание (и время) завтра с работы возьму исходники и выложу...
			
			
									
						
										
						- 
				gamm
- Гуру
- Сообщения: 4177
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: посоветуйте пакет по fuzzy logic
а у меня все это где-то лежит. Мы JFS использовали для обучения студентов, совместно с Куинлановской C4.5, из которой извлекали правила. Все было понятно, по крайней мере - для экспериментов самое то._Vitaliy_ писал(а):Если есть желание (и время) завтра с работы возьму исходники и выложу...
- 
				_Vitaliy_
- Новоприбывший
- Сообщения: 13
- Зарегистрирован: 07 ноя 2013, 18:38
- Репутация: 0
Re: посоветуйте пакет по fuzzy logic
Вчера ответить не получилось, приношу извинения... 
Сегодня немного покорпел над примером и результат все-таки сошелся с теорией. Поэтому пакетом sets в принципе можно пользоваться (а может это открытие только для меня ). За основу взял пример из книги (стр 52-56): Макеева А.В. Основы нечёткой логики. Монография. Учебное пособие для ВУЗов. ВГИПУ Н. Новгород 2009.
). За основу взял пример из книги (стр 52-56): Макеева А.В. Основы нечёткой логики. Монография. Учебное пособие для ВУЗов. ВГИПУ Н. Новгород 2009. 
Извиняюсь но ссылку дать не могу, вроде искал но может меня в гугле забанили...
Привожу листинг скрипта (перед использованием нужно установить библиотеку sets):
Результат приведенный в книге "сходится" с тем, что выдает этот скрипт. Если кому будет интересно то могу некоторые вещи пояснить (насколько это понимаю я)
При выборе дефазификации методами ответ уверенно 50, а вот при  около 80 (в книге ответ= 50 методом первого максимума).
Пробовал вручную перепроверить используя метод центра тяжести, получил результат около 58 (вычислялось "на коленке" с погрешностями линейки, глаза, карандаша и тп.) поэтому можно его принять как верный.
Вывод из всего этого: пакетом можно пользоваться, работать в принципе несложно (если разобраться) хотя примеров, связанных с нечетким выводом довольно маловато (всего один). Кроме официальной документации примеров применения не нашел...
			
			
									
						
										
						Сегодня немного покорпел над примером и результат все-таки сошелся с теорией. Поэтому пакетом sets в принципе можно пользоваться (а может это открытие только для меня
 ). За основу взял пример из книги (стр 52-56): Макеева А.В. Основы нечёткой логики. Монография. Учебное пособие для ВУЗов. ВГИПУ Н. Новгород 2009.
). За основу взял пример из книги (стр 52-56): Макеева А.В. Основы нечёткой логики. Монография. Учебное пособие для ВУЗов. ВГИПУ Н. Новгород 2009. Извиняюсь но ссылку дать не могу, вроде искал но может меня в гугле забанили...
Привожу листинг скрипта (перед использованием нужно установить библиотеку sets):
Код: Выделить всё
library("sets")
## set universe
sets_options("universe", seq(from = 0, to = 150, by = 0.1))
## set up fuzzy variables
variables <-
  set(davl =
        fuzzy_variable(     
          d_low    = fuzzy_trapezoid(corners = c(-100, 0, 0, 100)),
          d_medium = fuzzy_trapezoid(corners = c(0, 50, 50, 100)),
          d_hight  = fuzzy_trapezoid(corners = c(0, 100, 150, 450))
                      ),
      temp =
        fuzzy_variable(
          t_low    = fuzzy_trapezoid(corners = c(-50, 0, 50, 100)),
          t_medium = fuzzy_trapezoid(corners = c(0, 50, 100, 150)),
          t_hight  = fuzzy_trapezoid(corners = c(50, 100, 150, 450))
                      ),
      rasx =
        fuzzy_partition(varnames=c(          
          r_low = 2, r_medium = 4, r_hight = 6),
          FUN = fuzzy_cone, radius = 3.5)
                      
)
## set up rules
rules <-
  set(
    fuzzy_rule(temp %is% t_low && rasx %is% r_low, davl %is% d_low),
    fuzzy_rule(temp %is% t_medium, davl %is% d_medium),
    fuzzy_rule(temp %is% t_hight || rasx %is% r_hight, davl %is% d_hight)
  )
    
## combine to a system
system <- fuzzy_system(variables, rules)
print(system)
plot(system) ## plots variables
## do inference
fi <- fuzzy_inference(system, list(temp = 85, rasx = 3.5))
## plot resulting fuzzy set
plot(fi)
## defuzzify
##gset_defuzzify(x,
##               method = c("meanofmax",        
##                          "smallestofmax",   
##                          "largestofmax", 
##                          "centroid"))
gset_defuzzify(fi, "largestofmax")
## reset universe
sets_options("universe", NULL)
При выборе дефазификации методами
Код: Выделить всё
"meanofmax", "smallestofmax", "largestofmax",Код: Выделить всё
"centroid"Пробовал вручную перепроверить используя метод центра тяжести, получил результат около 58 (вычислялось "на коленке" с погрешностями линейки, глаза, карандаша и тп.) поэтому можно его принять как верный.
Вывод из всего этого: пакетом можно пользоваться, работать в принципе несложно (если разобраться) хотя примеров, связанных с нечетким выводом довольно маловато (всего один). Кроме официальной документации примеров применения не нашел...
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей