2018-03-05 15:07:02 -03:00

36 lines
838 B
Python

import numpy as np
from pyFTS.common import flrg as flg
class FLRG(flg.FLRG):
"""
Multivariate Fuzzy Logical Rule Group
"""
def __init__(self, **kwargs):
super(FLRG,self).__init__(0,**kwargs)
self.LHS = kwargs.get('lhs', {})
self.RHS = set()
def set_lhs(self, var, set):
self.LHS[var] = set
def append_rhs(self, set, **kwargs):
self.RHS.add(set)
def get_membership(self, data, variables):
mvs = []
for var in variables:
s = self.LHS[var.name]
mvs.append(var.partitioner.sets[s].membership(data[var.name]))
return np.nanmin(mvs)
def __str__(self):
_str = ""
for k in self.RHS:
_str += "," if len(_str) > 0 else ""
_str += k
return self.get_key() + " -> " + _str