2013-03-04 2 views
6

Панель инструментов нечеткой логики Matlab представлена ​​Fuzzy Inference System Modeling.. Есть ли R-эквивалент всех инструментов или некоторые R функции, как:Функция нечеткой логики в R, как в Matlab

  1. readfis(): Нагрузка нечеткого вывода системы из файла
  2. evalfis(): Выполните нечеткие вычисления логического вывода

читать и eval нечеткая система внутри R?

+7

downvoting без комментариев не является конструктивным. Лично я не понимаю, почему вопрос так недопустим. – agstudy

+0

'library (sos); findFn ('Fuzzy Inference System'); ', я получаю пакет' frbs'. Я не уверен, что он может читать файлы .fis, но он реализует функциональность и различные алгоритмы построения и использования нечетких систем. – agstudy

ответ

15

Посмотрите на sets package Он делает все, что вы ожидаете от панели инструментов с нечеткой логикой. Он позволяет определять ваши функции нечеткого членства, настраивать ваши нечеткие правила, делать нечеткие выводы и дезактивировать. Пример в? Fuzzy_inference показывает пример ресторана стандартного учебника по нечеткой логике. Я очень рекомендую.

## set universe 
sets_options("universe", seq(from = 0, to = 25, by = 0.1)) 

## set up fuzzy variables 
variables <- 
set(service = fuzzy_partition(varnames = c(poor = 0, good = 5, excellent = 10), sd = 1.5), 
food = fuzzy_variable(rancid = fuzzy_trapezoid(corners = c(-2, 0, 2, 4)), 
         delicious = fuzzy_trapezoid(corners = c(7, 9, 11, 13))), 
tip = fuzzy_partition(varnames = c(cheap = 5, average = 12.5, generous = 20), 
         FUN = fuzzy_cone, radius = 5) 
) 

## set up rules 
rules <- 
set(
fuzzy_rule(service %is% poor || food %is% rancid, tip %is% cheap), 
fuzzy_rule(service %is% good, tip %is% average), 
fuzzy_rule(service %is% excellent || food %is% delicious, tip %is% generous) 
) 

## combine to a system 
system <- fuzzy_system(variables, rules) 
print(system) 
plot(system) ## plots variables 

## do inference 
fi <- fuzzy_inference(system, list(service = 3, food = 8)) 

## plot resulting fuzzy set 
plot(fi) 

## defuzzify 
gset_defuzzify(fi, "centroid") 

## reset universe 
sets_options("universe", NULL) 

enter image description here

+0

Какой «стандартный учебник по нечеткой логике» вы имеете в виду? – Johannes

+0

Я изучил пример ресторана во время курса для мастера искусственного интеллекта. Не знаю точно, откуда взялся пример ресторана, но это также пример, приведенный в руководствах панели инструментов для нечеткой логики Matlab. Ну, это всего лишь пример нечеткого вывода, в учебниках есть еще дюжина других. – jwijffels

1

Вы можете использовать пакет FuzzyToolkitUoN. Я считаю, что он разработан Дж. М. Гарибальди и другими в Университете Ноттингема.

Исходный код доступен на своем сайте: http://ima.ac.uk/garibaldi

И работа была опубликована here.

Смежные вопросы