Merge branch 'morphemic-rc2.0' of...
Merge branch 'morphemic-rc2.0' of https://gitlab.ow2.org/melodic/morphemic-preprocessor into morphemic-rc2.0
import logging | ||
import threading | ||
import time | ||
import uuid | ||
from datetime import datetime, timedelta | ||
import pandas as pd | ||
import numpy as np | ||
from ESRNN import ESRNN | ||
from . import configuration | ||
_logger = logging.getLogger(__name__) | ||
class UUIDModel: | ||
esrnn = False | ||
config = {} | ||
model_by_metric = {} | ||
def __init__(self, id, config) -> None: | ||
self.id = id | ||
... | ... | @@ -55,131 +44,3 @@ class UUIDModel: |
device='cpu') | ||
return self.model_by_metric[metric] | ||
class ModelStatus(enumerate): | ||
IDLE = "IDLE" | ||
TRAINNING = "TRAINNING" | ||
TRAINED = "TRAINED" | ||
PREDICTING = "PREDICTING" | ||
class DataHandler: | ||
def __init__(self, application): | ||
self._application = application | ||
def to_train(self, metric, path): | ||
df = pd.read_csv(path) | ||
df = df[['ems_time', metric]] | ||
df = df.replace('None', np.nan) | ||
df.dropna(inplace=True) | ||
df.reset_index(drop=True, inplace=True) | ||
df.rename(columns={'ems_time': 'ds', metric: 'y'}, inplace=True) | ||
df['ds'] = pd.to_datetime(df['ds'], unit='s') | ||
df['y'] = df['y'].astype(float) | ||
df = df.set_index('ds').resample('1S').asfreq() | ||
df = df.interpolate(method='linear') | ||
df.reset_index(level=0, inplace=True) | ||
train_y = df.copy() | ||
train_y.insert(0, column='unique_id', value=self._application) | ||
train_x = train_y[['unique_id', 'ds']] | ||
train_x['x'] = metric | ||
return train_x, train_y | ||
def to_predict(self, metric, times): | ||
m_pd = pd.DataFrame(data=[datetime.fromtimestamp(x) for x in times], columns=['ds']) | ||
m_pd.insert(1, 'unique_id', self._application) | ||
m_pd.insert(2, 'x', metric) | ||
return m_pd | ||
< |