Beispiel #1
0
def test_list_of_funcs():
    def f(x):
        return {"f": 1}

    def g(x):
        return {"g": 2}

    def times_2(x):
        return {k: v * 2 for k, v in x.items()}

    expected = {"f": 2, "g": 4}
    assert compose.Pipeline([f, g], times_2).transform_one(None) == expected
    assert ([f, g]
            | compose.FuncTransformer(times_2)).transform_one(None) == expected
Beispiel #2
0
def test_pipeline_funcs():
    def a(x):
        pass

    def b(x):
        pass

    pipelines = [
        compose.FuncTransformer(a) | b,
        compose.FuncTransformer(a) | ('b', b),
        compose.FuncTransformer(a) | ('b', compose.FuncTransformer(b)),
        a | compose.FuncTransformer(b), ('a', a) | compose.FuncTransformer(b),
        ('a', compose.FuncTransformer(a)) | compose.FuncTransformer(b)
    ]

    for pipeline in pipelines:
        assert str(pipeline) == 'a | b'
Beispiel #3
0
def test_pipeline_funcs():
    def a(x):
        pass

    def b(x):
        pass

    pipelines = [
        compose.FuncTransformer(a) | b,
        compose.FuncTransformer(a) | ("b", b),
        compose.FuncTransformer(a) | ("b", compose.FuncTransformer(b)),
        a | compose.FuncTransformer(b),
        ("a", a) | compose.FuncTransformer(b),
        ("a", compose.FuncTransformer(a)) | compose.FuncTransformer(b),
    ]

    for pipeline in pipelines:
        assert str(pipeline) == "a | b"
Beispiel #4
0
def test_union_funcs():
    def a(x):
        pass

    def b(x):
        pass

    pipelines = [
        compose.FuncTransformer(a) + b,
        compose.FuncTransformer(a) + ('b', b),
        compose.FuncTransformer(a) + ('b', compose.FuncTransformer(b)),
        a + compose.FuncTransformer(b), ('a', a) + compose.FuncTransformer(b),
        ('a', compose.FuncTransformer(a)) + compose.FuncTransformer(b)
    ]

    for i, pipeline in enumerate(pipelines):
        print(i, str(pipeline))
        assert str(pipeline) == 'a + b'
Beispiel #5
0
                         task=datasets.base.REG,
                         n_features=1,
                         n_samples=1440)

    def __iter__(self):
        return stream.iter_csv(self.path,
                               target='interval_qps',
                               converters={'interval_qps': int})


def get_ordinal_date(x):
    return {'ordinal_date': int(x['secs_elapsed'])}


model = compose.Pipeline(
    ('ordinal_date', compose.FuncTransformer(get_ordinal_date)),
    ('scale', preprocessing.MinMaxScaler()),
    ('lin_reg', linear_model.LinearRegression()))

from river import metrics
import matplotlib.pyplot as plt

# target_data = "../log_traces/Mixgraph/1000_0.0000073_45000/report.csv"
target_data = "../log_traces/StorageMaterial.NVMeSSD/12CPU/64MB/report.csv_1180"
import os
target_data = os.path.abspath(target_data)


def evaluate_model(model):

    metric = metrics.Rolling(metrics.MAE(), 12)
def get_ordinal_data(x):
    return {'ordinal_data': x['month'].toordinal()}


def get_month(x):
    return {
        calendar.month_name[month]: month == x['month'].month
        for month in range(1, 13)
    }


# To monthly trend by one-hot encoding the month name
model = compose.Pipeline(
    ('features',
     compose.TransformerUnion(
         ('ordinal_date', compose.FuncTransformer(get_ordinal_data)),
         ('month', compose.FuncTransformer(get_month)),
     )), ('scale', preprocessing.StandardScaler),
    ('lin_reg',
     linear_model.LinearRegression(intercept_lr=0, optimizer=optim.SGD(0.05))))

model = time_series.Detrender(regressor=model, window_size=12)

dates = []
dates_pred = []
y_trues = []
y_preds = []

images = []