2013-03-04 11 views
6

Matlab Fuzzy-Logik-Toolbox, präsentiert die Fuzzy Inference System Modeling.. Gibt es eine R-Äquivalent aller Toolbox oder eine R-Funktion wie:Fuzzy-Logik-Funktion in R wie in Matlab

  1. readfis(): Laden Fuzzyinferenzsystem aus Datei
  2. evalfis(): Führen Sie Fuzzy-Inferenz-Berechnungen

zu lesen und das Fuzzy-System innerhalb von R auswerten?

+7

Downvoting ohne Kommentar ist nicht konstruktiv. Persönlich sehe ich nicht, warum die Frage so falsch ist. – agstudy

+0

'Bibliothek (sos); findFn ('Fuzzy Inference System'); ', bekomme ich das' frbs'-Paket. Ich bin nicht sicher, dass es die .fis-Dateien lesen kann, aber es implementiert Funktionalität und verschiedene Algorithmen, um Fuzzy-Systeme zu erstellen und zu verwenden. – agstudy

Antwort

15

Werfen Sie einen Blick auf die sets package Es tut all die Dinge, die Sie von einer Fuzzy-Logic-Toolbox erwarten. Es ermöglicht Ihnen, Ihre Fuzzy-Zugehörigkeitsfunktionen zu spezifizieren, Ihre Fuzzy-Regeln einzurichten, Fuzzy-Inferenz zu machen und Defuzzyfiz durchzuführen. Das Beispiel in? Fuzzy_inference zeigt das Restaurantbeispiel des Standard-Fuzzy-Logik-Lehrbuchs. Ich empfehle es sehr.

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

Auf welches "Standard-Fuzzy-Logik-Lehrbuch" beziehen Sie sich? – Johannes

+0

Ich lernte das Restaurantbeispiel während eines Kurses für einen Master in künstlicher Intelligenz. Ich weiß nicht genau, woher das Restaurantbeispiel ursprünglich kam, aber es ist auch ein Beispiel, das in den Handbüchern der Fuzzy-Logic-Toolbox von Matlab erscheint. Nun, es ist nur ein Beispiel für eine unscharfe Schlussfolgerung, es gibt Dutzende anderer in Lehrbüchern. – jwijffels

1

können Sie die FuzzyToolkitUoN Paket verwenden. Ich glaube, dass es von J. M. Garibaldi und anderen an der Universität von Nottingham entwickelt wurde.

Der Quellcode ist auf seiner Website zur Verfügung: http://ima.ac.uk/garibaldi

Und Arbeit here veröffentlicht wurde.