virgo-modules 0.4.4__tar.gz → 0.5.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of virgo-modules might be problematic. Click here for more details.

Files changed (24) hide show
  1. {virgo_modules-0.4.4 → virgo_modules-0.5.0}/PKG-INFO +4 -3
  2. {virgo_modules-0.4.4 → virgo_modules-0.5.0}/setup.py +1 -1
  3. {virgo_modules-0.4.4 → virgo_modules-0.5.0}/virgo_app/virgo_modules/src/edge_utils/conformal_utils.py +3 -3
  4. virgo_modules-0.5.0/virgo_app/virgo_modules/src/edge_utils/stack_model.py +91 -0
  5. {virgo_modules-0.4.4 → virgo_modules-0.5.0}/virgo_app/virgo_modules.egg-info/PKG-INFO +4 -3
  6. {virgo_modules-0.4.4 → virgo_modules-0.5.0}/virgo_app/virgo_modules.egg-info/SOURCES.txt +2 -1
  7. {virgo_modules-0.4.4 → virgo_modules-0.5.0}/LICENSE +0 -0
  8. {virgo_modules-0.4.4 → virgo_modules-0.5.0}/README.md +0 -0
  9. {virgo_modules-0.4.4 → virgo_modules-0.5.0}/setup.cfg +0 -0
  10. {virgo_modules-0.4.4 → virgo_modules-0.5.0}/virgo_app/virgo_modules/__init__.py +0 -0
  11. {virgo_modules-0.4.4 → virgo_modules-0.5.0}/virgo_app/virgo_modules/src/__init__.py +0 -0
  12. {virgo_modules-0.4.4 → virgo_modules-0.5.0}/virgo_app/virgo_modules/src/aws_utils.py +0 -0
  13. {virgo_modules-0.4.4 → virgo_modules-0.5.0}/virgo_app/virgo_modules/src/backtester.py +0 -0
  14. {virgo_modules-0.4.4 → virgo_modules-0.5.0}/virgo_app/virgo_modules/src/edge_utils/__init__.py +0 -0
  15. {virgo_modules-0.4.4 → virgo_modules-0.5.0}/virgo_app/virgo_modules/src/edge_utils/edge_utils.py +0 -0
  16. {virgo_modules-0.4.4 → virgo_modules-0.5.0}/virgo_app/virgo_modules/src/edge_utils/shap_utils.py +0 -0
  17. {virgo_modules-0.4.4 → virgo_modules-0.5.0}/virgo_app/virgo_modules/src/hmm_utils.py +0 -0
  18. {virgo_modules-0.4.4 → virgo_modules-0.5.0}/virgo_app/virgo_modules/src/pull_artifacts.py +0 -0
  19. {virgo_modules-0.4.4 → virgo_modules-0.5.0}/virgo_app/virgo_modules/src/re_utils.py +0 -0
  20. {virgo_modules-0.4.4 → virgo_modules-0.5.0}/virgo_app/virgo_modules/src/ticketer_source.py +0 -0
  21. {virgo_modules-0.4.4 → virgo_modules-0.5.0}/virgo_app/virgo_modules/src/transformer_utils.py +0 -0
  22. {virgo_modules-0.4.4 → virgo_modules-0.5.0}/virgo_app/virgo_modules.egg-info/dependency_links.txt +0 -0
  23. {virgo_modules-0.4.4 → virgo_modules-0.5.0}/virgo_app/virgo_modules.egg-info/requires.txt +0 -0
  24. {virgo_modules-0.4.4 → virgo_modules-0.5.0}/virgo_app/virgo_modules.egg-info/top_level.txt +0 -0
@@ -1,19 +1,19 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: virgo_modules
3
- Version: 0.4.4
3
+ Version: 0.5.0
4
4
  Summary: data processing and statistical modeling using stock market data
5
5
  Home-page: https://github.com/miguelmayhem92/virgo_module
6
6
  Author: Miguel Mayhuire
7
7
  Author-email: miguelmayhem92@gmail.com
8
8
  License: MIT
9
+ Platform: UNKNOWN
9
10
  Classifier: License :: OSI Approved :: MIT License
10
11
  Classifier: Programming Language :: Python :: 3.9
11
12
  Classifier: Operating System :: OS Independent
12
13
  Requires-Python: >=3.9
