2013-03-04 14 views
6

La casella degli strumenti di logica fuzzy Matlab presenta Fuzzy Inference System Modeling.. C'è un R-equivalente di tutta la cassetta degli attrezzi o di qualche funzione R come:Funzione di logica fuzzy in R come in Matlab

  1. readfis(): Caricare Fuzzy Sistema Inference da file
  2. evalfis(): eseguire calcoli fuzzy

a leggere e eval il sistema fuzzy in R?

+7

downvoting senza commenti non è costruttivo. Personalmente non vedo perché la domanda sia così donwvoted. – agstudy

+0

'library (sos); findFn ('Fuzzy Inference System'); ', ho il pacchetto' frbs'. Non sono sicuro che possa leggere i file .fis ma implementa funzionalità e vari algoritmi per costruire e utilizzare i sistemi fuzzy. – agstudy

risposta

15

Dai uno sguardo allo sets package Fa tutto ciò che ti aspetti da una scatola di strumenti fuzzy logic. Permette di specificare le tue funzioni di appartenenza fuzzy, impostare le tue regole fuzzy, fare inferenza fuzzy e defuzzify. L'esempio in? Fuzzy_inference mostra l'esempio del ristorante del libro di testo fuzzy standard. Lo consiglio vivamente.

## 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

A quale "manuale di logica fuzzy standard" si riferisce? – Johannes

+0

Ho imparato l'esempio del ristorante durante un corso per un maestro dell'intelligenza artificiale. Non so esattamente da dove originariamente provenisse l'esempio del ristorante ma è anche un esempio che appare nei manuali della toolbox fuzzy di Matlab. Bene, è solo un esempio di inferenza fuzzy, ce ne sono altre decine nei libri di testo. – jwijffels

1

È possibile utilizzare il pacchetto FuzzyToolkitUoN. Credo che sia sviluppato da J. M. Garibaldi e altri presso l'Università di Nottingham.

Il codice sorgente è disponibile sul suo sito web: http://ima.ac.uk/garibaldi

E il lavoro è stato pubblicato here.