Source code for pyFTS.models.multivariate.variable
import pandas as pd
from pyFTS.common import fts, FuzzySet, FLR, Membership, tree
from pyFTS.partitioners import Grid
from pyFTS.models.multivariate import FLR as MVFLR
[docs]class Variable:
"""
A variable of a fuzzy time series multivariate model. Each variable contains its own
transformations and partitioners.
"""
def __init__(self, name, **kwargs):
"""
:param name:
:param \**kwargs: See below
:Keyword Arguments:
* *alias* -- Alternative name for the variable
"""
self.name = name
"""A string with the name of the variable"""
self.alias = kwargs.get('alias', self.name)
"""A string with the alias of the variable"""
self.data_label = kwargs.get('data_label', self.name)
"""A string with the column name on DataFrame"""
self.type = kwargs.get('type', 'common')
self.data_type = kwargs.get('data_type', None)
"""The type of the data column on Pandas Dataframe"""
self.mask = kwargs.get('mask', None)
"""The mask for format the data column on Pandas Dataframe"""
self.transformation = kwargs.get('transformation', None)
"""Pre processing transformation for the variable"""
self.transformation_params = kwargs.get('transformation_params', None)
self.partitioner = None
"""UoD partitioner for the variable data"""
self.alpha_cut = kwargs.get('alpha_cut', 0.0)
"""Minimal membership value to be considered on fuzzyfication process"""
if kwargs.get('data', None) is not None:
self.build(**kwargs)
[docs] def build(self, **kwargs):
"""
:param kwargs:
:return:
"""
fs = kwargs.pop('partitioner', Grid.GridPartitioner)
mf = kwargs.pop('func', Membership.trimf)
np = kwargs.pop('npart', 10)
data = kwargs.get('data', None)
kw = kwargs.pop('partitioner_specific', {})
self.partitioner = fs(data=data[self.data_label].values, npart=np, func=mf,
transformation=self.transformation, prefix=self.alias,
variable=self.name, **kw)
self.partitioner.name = self.name + " " + self.partitioner.name
def __str__(self):
return self.name