посоветуйте пакет по fuzzy logic - ответ: пока пакет sets
-
- Новоприбывший
- Сообщения: 13
- Зарегистрирован: 07 ноя 2013, 18:38
- Репутация: 0
посоветуйте пакет по fuzzy logic - ответ: пока пакет sets
Доброго времени суток.
Вопрос в принципе озвучен в шапке. Пробовал работать с пакетом "sets" с примерами разобрался но когда решил взять пример из другого источника и проверить его используя R ответ мягко говоря не сошелся. За основу примера было взято страница 17 (основной пример нечеткого вывода).
Если кто сталкивался в работе с системами нечеткого вывода посоветуйте линками или названием пакета с примерами, с которыми Вы разобрались и Вас устроили.
Вопрос в принципе озвучен в шапке. Пробовал работать с пакетом "sets" с примерами разобрался но когда решил взять пример из другого источника и проверить его используя R ответ мягко говоря не сошелся. За основу примера было взято страница 17 (основной пример нечеткого вывода).
Если кто сталкивался в работе с системами нечеткого вывода посоветуйте линками или названием пакета с примерами, с которыми Вы разобрались и Вас устроили.
Последний раз редактировалось _Vitaliy_ 20 янв 2015, 19:03, всего редактировалось 1 раз.
-
- Гуру
- Сообщения: 4068
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1062
- Ваше звание: программист
- Откуда: Казань
Re: посоветуйте пакет по fuzzy logic
система JFS, автор ее забросил 10 лет назад, там почти все исходники есть (некоторые утилиты он не открыл), и работающие exe с документацией. В "Машине времени интернета" следы еще остались ... тыц. Но это не R, и новее я не знаю (давно не интересовался). А пример действительно какой-то странный результат дает ..._Vitaliy_ писал(а):Если кто сталкивался в работе с системами нечеткого вывода посоветуйте линками или названием пакета с примерами, с которыми Вы разобрались и Вас устроили.
-
- Новоприбывший
- Сообщения: 13
- Зарегистрирован: 07 ноя 2013, 18:38
- Репутация: 0
Re: посоветуйте пакет по fuzzy logic
Если есть желание (и время) завтра с работы возьму исходники и выложу...
-
- Гуру
- Сообщения: 4068
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1062
- Ваше звание: программист
- Откуда: Казань
Re: посоветуйте пакет по fuzzy logic
а у меня все это где-то лежит. Мы JFS использовали для обучения студентов, совместно с Куинлановской C4.5, из которой извлекали правила. Все было понятно, по крайней мере - для экспериментов самое то._Vitaliy_ писал(а):Если есть желание (и время) завтра с работы возьму исходники и выложу...
-
- Новоприбывший
- Сообщения: 13
- Зарегистрирован: 07 ноя 2013, 18:38
- Репутация: 0
Re: посоветуйте пакет по fuzzy logic
Вчера ответить не получилось, приношу извинения...
Сегодня немного покорпел над примером и результат все-таки сошелся с теорией. Поэтому пакетом sets в принципе можно пользоваться (а может это открытие только для меня ). За основу взял пример из книги (стр 52-56): Макеева А.В. Основы нечёткой логики. Монография. Учебное пособие для ВУЗов. ВГИПУ Н. Новгород 2009.
Извиняюсь но ссылку дать не могу, вроде искал но может меня в гугле забанили...
Привожу листинг скрипта (перед использованием нужно установить библиотеку sets):
Результат приведенный в книге "сходится" с тем, что выдает этот скрипт. Если кому будет интересно то могу некоторые вещи пояснить (насколько это понимаю я)
При выборе дефазификации методами ответ уверенно 50, а вот при около 80 (в книге ответ= 50 методом первого максимума).
Пробовал вручную перепроверить используя метод центра тяжести, получил результат около 58 (вычислялось "на коленке" с погрешностями линейки, глаза, карандаша и тп.) поэтому можно его принять как верный.
Вывод из всего этого: пакетом можно пользоваться, работать в принципе несложно (если разобраться) хотя примеров, связанных с нечетким выводом довольно маловато (всего один). Кроме официальной документации примеров применения не нашел...
Сегодня немного покорпел над примером и результат все-таки сошелся с теорией. Поэтому пакетом sets в принципе можно пользоваться (а может это открытие только для меня ). За основу взял пример из книги (стр 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 (вычислялось "на коленке" с погрешностями линейки, глаза, карандаша и тп.) поэтому можно его принять как верный.
Вывод из всего этого: пакетом можно пользоваться, работать в принципе несложно (если разобраться) хотя примеров, связанных с нечетким выводом довольно маловато (всего один). Кроме официальной документации примеров применения не нашел...
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость