pyFTS/partitioners/Grid.py
Petrônio Cândido de Lima e Silva 0cf938c2a6 Cascaded transformations in all fts models
2017-01-29 21:59:50 -02:00

50 lines
1.2 KiB
Python

import numpy as np
import math
import random as rnd
import functools, operator
from pyFTS.common import FuzzySet, Membership
# print(common.__dict__)
def GridPartitionerTrimf(data, npart, names=None, prefix="A"):
sets = []
if min(data) < 0:
dmin = min(data) * 1.1
else:
dmin = min(data) * 0.9
if max(data) > 0:
dmax = max(data) * 1.1
else:
dmax = max(data) * 0.9
dlen = dmax - dmin
partlen = math.ceil(dlen / npart)
count = 0
for c in np.arange(dmin, dmax, partlen):
sets.append(
FuzzySet.FuzzySet(prefix + str(count), Membership.trimf, [c - partlen, c, c + partlen],c))
count += 1
return sets
def GridPartitionerGaussmf(data, npart, names=None, prefix="A"):
sets = []
dmax = max(data)
dmax += dmax * 0.10
dmin = min(data)
dmin -= dmin * 0.10
dlen = dmax - dmin
partlen = math.ceil(dlen / npart)
partition = math.ceil(dmin)
for c in range(npart):
sets.append(
FuzzySet.FuzzySet(prefix + str(c), Membership.gaussmf, [partition, partlen/3],
partition))
partition += partlen
return sets