def train_model(experiment_name, groups=1, time_window=pio.TimeWindow(-90, -30, 1, 15)): path = os.path.join(DATA_PATH, 'ts.csv') data, group_list = get_data(path, groups) fname = '{}_{}.csv'.format(experiment_name, '-'.join(group_list)) data.to_csv(fname, index=False) project = pio.Project.from_id(PROJECT_ID) dataset = project.create_dataset(name=experiment_name, dataframe=data) experiment_version_config = pio.TrainingConfig( advanced_models=[pio.AdvancedModel.LinReg], normal_models=[pio.NormalModel.LinReg], features=[pio.Feature.Counts], profile=pio.Profile.Quick, ) col_config = pio.ColumnConfig(target_column='target', time_column='time', # group_columns=group_list ) experiment_version = project.fit_timeseries_regression( experiment_name, dataset, time_window=time_window, training_config=experiment_version_config, column_config=col_config, ) return experiment_version
def time_window_test(dws, dwe, fws, fwe): ts_label = '_'.join(str(s).replace('-', 'm') for s in (dws, dwe, fws, fwe)) experiment_name_asked = 'ts_time{}_{}'.format(ts_label, TESTING_ID) experiment_version = train_model(experiment_name_asked, time_window=pio.TimeWindow(dws, dwe, fws, fwe)) experiment_version.wait_until(lambda experimentv: len(experimentv.models) > 0) experiment_version.stop() return experiment_version
def time_window_test(dws, dwe, fws, fwe): ts_label = '_'.join(str(s).replace('-', 'm') for s in (dws, dwe, fws, fwe)) uc_name_asked = 'ts_time{}_{}'.format(ts_label, TESTING_ID) uc = train_model(uc_name_asked, time_window=pio.TimeWindow(dws, dwe, fws, fwe)) uc_name_returned = uc.name uc.wait_until(lambda usecase: len(usecase) > 0) uc.stop() return uc_name_returned
def test_version(): dws, dwe, fws, fwe = (-10, -5, 3, 4) ts_label = '_'.join(str(s).replace('-', 'm') for s in (dws, dwe, fws, fwe)) experiment_name_asked = 'ts_time{}_{}'.format(ts_label, TESTING_ID) experiment_version = train_model(experiment_name_asked, time_window=pio.TimeWindow(dws, dwe, fws, fwe)) experiment_version.wait_until(lambda experimentv: len(experimentv.models) > 0) experiment_version.stop() new_experiment_version = experiment_version.new_version() new_experiment_version.wait_until(lambda experimentv: len(experimentv.models) > 1) experiment_version.stop()
def train_model(uc_name, groups=1, time_window=pio.TimeWindow(-90, -30, 1, 15)): path = os.path.join(DATA_PATH, 'ts.csv') data, group_list = get_data(path, groups) fname = '{}_{}.csv'.format(uc_name, '-'.join(group_list)) data.to_csv(fname, index=False) dataset = pio.Dataset.new(name=uc_name, dataframe=data) uc_config = pio.TrainingConfig(normal_models=[pio.Model.LinReg], lite_models=[pio.Model.LinReg], features=[pio.Feature.Counts], profile=pio.Profile.Quick) col_config = pio.ColumnConfig(target_column='target', time_column='time', # group_columns=group_list ) uc = pio.TimeSeries.fit(uc_name, dataset, time_window=time_window, training_config=uc_config, column_config=col_config) return uc