- Cheng: Trend Weighted FTS
This commit is contained in:
parent
bdc7ad233b
commit
55638cbe20
47
cheng.py
Normal file
47
cheng.py
Normal file
@ -0,0 +1,47 @@
|
||||
import numpy as np
|
||||
from pyFTS.common import FuzzySet,FLR
|
||||
from pyFTS import fts, yu
|
||||
|
||||
|
||||
class TrendWeightedFLRG(yu.WeightedFTS):
|
||||
def __init__(self, LHS, **kwargs):
|
||||
super(TrendWeightedFTS, self).__init__(LHS)
|
||||
|
||||
def weights(self):
|
||||
count_nochange = 0.0
|
||||
count_up = 0.0
|
||||
count_down = 0.0
|
||||
weights = []
|
||||
|
||||
for c in self.RHS:
|
||||
tmp = 0
|
||||
if self.RHS.midpoint == c.midpoint:
|
||||
count_nochange += 1.0
|
||||
tmp = count_nochange
|
||||
elif self.RHS.midpoint > c.midpoint:
|
||||
count_down += 1.0
|
||||
tmp = count_down
|
||||
else:
|
||||
count_up += 1.0
|
||||
tmp = count_up
|
||||
weights.append(tmp)
|
||||
|
||||
tot = sum(weights)
|
||||
return np.array([k / tot for k in weights])
|
||||
|
||||
|
||||
class TrendWeightedFTS(yu.WeightedFTS):
|
||||
def __init__(self, order, name, **kwargs):
|
||||
super(TrendWeightedFTS, self).__init__(1, "TWFTS " + name)
|
||||
self.name = "Trend Weighted FTS"
|
||||
self.detail = "Cheng"
|
||||
|
||||
def generateFLRG(self, flrs):
|
||||
flrgs = {}
|
||||
for flr in flrs:
|
||||
if flr.LHS.name in flrgs:
|
||||
flrgs[flr.LHS.name].append(flr.RHS)
|
||||
else:
|
||||
flrgs[flr.LHS.name] = TrendWeightedFLRG(flr.LHS);
|
||||
flrgs[flr.LHS.name].append(flr.RHS)
|
||||
return (flrgs)
|
4
yu.py
4
yu.py
@ -4,7 +4,7 @@ from pyFTS import fts
|
||||
|
||||
|
||||
class WeightedFLRG(fts.FTS):
|
||||
def __init__(self, order, **kwargs):
|
||||
def __init__(self, order, LHS, **kwargs):
|
||||
self.LHS = LHS
|
||||
self.RHS = []
|
||||
self.count = 1.0
|
||||
@ -31,7 +31,7 @@ class WeightedFLRG(fts.FTS):
|
||||
|
||||
|
||||
class WeightedFTS(fts.FTS):
|
||||
def __init__(self, order, **kwargs):
|
||||
def __init__(self, order, name, **kwargs):
|
||||
super(WeightedFTS, self).__init__(1, "WFTS " + name)
|
||||
self.name = "Weighted FTS"
|
||||
self.detail = "Yu"
|
||||
|
Loading…
Reference in New Issue
Block a user