flexcode 0.2.1__tar.gz → 0.2.2__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.
- {flexcode-0.2.1 → flexcode-0.2.2}/.github/workflows/smoke-test.yml +1 -1
- {flexcode-0.2.1 → flexcode-0.2.2}/.github/workflows/testing-and-coverage.yml +2 -2
- {flexcode-0.2.1 → flexcode-0.2.2}/PKG-INFO +21 -3
- {flexcode-0.2.1 → flexcode-0.2.2}/pyproject.toml +3 -3
- flexcode-0.2.2/src/flexcode/_version.py +21 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/src/flexcode/regression_models.py +29 -14
- {flexcode-0.2.1 → flexcode-0.2.2}/src/flexcode.egg-info/PKG-INFO +21 -3
- {flexcode-0.2.1 → flexcode-0.2.2}/src/flexcode.egg-info/requires.txt +3 -3
- flexcode-0.2.1/src/flexcode/_version.py +0 -4
- {flexcode-0.2.1 → flexcode-0.2.2}/.copier-answers.yml +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/.github/workflows/linting.yml +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/.github/workflows/publish-to-pypi.yml +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/.gitignore +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/.pre-commit-config.yaml +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/.readthedocs.yml +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/.travis.yml +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/LICENSE +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/README.md +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/archive/README.md +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/archive/x_setup.cfg +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/archive/x_setup.py +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/archive/x_tox.ini +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/docs/Makefile +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/docs/conf.py +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/docs/index.rst +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/docs/notebooks/README.md +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/docs/notebooks/intro_notebook.ipynb +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/docs/notebooks.rst +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/docs/requirements.txt +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/setup.cfg +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/src/.pylintrc +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/src/flexcode/__init__.py +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/src/flexcode/basis_functions.py +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/src/flexcode/core.py +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/src/flexcode/helpers.py +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/src/flexcode/loss_functions.py +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/src/flexcode/post_processing.py +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/src/flexcode.egg-info/SOURCES.txt +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/src/flexcode.egg-info/dependency_links.txt +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/src/flexcode.egg-info/top_level.txt +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/tests/flexcode/.pylintrc +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/tests/flexcode/conftest.py +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/tests/flexcode/context.py +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/tests/flexcode/test_cv_optim.py +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/tests/flexcode/test_models_fit.py +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/tests/flexcode/test_params_handling.py +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/tests/flexcode/test_post_processing.py +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/tutorial/Flexcode-tutorial-teddy.ipynb +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/vignettes/Custom Class.ipynb +0 -0
- {flexcode-0.2.1 → flexcode-0.2.2}/vignettes/Model Save and Bumps Removal - Flexcode.ipynb +0 -0
|
@@ -15,7 +15,7 @@ jobs:
|
|
|
15
15
|
runs-on: ubuntu-latest
|
|
16
16
|
strategy:
|
|
17
17
|
matrix:
|
|
18
|
-
python-version: ['3.
|
|
18
|
+
python-version: ['3.10', '3.11', '3.12']
|
|
19
19
|
|
|
20
20
|
steps:
|
|
21
21
|
- uses: actions/checkout@v3
|
|
@@ -40,4 +40,4 @@ jobs:
|
|
|
40
40
|
sudo apt-get install pandoc
|
|
41
41
|
- name: Build docs
|
|
42
42
|
run: |
|
|
43
|
-
sphinx-build -T -E -b html -d docs/build/doctrees ./docs docs/build/html
|
|
43
|
+
sphinx-build -T -E -b html -d docs/build/doctrees ./docs docs/build/html
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: flexcode
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Author-email: Ann Lee <annlee@andrew.cmu.edu>
|
|
5
5
|
License: GNU GENERAL PUBLIC LICENSE
|
|
6
6
|
Version 2, June 1991
|
|
@@ -349,8 +349,26 @@ Classifier: Intended Audience :: Science/Research
|
|
|
349
349
|
Classifier: Operating System :: OS Independent
|
|
350
350
|
Classifier: Programming Language :: Python
|
|
351
351
|
Description-Content-Type: text/markdown
|
|
352
|
-
Provides-Extra: dev
|
|
353
352
|
License-File: LICENSE
|
|
353
|
+
Requires-Dist: deprecated
|
|
354
|
+
Requires-Dist: ipykernel
|
|
355
|
+
Requires-Dist: pywavelets
|
|
356
|
+
Requires-Dist: scikit-learn>=0.18
|
|
357
|
+
Requires-Dist: xgboost
|
|
358
|
+
Provides-Extra: dev
|
|
359
|
+
Requires-Dist: pytest; extra == "dev"
|
|
360
|
+
Requires-Dist: pytest-cov; extra == "dev"
|
|
361
|
+
Requires-Dist: pre-commit; extra == "dev"
|
|
362
|
+
Requires-Dist: sphinx; extra == "dev"
|
|
363
|
+
Requires-Dist: sphinx_rtd_theme; extra == "dev"
|
|
364
|
+
Requires-Dist: sphinx-autoapi; extra == "dev"
|
|
365
|
+
Requires-Dist: black; extra == "dev"
|
|
366
|
+
Requires-Dist: nbconvert; extra == "dev"
|
|
367
|
+
Requires-Dist: nbsphinx; extra == "dev"
|
|
368
|
+
Requires-Dist: ipython; extra == "dev"
|
|
369
|
+
Requires-Dist: matplotlib; extra == "dev"
|
|
370
|
+
Requires-Dist: numpy; extra == "dev"
|
|
371
|
+
Dynamic: license-file
|
|
354
372
|
|
|
355
373
|
Implementation of Flexible Conditional Density Estimator (FlexCode) in Python. See Izbicki, R.; Lee, A.B. [Converting High-Dimensional Regression to High-Dimensional Conditional Density Estimation](https://projecteuclid.org/euclid.ejs/1499133755). Electronic Journal of Statistics, 2017 for details. Port of the original [R package](https://github.com/rizbicki/FlexCoDE).
|
|
356
374
|
|
|
@@ -27,9 +27,9 @@ dev = [
|
|
|
27
27
|
"pytest",
|
|
28
28
|
"pytest-cov", # Used to report total code coverage
|
|
29
29
|
"pre-commit", # Used to run checks before finalizing a git commit
|
|
30
|
-
"sphinx
|
|
31
|
-
"sphinx_rtd_theme
|
|
32
|
-
"sphinx-autoapi
|
|
30
|
+
"sphinx", # Used to automatically generate documentation
|
|
31
|
+
"sphinx_rtd_theme", # Used to render documentation
|
|
32
|
+
"sphinx-autoapi", # Used to automatically generate api documentation
|
|
33
33
|
"black", # Used for static linting of files
|
|
34
34
|
"nbconvert", # Needed for pre-commit check to clear output from Python notebooks
|
|
35
35
|
"nbsphinx", # Used to itegrate Python notebooks into Sphinx documentation
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# file generated by setuptools-scm
|
|
2
|
+
# don't change, don't track in version control
|
|
3
|
+
|
|
4
|
+
__all__ = ["__version__", "__version_tuple__", "version", "version_tuple"]
|
|
5
|
+
|
|
6
|
+
TYPE_CHECKING = False
|
|
7
|
+
if TYPE_CHECKING:
|
|
8
|
+
from typing import Tuple
|
|
9
|
+
from typing import Union
|
|
10
|
+
|
|
11
|
+
VERSION_TUPLE = Tuple[Union[int, str], ...]
|
|
12
|
+
else:
|
|
13
|
+
VERSION_TUPLE = object
|
|
14
|
+
|
|
15
|
+
version: str
|
|
16
|
+
__version__: str
|
|
17
|
+
__version_tuple__: VERSION_TUPLE
|
|
18
|
+
version_tuple: VERSION_TUPLE
|
|
19
|
+
|
|
20
|
+
__version__ = version = '0.2.2'
|
|
21
|
+
__version_tuple__ = version_tuple = (0, 2, 2)
|
|
@@ -38,6 +38,7 @@ class NN(FlexCodeRegression):
|
|
|
38
38
|
raise Exception("NN requires scikit-learn to be installed")
|
|
39
39
|
|
|
40
40
|
super(NN, self).__init__(max_basis)
|
|
41
|
+
self.n_jobs = kwargs.get("n_jobs", -1)
|
|
41
42
|
|
|
42
43
|
# Historically, we have used 'k' to indicate the number of neighbors, so
|
|
43
44
|
# this just puts the right notation for KNeighborsRegressor
|
|
@@ -50,7 +51,7 @@ class NN(FlexCodeRegression):
|
|
|
50
51
|
None
|
|
51
52
|
if opt_flag
|
|
52
53
|
else sklearn.multioutput.MultiOutputRegressor(
|
|
53
|
-
sklearn.neighbors.KNeighborsRegressor(**self.params), n_jobs
|
|
54
|
+
sklearn.neighbors.KNeighborsRegressor(**self.params), n_jobs=self.n_jobs
|
|
54
55
|
)
|
|
55
56
|
)
|
|
56
57
|
|
|
@@ -64,7 +65,9 @@ class NN(FlexCodeRegression):
|
|
|
64
65
|
self.models.fit(x_train, z_basis)
|
|
65
66
|
|
|
66
67
|
def cv_optim(self, x_train, z_basis):
|
|
67
|
-
nn_obj = sklearn.multioutput.MultiOutputRegressor(
|
|
68
|
+
nn_obj = sklearn.multioutput.MultiOutputRegressor(
|
|
69
|
+
sklearn.neighbors.KNeighborsRegressor(), n_jobs=self.n_jobs
|
|
70
|
+
)
|
|
68
71
|
clf = sklearn.model_selection.GridSearchCV(
|
|
69
72
|
nn_obj, self.params, cv=5, scoring="neg_mean_squared_error", verbose=2
|
|
70
73
|
)
|
|
@@ -72,7 +75,7 @@ class NN(FlexCodeRegression):
|
|
|
72
75
|
|
|
73
76
|
self.params = params_name_format(clf.best_params_, str_rem="estimator__")
|
|
74
77
|
self.models = sklearn.multioutput.MultiOutputRegressor(
|
|
75
|
-
sklearn.neighbors.KNeighborsRegressor(**self.params), n_jobs
|
|
78
|
+
sklearn.neighbors.KNeighborsRegressor(**self.params), n_jobs=self.n_jobs
|
|
76
79
|
)
|
|
77
80
|
|
|
78
81
|
def predict(self, x_test):
|
|
@@ -86,6 +89,7 @@ class RandomForest(FlexCodeRegression):
|
|
|
86
89
|
raise Exception("RandomForest requires scikit-learn to be installed")
|
|
87
90
|
|
|
88
91
|
super(RandomForest, self).__init__(max_basis)
|
|
92
|
+
self.n_jobs = kwargs.get("n_jobs", -1)
|
|
89
93
|
|
|
90
94
|
params_opt, opt_flag = params_dict_optim_decision(params, multi_output=True)
|
|
91
95
|
self.params = params_opt
|
|
@@ -93,7 +97,7 @@ class RandomForest(FlexCodeRegression):
|
|
|
93
97
|
None
|
|
94
98
|
if opt_flag
|
|
95
99
|
else sklearn.multioutput.MultiOutputRegressor(
|
|
96
|
-
sklearn.ensemble.RandomForestRegressor(**self.params), n_jobs
|
|
100
|
+
sklearn.ensemble.RandomForestRegressor(**self.params), n_jobs=self.n_jobs
|
|
97
101
|
)
|
|
98
102
|
)
|
|
99
103
|
|
|
@@ -104,7 +108,9 @@ class RandomForest(FlexCodeRegression):
|
|
|
104
108
|
self.models.fit(x_train, z_basis, sample_weight=weight)
|
|
105
109
|
|
|
106
110
|
def cv_optim(self, x_train, z_basis, weight=None):
|
|
107
|
-
rf_obj = sklearn.multioutput.MultiOutputRegressor(
|
|
111
|
+
rf_obj = sklearn.multioutput.MultiOutputRegressor(
|
|
112
|
+
sklearn.ensemble.RandomForestRegressor(), n_jobs=self.n_jobs
|
|
113
|
+
)
|
|
108
114
|
clf = sklearn.model_selection.GridSearchCV(
|
|
109
115
|
rf_obj, self.params, cv=5, scoring="neg_mean_squared_error", verbose=2
|
|
110
116
|
)
|
|
@@ -112,7 +118,7 @@ class RandomForest(FlexCodeRegression):
|
|
|
112
118
|
|
|
113
119
|
self.params = params_name_format(clf.best_params_, str_rem="estimator__")
|
|
114
120
|
self.models = sklearn.multioutput.MultiOutputRegressor(
|
|
115
|
-
sklearn.ensemble.RandomForestRegressor(**self.params), n_jobs
|
|
121
|
+
sklearn.ensemble.RandomForestRegressor(**self.params), n_jobs=self.n_jobs
|
|
116
122
|
)
|
|
117
123
|
|
|
118
124
|
def predict(self, x_test):
|
|
@@ -125,6 +131,7 @@ class XGBoost(FlexCodeRegression):
|
|
|
125
131
|
if not XGBOOST_AVAILABLE:
|
|
126
132
|
raise Exception("XGBoost requires xgboost to be installed")
|
|
127
133
|
super(XGBoost, self).__init__(max_basis)
|
|
134
|
+
self.n_jobs = kwargs.get("n_jobs", -1)
|
|
128
135
|
|
|
129
136
|
# Historically, people have used `eta` for `learning_rate` - taking that
|
|
130
137
|
# into account
|
|
@@ -143,7 +150,7 @@ class XGBoost(FlexCodeRegression):
|
|
|
143
150
|
self.models = (
|
|
144
151
|
None
|
|
145
152
|
if opt_flag
|
|
146
|
-
else sklearn.multioutput.MultiOutputRegressor(xgb.XGBRegressor(**self.params), n_jobs
|
|
153
|
+
else sklearn.multioutput.MultiOutputRegressor(xgb.XGBRegressor(**self.params), n_jobs=self.n_jobs)
|
|
147
154
|
)
|
|
148
155
|
|
|
149
156
|
def fit(self, x_train, z_basis, weight=None):
|
|
@@ -153,14 +160,16 @@ class XGBoost(FlexCodeRegression):
|
|
|
153
160
|
self.models.fit(x_train, z_basis, sample_weight=weight)
|
|
154
161
|
|
|
155
162
|
def cv_optim(self, x_train, z_basis, weight=None):
|
|
156
|
-
xgb_obj = sklearn.multioutput.MultiOutputRegressor(xgb.XGBRegressor(), n_jobs
|
|
163
|
+
xgb_obj = sklearn.multioutput.MultiOutputRegressor(xgb.XGBRegressor(), n_jobs=self.n_jobs)
|
|
157
164
|
clf = sklearn.model_selection.GridSearchCV(
|
|
158
165
|
xgb_obj, self.params, cv=5, scoring="neg_mean_squared_error", verbose=2
|
|
159
166
|
)
|
|
160
167
|
clf.fit(x_train, z_basis, sample_weight=weight)
|
|
161
168
|
|
|
162
169
|
self.params = params_name_format(clf.best_params_, str_rem="estimator__")
|
|
163
|
-
self.models = sklearn.multioutput.MultiOutputRegressor(
|
|
170
|
+
self.models = sklearn.multioutput.MultiOutputRegressor(
|
|
171
|
+
xgb.XGBRegressor(**self.params), n_jobs=self.n_jobs
|
|
172
|
+
)
|
|
164
173
|
|
|
165
174
|
def predict(self, x_test):
|
|
166
175
|
coefs = self.models.predict(x_test)
|
|
@@ -172,6 +181,7 @@ class Lasso(FlexCodeRegression):
|
|
|
172
181
|
if not SKLEARN_AVAILABLE:
|
|
173
182
|
raise Exception("Lasso requires scikit-learn to be installed")
|
|
174
183
|
super(Lasso, self).__init__(max_basis)
|
|
184
|
+
self.n_jobs = kwargs.get("n_jobs", -1)
|
|
175
185
|
|
|
176
186
|
# Also, set the default values if not passed
|
|
177
187
|
params["alpha"] = params.get("alpha", 1.0)
|
|
@@ -183,7 +193,7 @@ class Lasso(FlexCodeRegression):
|
|
|
183
193
|
None
|
|
184
194
|
if opt_flag
|
|
185
195
|
else sklearn.multioutput.MultiOutputRegressor(
|
|
186
|
-
sklearn.linear_model.ElasticNet(**self.params), n_jobs
|
|
196
|
+
sklearn.linear_model.ElasticNet(**self.params), n_jobs=self.n_jobs
|
|
187
197
|
)
|
|
188
198
|
)
|
|
189
199
|
|
|
@@ -199,7 +209,9 @@ class Lasso(FlexCodeRegression):
|
|
|
199
209
|
self.models.fit(x_train, z_basis)
|
|
200
210
|
|
|
201
211
|
def cv_optim(self, x_train, z_basis):
|
|
202
|
-
lasso_obj = sklearn.multioutput.MultiOutputRegressor(
|
|
212
|
+
lasso_obj = sklearn.multioutput.MultiOutputRegressor(
|
|
213
|
+
sklearn.linear_model.ElasticNet(), n_jobs=self.n_jobs
|
|
214
|
+
)
|
|
203
215
|
clf = sklearn.model_selection.GridSearchCV(
|
|
204
216
|
lasso_obj, self.params, cv=5, scoring="neg_mean_squared_error", verbose=2
|
|
205
217
|
)
|
|
@@ -220,6 +232,7 @@ class CustomModel(FlexCodeRegression):
|
|
|
220
232
|
if not SKLEARN_AVAILABLE:
|
|
221
233
|
raise Exception("Custom class requires scikit-learn to be installed")
|
|
222
234
|
super(CustomModel, self).__init__(max_basis)
|
|
235
|
+
self.n_jobs = kwargs.get("n_jobs", -1)
|
|
223
236
|
|
|
224
237
|
params_opt, opt_flag = params_dict_optim_decision(params, multi_output=True)
|
|
225
238
|
self.params = params_opt
|
|
@@ -227,7 +240,7 @@ class CustomModel(FlexCodeRegression):
|
|
|
227
240
|
self.models = (
|
|
228
241
|
None
|
|
229
242
|
if opt_flag
|
|
230
|
-
else sklearn.multioutput.MultiOutputRegressor(self.base_model(**self.params), n_jobs
|
|
243
|
+
else sklearn.multioutput.MultiOutputRegressor(self.base_model(**self.params), n_jobs=self.n_jobs)
|
|
231
244
|
)
|
|
232
245
|
|
|
233
246
|
def fit(self, x_train, z_basis, weight=None):
|
|
@@ -242,14 +255,16 @@ class CustomModel(FlexCodeRegression):
|
|
|
242
255
|
self.models.fit(x_train, z_basis)
|
|
243
256
|
|
|
244
257
|
def cv_optim(self, x_train, z_basis):
|
|
245
|
-
custom_obj = sklearn.multioutput.MultiOutputRegressor(self.base_model(), n_jobs
|
|
258
|
+
custom_obj = sklearn.multioutput.MultiOutputRegressor(self.base_model(), n_jobs=self.n_jobs)
|
|
246
259
|
clf = sklearn.model_selection.GridSearchCV(
|
|
247
260
|
custom_obj, self.params, cv=5, scoring="neg_mean_squared_error", verbose=2
|
|
248
261
|
)
|
|
249
262
|
clf.fit(x_train, z_basis)
|
|
250
263
|
|
|
251
264
|
self.params = params_name_format(clf.best_params_, str_rem="estimator__")
|
|
252
|
-
self.models = sklearn.multioutput.MultiOutputRegressor(
|
|
265
|
+
self.models = sklearn.multioutput.MultiOutputRegressor(
|
|
266
|
+
self.base_model(**self.params), n_jobs=self.n_jobs
|
|
267
|
+
)
|
|
253
268
|
|
|
254
269
|
def predict(self, x_test):
|
|
255
270
|
coefs = self.models.predict(x_test)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: flexcode
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Author-email: Ann Lee <annlee@andrew.cmu.edu>
|
|
5
5
|
License: GNU GENERAL PUBLIC LICENSE
|
|
6
6
|
Version 2, June 1991
|
|
@@ -349,8 +349,26 @@ Classifier: Intended Audience :: Science/Research
|
|
|
349
349
|
Classifier: Operating System :: OS Independent
|
|
350
350
|
Classifier: Programming Language :: Python
|
|
351
351
|
Description-Content-Type: text/markdown
|
|
352
|
-
Provides-Extra: dev
|
|
353
352
|
License-File: LICENSE
|
|
353
|
+
Requires-Dist: deprecated
|
|
354
|
+
Requires-Dist: ipykernel
|
|
355
|
+
Requires-Dist: pywavelets
|
|
356
|
+
Requires-Dist: scikit-learn>=0.18
|
|
357
|
+
Requires-Dist: xgboost
|
|
358
|
+
Provides-Extra: dev
|
|
359
|
+
Requires-Dist: pytest; extra == "dev"
|
|
360
|
+
Requires-Dist: pytest-cov; extra == "dev"
|
|
361
|
+
Requires-Dist: pre-commit; extra == "dev"
|
|
362
|
+
Requires-Dist: sphinx; extra == "dev"
|
|
363
|
+
Requires-Dist: sphinx_rtd_theme; extra == "dev"
|
|
364
|
+
Requires-Dist: sphinx-autoapi; extra == "dev"
|
|
365
|
+
Requires-Dist: black; extra == "dev"
|
|
366
|
+
Requires-Dist: nbconvert; extra == "dev"
|
|
367
|
+
Requires-Dist: nbsphinx; extra == "dev"
|
|
368
|
+
Requires-Dist: ipython; extra == "dev"
|
|
369
|
+
Requires-Dist: matplotlib; extra == "dev"
|
|
370
|
+
Requires-Dist: numpy; extra == "dev"
|
|
371
|
+
Dynamic: license-file
|
|
354
372
|
|
|
355
373
|
Implementation of Flexible Conditional Density Estimator (FlexCode) in Python. See Izbicki, R.; Lee, A.B. [Converting High-Dimensional Regression to High-Dimensional Conditional Density Estimation](https://projecteuclid.org/euclid.ejs/1499133755). Electronic Journal of Statistics, 2017 for details. Port of the original [R package](https://github.com/rizbicki/FlexCoDE).
|
|
356
374
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|