|
1 | 1 | """This module allows the composition of quantification methods from loss functions and feature transformations. This functionality is realized through an integration of the qunfold package: https://github.com/mirkobunse/qunfold."""
|
2 | 2 |
|
3 |
| -import qunfold |
4 |
| -from qunfold.quapy import QuaPyWrapper |
5 |
| -from qunfold.sklearn import CVClassifier |
6 |
| -from qunfold import ( |
7 |
| - LeastSquaresLoss, # losses |
8 |
| - BlobelLoss, |
9 |
| - EnergyLoss, |
10 |
| - HellingerSurrogateLoss, |
11 |
| - CombinedLoss, |
12 |
| - TikhonovRegularization, |
13 |
| - TikhonovRegularized, |
14 |
| - ClassTransformer, # transformers |
15 |
| - HistogramTransformer, |
16 |
| - DistanceTransformer, |
17 |
| - KernelTransformer, |
18 |
| - EnergyKernelTransformer, |
19 |
| - LaplacianKernelTransformer, |
20 |
| - GaussianKernelTransformer, |
21 |
| - GaussianRFFKernelTransformer, |
22 |
| -) |
| 3 | +_import_error_message = """qunfold, the back-end of quapy.method.composable, is not properly installed. |
23 | 4 |
|
24 |
| -__all__ = [ # control public members, e.g., for auto-documentation in sphinx; omit QuaPyWrapper |
25 |
| - "ComposableQuantifier", |
26 |
| - "CVClassifier", |
27 |
| - "LeastSquaresLoss", |
28 |
| - "BlobelLoss", |
29 |
| - "EnergyLoss", |
30 |
| - "HellingerSurrogateLoss", |
31 |
| - "CombinedLoss", |
32 |
| - "TikhonovRegularization", |
33 |
| - "TikhonovRegularized", |
34 |
| - "ClassTransformer", |
35 |
| - "HistogramTransformer", |
36 |
| - "DistanceTransformer", |
37 |
| - "KernelTransformer", |
38 |
| - "EnergyKernelTransformer", |
39 |
| - "LaplacianKernelTransformer", |
40 |
| - "GaussianKernelTransformer", |
41 |
| - "GaussianRFFKernelTransformer", |
42 |
| -] |
| 5 | +To fix this error, call: |
| 6 | +
|
| 7 | + pip install --upgrade pip setuptools wheel |
| 8 | + pip install "jax[cpu]" |
| 9 | + pip install "qunfold @ git+https://github.com/mirkobunse/[email protected]" |
| 10 | +""" |
| 11 | + |
| 12 | +try: |
| 13 | + import qunfold |
| 14 | + from qunfold.quapy import QuaPyWrapper |
| 15 | + from qunfold.sklearn import CVClassifier |
| 16 | + from qunfold import ( |
| 17 | + LeastSquaresLoss, # losses |
| 18 | + BlobelLoss, |
| 19 | + EnergyLoss, |
| 20 | + HellingerSurrogateLoss, |
| 21 | + CombinedLoss, |
| 22 | + TikhonovRegularization, |
| 23 | + TikhonovRegularized, |
| 24 | + ClassTransformer, # transformers |
| 25 | + HistogramTransformer, |
| 26 | + DistanceTransformer, |
| 27 | + KernelTransformer, |
| 28 | + EnergyKernelTransformer, |
| 29 | + LaplacianKernelTransformer, |
| 30 | + GaussianKernelTransformer, |
| 31 | + GaussianRFFKernelTransformer, |
| 32 | + ) |
| 33 | + |
| 34 | + __all__ = [ # control public members, e.g., for auto-documentation in sphinx; omit QuaPyWrapper |
| 35 | + "ComposableQuantifier", |
| 36 | + "CVClassifier", |
| 37 | + "LeastSquaresLoss", |
| 38 | + "BlobelLoss", |
| 39 | + "EnergyLoss", |
| 40 | + "HellingerSurrogateLoss", |
| 41 | + "CombinedLoss", |
| 42 | + "TikhonovRegularization", |
| 43 | + "TikhonovRegularized", |
| 44 | + "ClassTransformer", |
| 45 | + "HistogramTransformer", |
| 46 | + "DistanceTransformer", |
| 47 | + "KernelTransformer", |
| 48 | + "EnergyKernelTransformer", |
| 49 | + "LaplacianKernelTransformer", |
| 50 | + "GaussianKernelTransformer", |
| 51 | + "GaussianRFFKernelTransformer", |
| 52 | + ] |
| 53 | +except ImportError as e: |
| 54 | + raise ImportError(_import_error_message) from e |
43 | 55 |
|
44 | 56 | def ComposableQuantifier(loss, transformer, **kwargs):
|
45 | 57 | """A generic quantification / unfolding method that solves a linear system of equations.
|
|
0 commit comments