13
14
  Description-Content-Type: text/markdown
14
- License-File: LICENSE
15
15
  Provides-Extra: dev
16
- Requires-Dist: pytest>=7.0; extra == "dev"
16
+ License-File: LICENSE
17
17
 
18
18
  # Virgo Package
19
19
 
@@ -34,3 +34,4 @@ obj = stock_eda_panel(stock_code = 'PEP', n_days = 20)
34
34
  obj.get_data()
35
35
  print(obj.df.shape)
36
36
  ```
37
+
@@ -5,7 +5,7 @@ with open("virgo_app/README.md", "r") as f:
5
5
 
6
6
  setup(
7
7
  name="virgo_modules",
8
- version="0.4.4",
8
+ version="0.5.0",
9
9
  description="data processing and statistical modeling using stock market data",
10
10
  package_dir={"": "virgo_app"},
11
11
  packages=find_packages(where="virgo_app"),
@@ -21,14 +21,14 @@ def get_conformal_classifiers(model, data, targets):
21
21
  def log_confmodels(runid, classifiers):
22
22
  with mlflow.start_run(run_id=runid) as run:
23
23
  for i,classifier in enumerate(classifiers):
24
- mlflow.sklearn.log_model(classifier,f"conformal/conformal_model-{i}")
24
+ mlflow.sklearn.log_model(classifier,name = f"conformal_model-{i}")
25
25
  print('models were logged')
26
26
 
27
27
  def load_confmodel(runid, target_variables):
28
28
  classifiers = list()
29
29
  for i in range(len(target_variables)):
30
- folder = f"conformal/conformal_model-{i}"
31
- model = mlflow.sklearn.load_model(f"runs:/{runid}/{folder}")
30
+ folder = f"conformal_model-{i}"
31
+ model = mlflow.sklearn.load_model(f"runs:/{runid}/{folder}",)
32
32
  classifiers.append(model)
33
33
  return classifiers
34
34
 
@@ -0,0 +1,91 @@
1
+ import numpy as np
2
+ import pandas as pd
3
+
4
+ from sklearn.base import BaseEstimator, ClassifierMixin
5
+
6
+ class MyStackingClassifierMultiClass(BaseEstimator, ClassifierMixin):
7
+ def __init__(self, estimators, meta_estimators,targets,perc=None,stack_size=None, **kwargs):
8
+ self.estimators = estimators
9
+ self.meta_estimators = meta_estimators
10
+ self.targets = targets
11
+ if stack_size and perc:
12
+ raise Exception('just one option')
13
+ if not stack_size and not perc:
14
+ raise Exception('set one option')
15
+ self.stack_size = stack_size
16
+ self.perc = perc
17
+ def get_index_training(self, X):
18
+ if self.stack_size:
19
+ unique_dates = list(X.index.get_level_values('Date_i').unique())
20
+ unique_dates.sort()
21
+ stack_chunk = unique_dates[-self.stack_size:]
22
+ base_indexes = X[~X.index.get_level_values('Date_i').isin(stack_chunk)].index.get_level_values('i')
23
+ meta_indexes = X[X.index.get_level_values('Date_i').isin(stack_chunk)].index.get_level_values('i')
24
+ elif self.perc:
25
+ meta_indexes = X.sample(frac = self.perc).index.get_level_values('i')
26
+ base_indexes = X[~X.index.get_level_values('i').isin(meta_indexes)].index.get_level_values('i')
27
+ else:
28
+ raise Exception("error", self.stack_size, self.perc)
29
+ return base_indexes, meta_indexes
30
+ def train_base_learner(self, classifier, X, y,indexes):
31
+ base_X = X[X.index.get_level_values('i').isin(indexes)]
32
+ base_y = y[y.index.get_level_values('i').isin(indexes)]
33
+ classifier.fit(base_X, base_y)
34
+ def fit(self, X, y):
35
+ # #base learners
36
+ base_indexes, meta_indexes = self.get_index_training(X)
37
+ for name,estimator in self.estimators:
38
+ self.train_base_learner(estimator,X, y, base_indexes)
39
+
40
+ #stack meta learner
41
+ metas_pred = dict()
42
+ for i,cont in enumerate(self.estimators, start=1):
43
+ _,estimator = cont
44
+ meta_pred = estimator.predict_proba(X[X.index.get_level_values('i').isin(meta_indexes)])
45
+ metas_pred[f"meta{i}0"] = meta_pred[0][:,1]
46
+ metas_pred[f"meta{i}1"] = meta_pred[1][:,1]
47
+ meta_preds_df = pd.DataFrame(metas_pred)
48
+
49
+ for i,metaest in enumerate(self.meta_estimators,start=0):
50
+ _,metaest = metaest
51
+ metacols = [f"meta{j}{i}" for j in range(1,len(self.estimators)+1)]
52
+ metaest.fit(
53
+ meta_preds_df[metacols],
54
+ y[X.index.get_level_values('i').isin(meta_indexes)][self.targets[i]]
55
+ )
56
+
57
+ def predict_proba(self, X):
58
+ metas_pred = dict()
59
+ for i,cont in enumerate(self.estimators, start=1):
60
+ _,estimator = cont
61
+ meta_pred = estimator.predict_proba(X)
62
+ metas_pred[f"meta{i}0"] = meta_pred[0][:,1]
63
+ metas_pred[f"meta{i}1"] = meta_pred[1][:,1]
64
+ self.meta_preds_df__ = pd.DataFrame(metas_pred)
65
+
66
+ prediction_vector = list()
67
+ for i,cont in enumerate(self.meta_estimators, start=0):
68
+ _,estimator = cont
69
+ metacols = [f"meta{j}{i}" for j in range(1,len(self.estimators)+1)]
70
+ preds = estimator.predict_proba(self.meta_preds_df__[metacols].values)
71
+ prediction_vector.append(preds)
72
+ return prediction_vector
73
+
74
+ def predict(self, X):
75
+ prediction_vector = list()
76
+ _ = self.predict_proba(X)
77
+ for i,cont in enumerate(self.meta_estimators, start=0):
78
+ _,estimator = cont
79
+ metacols = [f"meta{j}{i}" for j in range(1,len(self.estimators)+1)]
80
+ preds = estimator.predict(self.meta_preds_df__[metacols].values)
81
+ prediction_vector.append(preds)
82
+
83
+ p = np.array(tuple(prediction_vector))
84
+ return p.reshape((p.shape[1],p.shape[0]))
85
+
86
+ def get_params(self, deep=True):
87
+ return {k:v for k, v in self.__dict__.items()}
88
+
89
+ def set_params(self, **parms):
90
+ for k,v in parms.items():
91
+ setattr(self,k,v)
@@ -1,19 +1,19 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: virgo-modules
3
- Version: 0.4.4
3
+ Version: 0.5.0
4
4
  Summary: data processing and statistical modeling using stock market data
5
5
  Home-page: https://github.com/miguelmayhem92/virgo_module
6
6
  Author: Miguel Mayhuire
7
7
  Author-email: miguelmayhem92@gmail.com
8
8
  License: MIT
9
+ Platform: UNKNOWN
9
10
  Classifier: License :: OSI Approved :: MIT License
10
11
  Classifier: Programming Language :: Python :: 3.9
11
12
  Classifier: Operating System :: OS Independent
12
13
  Requires-Python: >=3.9
13
14
  Description-Content-Type: text/markdown
14
- License-File: LICENSE
15
15
  Provides-Extra: dev
16
- Requires-Dist: pytest>=7.0; extra == "dev"
16
+ License-File: LICENSE
17
17
 
18
18
  # Virgo Package
19
19
 
@@ -34,3 +34,4 @@ obj = stock_eda_panel(stock_code = 'PEP', n_days = 20)
34
34
  obj.get_data()
35
35
  print(obj.df.shape)
36
36
  ```
37
+
@@ -18,4 +18,5 @@ virgo_app/virgo_modules/src/transformer_utils.py
18
18
  virgo_app/virgo_modules/src/edge_utils/__init__.py
19
19
  virgo_app/virgo_modules/src/edge_utils/conformal_utils.py
20
20
  virgo_app/virgo_modules/src/edge_utils/edge_utils.py
21
- virgo_app/virgo_modules/src/edge_utils/shap_utils.py
21
+ virgo_app/virgo_modules/src/edge_utils/shap_utils.py
22
+ virgo_app/virgo_modules/src/edge_utils/stack_model.py
File without changes
File without changes
File without changes