From 168cfb1e5bfa33a4241649f5c16990f8254b3aa1 Mon Sep 17 00:00:00 2001 From: George Ho Date: Wed, 18 Jul 2018 11:14:11 -0400 Subject: [PATCH 1/2] MAINT: save data and rebuild model --- bayesalpha/author_model.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/bayesalpha/author_model.py b/bayesalpha/author_model.py index 7fb0ffb..7872c82 100644 --- a/bayesalpha/author_model.py +++ b/bayesalpha/author_model.py @@ -9,6 +9,7 @@ import pandas as pd from sklearn.preprocessing import LabelEncoder import pymc3 as pm +import xarray as xr from .serialize import to_xarray from ._version import get_versions from .base import BayesAlphaResult @@ -155,7 +156,12 @@ class AuthorModelResult(BayesAlphaResult): def rebuild_model(self, data=None): """ Return an AuthorModelBuilder that recreates the original model. """ if data is None: - data = self.trace._data.to_pandas().copy() + data = (self.trace + ._data + .to_pandas() + .rename('perf_sharpe_ratio_is') + .reset_index() + .copy()) return AuthorModelBuilder(data) @@ -233,6 +239,12 @@ def fit_authors(data, trace.attrs['model-version'] = get_versions()['version'] trace.attrs['model-type'] = AUTHOR_MODEL_TYPE + if save_data: + d = data.set_index(['meta_user_id', + 'meta_algorithm_id', + 'meta_code_id']).squeeze() + trace['_data'] = xr.DataArray(d) + return AuthorModelResult(trace) From 761de76b3b7805cfcbb90c9bb27340d62f7a1f97 Mon Sep 17 00:00:00 2001 From: George Ho Date: Wed, 18 Jul 2018 11:46:46 -0400 Subject: [PATCH 2/2] MAINT: rename dims --- bayesalpha/author_model.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/bayesalpha/author_model.py b/bayesalpha/author_model.py index 7872c82..3ba7165 100644 --- a/bayesalpha/author_model.py +++ b/bayesalpha/author_model.py @@ -57,27 +57,27 @@ def __init__(self, data): self.model = self._build_model(data) self.coords = { - 'author': data.meta_user_id.drop_duplicates().values, - 'algo': data.meta_algorithm_id.drop_duplicates().values, - 'backtest': data.meta_code_id.values + 'meta_user_id': data.meta_user_id.drop_duplicates().values, + 'meta_algorithm_id': data.meta_algorithm_id.drop_duplicates().values, + 'meta_code_id': data.meta_code_id.values } self.dims = { 'mu_global': (), - 'mu_author': ('author', ), - 'mu_author_raw': ('author', ), + 'mu_author': ('meta_user_id', ), + 'mu_author_raw': ('meta_user_id', ), 'mu_author_sd': (), - 'sigma_author': ('author', ), + 'sigma_author': ('meta_user_id', ), 'sigma_author_sd': (), - 'mu_algo': ('algo', ), - 'mu_algo_raw': ('algo', ), + 'mu_algo': ('meta_algorithm_id', ), + 'mu_algo_raw': ('meta_algorithm_id', ), 'mu_algo_sd': (), - 'sigma_algo': ('algo', ), + 'sigma_algo': ('meta_algorithm_id', ), 'sigma_algo_sd': (), - 'mu_backtest': ('backtest', ), - 'sigma_backtest': ('backtest', ), - 'alpha_author': ('author', ), - 'alpha_algo': ('algo', ) + 'mu_backtest': ('meta_code_id', ), + 'sigma_backtest': ('meta_code_id', ), + 'alpha_author': ('meta_user_id', ), + 'alpha_algo': ('meta_algorithm_id', ) } def _build_model(self, data):