From 6cabb452f7d865c244e7b4bb70c8d1a06a9c2acd Mon Sep 17 00:00:00 2001 From: Kevin Jablonka <32935233+kjappelbaum@users.noreply.github.com> Date: Sun, 25 Oct 2020 14:54:44 +0100 Subject: [PATCH] docs: added some links to API docs, explain which class to use. Closes #78 (#80) --- docs/_build/doctrees/developer_notes.doctree | Bin 23039 -> 23540 bytes docs/_build/doctrees/environment.pickle | Bin 140492 -> 145582 bytes docs/_build/doctrees/getting_started.doctree | Bin 53903 -> 61955 bytes docs/_build/html/.buildinfo | 2 +- docs/_build/html/_modules/index.html | 2 +- .../html/_modules/pypal/models/gpr.html | 2 +- docs/_build/html/_modules/pypal/pal/core.html | 2 +- .../html/_modules/pypal/pal/pal_base.html | 2 +- .../pypal/pal/pal_coregionalized.html | 2 +- .../html/_modules/pypal/pal/pal_gbdt.html | 2 +- .../html/_modules/pypal/pal/pal_gpy.html | 2 +- .../html/_modules/pypal/pal/pal_sklearn.html | 2 +- .../html/_modules/pypal/pal/schedules.html | 2 +- .../_build/html/_modules/pypal/pal/utils.html | 2 +- .../_modules/pypal/pal/validate_inputs.html | 2 +- docs/_build/html/_modules/pypal/plotting.html | 2 +- .../html/_sources/developer_notes.rst.txt | 2 ++ .../html/_sources/getting_started.rst.txt | 23 ++++++++++---- .../html/_static/documentation_options.js | 2 +- docs/_build/html/api.html | 2 +- docs/_build/html/background.html | 2 +- docs/_build/html/developer_notes.html | 4 +-- docs/_build/html/genindex.html | 2 +- docs/_build/html/getting_started.html | 28 +++++++++++++----- docs/_build/html/index.html | 3 +- docs/_build/html/objects.inv | Bin 1109 -> 2130 bytes docs/_build/html/py-modindex.html | 2 +- docs/_build/html/search.html | 2 +- docs/_build/html/searchindex.js | 2 +- docs/_build/html/tutorials.html | 2 +- docs/conf.py | 1 + docs/developer_notes.rst | 2 ++ docs/getting_started.rst | 23 ++++++++++---- 33 files changed, 85 insertions(+), 43 deletions(-) diff --git a/docs/_build/doctrees/developer_notes.doctree b/docs/_build/doctrees/developer_notes.doctree index 4abacf2aa6fd0c007ce1371fd0a6440ac00aac5d..ad4589976f096fe178ce293650103462a31c8b5c 100644 GIT binary patch delta 1314 zcmZuxUu;ul6z6O2-5*38tQPkNcHN4s!**F|>9#6tajwiJgJG~`Sj*k^ZC@{K*Yvi) zNSH3hxQCl8cs_!VXlQ&g;X!gA)CU8a$ScMeU*ydfNf2YA2}TnA&Uafj2rpmmIp=qN zzw@1Y&i9{9{`!)r?c{uO?n_cGPm9t>)k0zH!{>bcBpPB+bA&KlDk z2E6V4YKhKg=eYH(00aaeAOXC>`q&cNnFz5Cb+WzoXMx?MY1%D39YzX% z2oAIyL!%ZJ84-J1|C)=;Lv`SFvIqkK543E3-e=4USY?KJEk#=_Y5W6TFVC?B9j3Iy z&8{YRE7VWkucx|1;Ckp+!FX|Bl3W(q7a$t;N#%Ap9S)Og8!3Jc z_tZk3$S}FNF?24HtcC7H-XTA23^`d>_J2fvtGk;YT?JO6ZE!ZayO#V_beue_qk0~p zELGDBa~p1K+^AI!iNOeY4ps*H1jDt#glpanFZPDjsA$G9J2Z5N5I<-!rzf8b_mhys z`r*Ow9vMlJar89#6{ojwKNbUHd^7wJd)4JvB-s#>K{f8R&%fezk&`0916QY>fg^#< z@XdifH6{V~4*b(x5;VdnDp1`XZiu7b4Wm0-?bt}x?OImgc1IiBcx{b*SR>g2EuKcQ z24}`5$TEC8R&Bq8mB`syO%Oq_T&v9b9S)A(7qvY^9=zlP(%aSettRrtlQqQ?QrnrU z$_!<@aFVq&@3lI!`C^XdX`!4gEClqx<6~=#iPloqo#xCZ(D3h(u5EI(*Jqzo7zuVx zMXWY@wn%5o8L4B_Qtp+3O9xXn`!NMDo`wqfT5lPvj?Y&F7m+s z{LKsQm!&_=WkffvMr6&-nYfU~kH~x*kE57;7*ff%559q)aXh53r2QT--{Dck<5O`| ztY)MtFBR!J*`#q4?j~a|A;+Z5Uo|jyQs%8zn1-^b$hHW%vD68lRKmS>E`TfSD9JBW zGCsDyPIZ%aS+lj(Tr$fvpUG3x)E6iRUVmCx1HL0{`U%@>?K>nYEakF=Q(9RsEzq*o z{n(G{*0QEnSS)Mn%@3|W34*r6NUJ#0@V94I!*O9wtMF%Q*M2oePtzPv5KF-(a7&q( g96!vh26M4enx&lWwG<&sc_M^wL`stA@XK-E{{z6HUH||9 delta 860 zcmY+DO-vI}5XX6Mx7dP;SR}O24+;VS*9O>9N>NJ$Qi5r~kN`yvD=ofmU{fefZH$T< z6AU#dv)oI9iC#?18Vnbsi80>v|Osb)W2g-ju?sEAa{7dTiyeyXC3J_neB2uEs23$YEhYd7617=32&K8N`tiYQx%==Id)tlOS0^t{me;ThGftLR;!yjNlLuA=R{Y?Ale{qkDi zoA+dn+0faKe&@65_Omhur=&!j>Rt7gdR=WI23gBZ4O^Wa%<=HYY|ih%>Knvi4r-f3 zgNN-<%ld){+j!{dumD?2so#wo3QBA+?QhH{JocZ#T?fqa?t9E+JTK!xS+G+3*kWd1Rvu6$|(rh#qNw5RRujxSYOBVX+A>{MmAG_o^%btD~wwSZY!Ws*! zG$b=723SbPqyG^hxgS1``JJpXq*sOXilroRvNo&(IZW~1@d>L=-o|+{`!{s5oY6MN KT?jr*)c*rU1pGb# diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle index f0a715792557935e7d701ef8b69f5e8b5b85dad0..85bbcdf6565310798504bda4c0a0065a3663a5b9 100644 GIT binary patch delta 26673 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 delta 22885 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 diff --git a/docs/_build/doctrees/getting_started.doctree b/docs/_build/doctrees/getting_started.doctree index 8e2dd8037f95b9dac4272ea72d764e8a4a2b969d..06ca18ecde4be9e0bcd934346865b6f6e8a2111c 100644 GIT binary patch delta 13663 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 v2ef%=9#EAR9w;{?*!|7T)=R6#R8 - Overview: module code — pypal 0+untagged.210.gc6bd515.dirty documentation + Overview: module code — pypal 0+untagged.212.g4af8189.dirty documentation diff --git a/docs/_build/html/_modules/pypal/models/gpr.html b/docs/_build/html/_modules/pypal/models/gpr.html index 32b5851..6fbdf86 100644 --- a/docs/_build/html/_modules/pypal/models/gpr.html +++ b/docs/_build/html/_modules/pypal/models/gpr.html @@ -5,7 +5,7 @@ - pypal.models.gpr — pypal 0+untagged.210.gc6bd515.dirty documentation + pypal.models.gpr — pypal 0+untagged.212.g4af8189.dirty documentation diff --git a/docs/_build/html/_modules/pypal/pal/core.html b/docs/_build/html/_modules/pypal/pal/core.html index 8ca08fc..4ff7e74 100644 --- a/docs/_build/html/_modules/pypal/pal/core.html +++ b/docs/_build/html/_modules/pypal/pal/core.html @@ -5,7 +5,7 @@ - pypal.pal.core — pypal 0+untagged.210.gc6bd515.dirty documentation + pypal.pal.core — pypal 0+untagged.212.g4af8189.dirty documentation diff --git a/docs/_build/html/_modules/pypal/pal/pal_base.html b/docs/_build/html/_modules/pypal/pal/pal_base.html index bb1115c..3cd4617 100644 --- a/docs/_build/html/_modules/pypal/pal/pal_base.html +++ b/docs/_build/html/_modules/pypal/pal/pal_base.html @@ -5,7 +5,7 @@ - pypal.pal.pal_base — pypal 0+untagged.210.gc6bd515.dirty documentation + pypal.pal.pal_base — pypal 0+untagged.212.g4af8189.dirty documentation diff --git a/docs/_build/html/_modules/pypal/pal/pal_coregionalized.html b/docs/_build/html/_modules/pypal/pal/pal_coregionalized.html index 4c5cf36..aea4612 100644 --- a/docs/_build/html/_modules/pypal/pal/pal_coregionalized.html +++ b/docs/_build/html/_modules/pypal/pal/pal_coregionalized.html @@ -5,7 +5,7 @@ - pypal.pal.pal_coregionalized — pypal 0+untagged.210.gc6bd515.dirty documentation + pypal.pal.pal_coregionalized — pypal 0+untagged.212.g4af8189.dirty documentation diff --git a/docs/_build/html/_modules/pypal/pal/pal_gbdt.html b/docs/_build/html/_modules/pypal/pal/pal_gbdt.html index fd502e1..4b3b813 100644 --- a/docs/_build/html/_modules/pypal/pal/pal_gbdt.html +++ b/docs/_build/html/_modules/pypal/pal/pal_gbdt.html @@ -5,7 +5,7 @@ - pypal.pal.pal_gbdt — pypal 0+untagged.210.gc6bd515.dirty documentation + pypal.pal.pal_gbdt — pypal 0+untagged.212.g4af8189.dirty documentation diff --git a/docs/_build/html/_modules/pypal/pal/pal_gpy.html b/docs/_build/html/_modules/pypal/pal/pal_gpy.html index ce94b9f..36c65f9 100644 --- a/docs/_build/html/_modules/pypal/pal/pal_gpy.html +++ b/docs/_build/html/_modules/pypal/pal/pal_gpy.html @@ -5,7 +5,7 @@ - pypal.pal.pal_gpy — pypal 0+untagged.210.gc6bd515.dirty documentation + pypal.pal.pal_gpy — pypal 0+untagged.212.g4af8189.dirty documentation diff --git a/docs/_build/html/_modules/pypal/pal/pal_sklearn.html b/docs/_build/html/_modules/pypal/pal/pal_sklearn.html index 28b4b5d..5339bdf 100644 --- a/docs/_build/html/_modules/pypal/pal/pal_sklearn.html +++ b/docs/_build/html/_modules/pypal/pal/pal_sklearn.html @@ -5,7 +5,7 @@ - pypal.pal.pal_sklearn — pypal 0+untagged.210.gc6bd515.dirty documentation + pypal.pal.pal_sklearn — pypal 0+untagged.212.g4af8189.dirty documentation diff --git a/docs/_build/html/_modules/pypal/pal/schedules.html b/docs/_build/html/_modules/pypal/pal/schedules.html index 0a22a0e..e53fc8d 100644 --- a/docs/_build/html/_modules/pypal/pal/schedules.html +++ b/docs/_build/html/_modules/pypal/pal/schedules.html @@ -5,7 +5,7 @@ - pypal.pal.schedules — pypal 0+untagged.210.gc6bd515.dirty documentation + pypal.pal.schedules — pypal 0+untagged.212.g4af8189.dirty documentation diff --git a/docs/_build/html/_modules/pypal/pal/utils.html b/docs/_build/html/_modules/pypal/pal/utils.html index 85edbde..57c3a7b 100644 --- a/docs/_build/html/_modules/pypal/pal/utils.html +++ b/docs/_build/html/_modules/pypal/pal/utils.html @@ -5,7 +5,7 @@ - pypal.pal.utils — pypal 0+untagged.210.gc6bd515.dirty documentation + pypal.pal.utils — pypal 0+untagged.212.g4af8189.dirty documentation diff --git a/docs/_build/html/_modules/pypal/pal/validate_inputs.html b/docs/_build/html/_modules/pypal/pal/validate_inputs.html index 88e94b6..0cc43d3 100644 --- a/docs/_build/html/_modules/pypal/pal/validate_inputs.html +++ b/docs/_build/html/_modules/pypal/pal/validate_inputs.html @@ -5,7 +5,7 @@ - pypal.pal.validate_inputs — pypal 0+untagged.210.gc6bd515.dirty documentation + pypal.pal.validate_inputs — pypal 0+untagged.212.g4af8189.dirty documentation diff --git a/docs/_build/html/_modules/pypal/plotting.html b/docs/_build/html/_modules/pypal/plotting.html index 12d856f..feac2ad 100644 --- a/docs/_build/html/_modules/pypal/plotting.html +++ b/docs/_build/html/_modules/pypal/plotting.html @@ -5,7 +5,7 @@ - pypal.plotting — pypal 0+untagged.210.gc6bd515.dirty documentation + pypal.plotting — pypal 0+untagged.212.g4af8189.dirty documentation diff --git a/docs/_build/html/_sources/developer_notes.rst.txt b/docs/_build/html/_sources/developer_notes.rst.txt index ef05c90..1ea05d4 100644 --- a/docs/_build/html/_sources/developer_notes.rst.txt +++ b/docs/_build/html/_sources/developer_notes.rst.txt @@ -47,6 +47,8 @@ Currently, documentation is hosted on GitHub pages. Build it locally using :code git subtree push --prefix docs/_build/html origin gh-pages +.. _new_pal_class: + Implementing a new PAL class ----------------------------- diff --git a/docs/_build/html/_sources/getting_started.rst.txt b/docs/_build/html/_sources/getting_started.rst.txt index 2e4c272..86a70c4 100644 --- a/docs/_build/html/_sources/getting_started.rst.txt +++ b/docs/_build/html/_sources/getting_started.rst.txt @@ -19,16 +19,27 @@ The latest version of PyPAL can be installed from GitHub using pip install git+https://github.com/kjappelbaum/pypal.git +Which class do i use? +----------------------- + +- For Gaussian processes built with :code:`sklearn` use :py:class:`pypal.pal.pal_sklearn.PALSklearn` +- For Gaussian processes built with :code:`GPy` use :py:class:`pypal.pal.pal_gpy.PALGPy` +- For coregionalized Gaussian processes (built with :code:`GPy`) use :py:class:`pypal.pal.pal_coregionalized.PALCoregionalized` +- For quantile regression using :code:`LightGBM` gradient boosted decision trees use :py:class:`pypal.pal.pal_gbdt.PALGBDT` + +If your favorite model is not listed, you can easily implement it yourself (see :ref:`new_pal_class`)! + + Running an active learning experiment --------------------------------------- The `examples` directory contains a `Jupyter notebook with an example `_ that can also be run on MyBinder. -If using a Gaussian process model built with :code:`sklearn` or :code:`GPy` we recommend using a pre-built class such as :code:`PALSklearn` or :code:`PALGpy` and following the subsequent steps: +If using a Gaussian process model built with :code:`sklearn` or :code:`GPy` we recommend using a pre-built class such as :py:class:`pypal.pal.pal_sklearn.PALSklearn`, :py:class:`pypal.pal.pal_coregionalized.PALCoregionalized`, :py:class:`pypal.pal.pal_gpy.PALGPy` and following the subsequent steps (for more details on which class to use see :ref:`Which class do i use?`): 1. For each objective create a model (if using a coregionalized Gaussian process model, only one model needs to be created) -2. Sample a few initial points from the design space. We provide the :code:`get_maxmin_samples` or :code:`get_kmeans_samples` utilities that can help with the sampling. Our code assumes that :code:`X` is a :code:`np.array`. +2. Sample a few initial points from the design space. We provide the :py:meth:`pypal.pal.utils.get_maxmin_samples` or :py:meth:`pypal.pal.utils.get_kmeans_samples` utilities that can help with the sampling. Our code assumes that :code:`X` is a :code:`np.array`. .. code-block:: python @@ -81,7 +92,7 @@ for a case in which we performed measurements for samples with index 1 and 2 of Hyperparameter optimization ............................. Usually, the hyperparameters of a machine learning model, in particular the kernel hyperparameters of a Gaussian process regression model, should be optimized as new training data is added. -However, since this is usually a computationally expensive process, it may not be desirable to perform this at every iteration of the active learning process. The iteration frequency of the hyperparameter optimization is internally set by the :code:`_should_optimize_hyperparameter` function, which by default uses a schedule that optimizes the hyperparameter every 10th iteration. This behavior can be changed by override this function. +However, since this is usually a computationally expensive process, it may not be desirable to perform this at every iteration of the active learning process. The iteration frequency of the hyperparameter optimization is internally set by the :code:`_should_optimize_hyperparameters` function, which by default uses a schedule that optimizes the hyperparameter every 10th iteration. This behavior can be changed by override this function. Logging ........ @@ -94,7 +105,7 @@ Basic information such as the current iteration and the classification status ar # returns: pypal at iteration 1. 10 Pareto optimal points, 1304 discarded points, 200 unclassified points. -We also provide calculation of the hypervolume enclosed by the Pareto front with the :code:`get_hypervolume` function +We also provide calculation of the hypervolume enclosed by the Pareto front with the function :py:meth:`pypal.pal.utils.get_hypervolume` .. code:: python @@ -121,7 +132,7 @@ Exploring a space where all objectives are known ................................................. In some cases, we may already posess all measurements, but would like to run PAL with different settings to test how the algorithm performs. -In this case, we provide the :code:`exhaust_loop` wrapper. +In this case, we provide the :py:meth:`pypal.pal.utils.exhaust_loop` wrapper. .. code-block:: python @@ -182,7 +193,7 @@ By default, the code will run a simple cross-validation only on the first iterat This behavior can changed with the cross-validation test being performed more frequently by overriding the :code:`should_run_crossvalidation` function. -Another way to detect overfitting is to use :code:`make_jointplot` function from the plotting subpackage. This function will plot all objectives against each other (with errorbars and different classes indicated with colors) and histograms of the objectives on the diagonal. If the majority of predicted points tend to overlap one another and get discarded by PyPAL, this may suggest that the surrogate model is overfitted. +Another way to detect overfitting is to use :py:func:`pypal.plotting.make_jointplot`function from the plotting subpackage. This function will plot all objectives against each other (with errorbars and different classes indicated with colors) and histograms of the objectives on the diagonal. If the majority of predicted points tend to overlap one another and get discarded by PyPAL, this may suggest that the surrogate model is overfitted. .. code-block:: python diff --git a/docs/_build/html/_static/documentation_options.js b/docs/_build/html/_static/documentation_options.js index a551866..f9689e1 100644 --- a/docs/_build/html/_static/documentation_options.js +++ b/docs/_build/html/_static/documentation_options.js @@ -1,6 +1,6 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '0+untagged.210.gc6bd515.dirty', + VERSION: '0+untagged.212.g4af8189.dirty', LANGUAGE: 'None', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/_build/html/api.html b/docs/_build/html/api.html index 5f39f47..fa6e0bb 100644 --- a/docs/_build/html/api.html +++ b/docs/_build/html/api.html @@ -5,7 +5,7 @@ - The PyPAL API reference — pypal 0+untagged.210.gc6bd515.dirty documentation + The PyPAL API reference — pypal 0+untagged.212.g4af8189.dirty documentation diff --git a/docs/_build/html/background.html b/docs/_build/html/background.html index a8aa181..a69faad 100644 --- a/docs/_build/html/background.html +++ b/docs/_build/html/background.html @@ -5,7 +5,7 @@ - Background — pypal 0+untagged.210.gc6bd515.dirty documentation + Background — pypal 0+untagged.212.g4af8189.dirty documentation diff --git a/docs/_build/html/developer_notes.html b/docs/_build/html/developer_notes.html index bbb0580..4db0b9e 100644 --- a/docs/_build/html/developer_notes.html +++ b/docs/_build/html/developer_notes.html @@ -5,7 +5,7 @@ - Developer notes — pypal 0+untagged.210.gc6bd515.dirty documentation + Developer notes — pypal 0+untagged.212.g4af8189.dirty documentation @@ -225,7 +225,7 @@

Documentation -

Implementing a new PAL class

+

Implementing a new PAL class

If you want to use PyPAL with a model that we do not support yet, i.e., not GPy or sklearn Gaussian process regression, it is easy to write your own class. For this, you need to inherit from PALBase and implement your _train and _predict functions (and maybe also the _set_hyperparameters and _should_optimize_hyperparameters functions) using the design_space and y attributes of the class.

For instance, if we develop some multioutput model that has a train() and a predict() method we could simply use the following design pattern

from pypal import PALBase
diff --git a/docs/_build/html/genindex.html b/docs/_build/html/genindex.html
index 87c16b0..6d74ca4 100644
--- a/docs/_build/html/genindex.html
+++ b/docs/_build/html/genindex.html
@@ -5,7 +5,7 @@
   
     
     
-    Index — pypal 0+untagged.210.gc6bd515.dirty documentation
+    Index — pypal 0+untagged.212.g4af8189.dirty documentation
 
   
 
diff --git a/docs/_build/html/getting_started.html b/docs/_build/html/getting_started.html
index 7a0763a..d6e93b9 100644
--- a/docs/_build/html/getting_started.html
+++ b/docs/_build/html/getting_started.html
@@ -5,7 +5,7 @@
   
     
     
-    Getting Started — pypal 0+untagged.210.gc6bd515.dirty documentation
+    Getting Started — pypal 0+untagged.212.g4af8189.dirty documentation
 
   
 
@@ -155,6 +155,10 @@
             Installation
         
 
+        
  • + Which class do i use? +
  • +
  • Running an active learning experiment
  • Running an active learning experiment

    The examples directory contains a Jupyter notebook with an example that can also be run on MyBinder.

    -

    If using a Gaussian process model built with sklearn or GPy we recommend using a pre-built class such as PALSklearn or PALGpy and following the subsequent steps:

    +

    If using a Gaussian process model built with sklearn or GPy we recommend using a pre-built class such as pypal.pal.pal_sklearn.PALSklearn, pypal.pal.pal_coregionalized.PALCoregionalized, pypal.pal.pal_gpy.PALGPy and following the subsequent steps (for more details on which class to use see Which class do i use?):

    1. For each objective create a model (if using a coregionalized Gaussian process model, only one model needs to be created)

    2. -
    3. Sample a few initial points from the design space. We provide the get_maxmin_samples or get_kmeans_samples utilities that can help with the sampling. Our code assumes that X is a np.array.

      +
    4. Sample a few initial points from the design space. We provide the pypal.pal.utils.get_maxmin_samples() or pypal.pal.utils.get_kmeans_samples() utilities that can help with the sampling. Our code assumes that X is a np.array.

      from pypal import get_kmeans_samples, get_maxmin_samples
       
      @@ -271,7 +285,7 @@ 

      Running an active learning experiment

      Hyperparameter optimization

      Usually, the hyperparameters of a machine learning model, in particular the kernel hyperparameters of a Gaussian process regression model, should be optimized as new training data is added. -However, since this is usually a computationally expensive process, it may not be desirable to perform this at every iteration of the active learning process. The iteration frequency of the hyperparameter optimization is internally set by the _should_optimize_hyperparameter function, which by default uses a schedule that optimizes the hyperparameter every 10th iteration. This behavior can be changed by override this function.

      +However, since this is usually a computationally expensive process, it may not be desirable to perform this at every iteration of the active learning process. The iteration frequency of the hyperparameter optimization is internally set by the _should_optimize_hyperparameters function, which by default uses a schedule that optimizes the hyperparameter every 10th iteration. This behavior can be changed by override this function.

      -

      We also provide calculation of the hypervolume enclosed by the Pareto front with the get_hypervolume function

      +

      We also provide calculation of the hypervolume enclosed by the Pareto front with the function pypal.pal.utils.get_hypervolume()

      hv = get_hypervolume(palinstance.means[palinstance.pareto_optimal])
       
      @@ -310,7 +324,7 @@

      Properties of the PAL object

      Exploring a space where all objectives are known

      In some cases, we may already posess all measurements, but would like to run PAL with different settings to test how the algorithm performs. -In this case, we provide the exhaust_loop wrapper.

      +In this case, we provide the pypal.pal.utils.exhaust_loop() wrapper.

      from pypal import PALSklearn, exhaust_loop
       models = [gpr0, gpr1, gpr2]
       palinstance = PALSklearn(X, models, 3)
      @@ -357,7 +371,7 @@ 

      Caveats and tricks with Gaussian processesshould_run_crossvalidation function.

      -

      Another way to detect overfitting is to use make_jointplot function from the plotting subpackage. This function will plot all objectives against each other (with errorbars and different classes indicated with colors) and histograms of the objectives on the diagonal. If the majority of predicted points tend to overlap one another and get discarded by PyPAL, this may suggest that the surrogate model is overfitted.

      +

      Another way to detect overfitting is to use :py:func:`pypal.plotting.make_jointplot`function from the plotting subpackage. This function will plot all objectives against each other (with errorbars and different classes indicated with colors) and histograms of the objectives on the diagonal. If the majority of predicted points tend to overlap one another and get discarded by PyPAL, this may suggest that the surrogate model is overfitted.

      from pypal.plotting import make_jointplot
       
       # palinstance is a instance of a PAL class after
      diff --git a/docs/_build/html/index.html b/docs/_build/html/index.html
      index 4124749..d804087 100644
      --- a/docs/_build/html/index.html
      +++ b/docs/_build/html/index.html
      @@ -5,7 +5,7 @@
         
           
           
      -    PyPAL: Pareto active learning for Python — pypal 0+untagged.210.gc6bd515.dirty documentation
      +    PyPAL: Pareto active learning for Python — pypal 0+untagged.212.g4af8189.dirty documentation
       
         
       
      @@ -190,6 +190,7 @@ 

      ContentsGetting Started
      • Installation
      • +
      • Which class do i use?
      • Running an active learning experiment
        • Hyperparameter optimization
        • Logging
        • diff --git a/docs/_build/html/objects.inv b/docs/_build/html/objects.inv index 40e17330680d8ccede061e6e1ca30a0ff539b6a9..2ae6ad21458ba01c257d77bfdb38912f1753bdf5 100644 GIT binary patch delta 2036 zcmVB%JOEM_>kcma%|Jx<7*j+%?zM}c65DClGDy<}{_LuOf&Kddz(TcA! zUF1KzC-?&4s2T}YBxRZuR5MwUS1-v9{%5(tZ0j=CT$JcV2Y-5!@ay>mN%gmyCg;YFAb{*et;b5^pE ztk!QnTzRRTm4BzLG?En|yyTh?YnJIuB(ublRq|}{1EV|1woXsAmV8rdHU|Oba~d@T%jM9TIRlaj@nmTAt;d#!}4n92ll zC@&#NEv8h0pF6|D*C7g0+yX87A`R_w7N35#i9 zquU8{UV^J(s#^1Wj(c|eDiH-QDYW7QjK;eerp8k8m1`Y(PC7*(FQ0+&Y7T=vX0%qC zxGd*9Ds^-9evRD&L)`xoS8u7JnuY&sTHRv{-Dr*;WNV#fDW3w?KmB`Q=f(-<;ep3Vuj!UhbVk`&yby0GfVbBS1a?UxytslY;I*Wdf+-kmoYrL`~rdh z1qLUVIo&|?;}=NRT1XCC%Gm%oc5vLlv44SM3&#M*4vsAx8#p$J3LN|6v|~5xPX`=> z&N6zrn&|9zKly8>pHMp;v`m_J@nQ9)fu4G;@he%kJsmf23~=nJ{w)!>_U4dl|NZ#K z%m4fF@6f%b?{$Re)e1p|C{2byklrPOgBpxHZ|tiSkSsWl0a|{M2aETvkye$4Se82 z_NtWvMaLPk?T-tk9trv*vww)vkbIfBwP z;iP~QxMC{6l!w`naWKCXJPdcR>whD5Zzgu5SQG`kq@ZSKWw4GHk)0=?}kB7Zna=8y~^ zekoEFjTw5#VDloH=SXb6GMkMcn&8o{6c1%Uu(n7{u|;Bw#DK&d5(5%DD?*n2SdHN z`eTjq+yoo+zx!GM^x^T-befEZx449|h@BHr%@yuMc{YWMrP$H0q8fp*!(4WzQL0_mK zb8hq6R8spb%~RMWIxAkEE{*`iiNGMiBOq>p_S+VS-p}_T8V*GE2Y&(&n5nB-g<7h_UK*I%M&B3JD+D&8v))lsZ3F_onZ0)u+cD;N(VH>;d%cwVXPt2){ z&f(PBSh+;i@tCfh>R13<0CxJxDG&76>w`CsA8*cM0W0K2V}Cn(-6jsff9Ij}z`FW2LI3b7V-KL?oC4Nk1bw|58p9Ey$ zk%=^3>Y7`pHZ0>NCH3pW=@MnaxYc8)AC;uLCrwx{nkybK0FE7*A4B#R3C+N}i8gAs z=F=<}*d54hx@`f)EQFDCXW>&cyHVf~?nWOwQMYIJekB?n=+RyCaWwka1;9m5VQ%!f z%_k;YiaLkcZ(8uPBGLVf^j9c$~+9Kw>p>T SOaeMA>04--VjHzlyt! zxdKYo01B3rZK&6OXth&vy{5gfVEH~SFMC~!)k=9xos$h3PnLGTg7Oxc7`v9!yJXUbwX!xHt7L8{G@VDHUgA zwB9F}x<=WvK#YAS{Yin{-$3I-iUu4yJ~(7jYm>tH2h@~Ey=Xb~kc#dpPgZWuPFyNY zFUH;n;&fWLCB=f>PSk?Z^f-LE&*WoUqLLdHJGf2-o}x!WvSt9ibL8FRMc zSsB58AGoDc2Vp1W?g1734deF`&$`N;q4_m*lNEav0Ad8CMii=zjX-nvvgdnX&prkA zRe$kzrhh0KwoK5Ha*X^;c0qT-p>8ejQ^7e_@2pnH?*DkfQlW6zJT$s4?oMsRw+@Q! zNV!k(ar?EfumcNpWo{~7?^~+})tqCe+CV=Z%bNyXKx(@2n9@kM&KY&p6wuF0WieH5 zT2SqJ)R~28DjtgM zG_eJzseFNA+J# - Python Module Index — pypal 0+untagged.210.gc6bd515.dirty documentation + Python Module Index — pypal 0+untagged.212.g4af8189.dirty documentation diff --git a/docs/_build/html/search.html b/docs/_build/html/search.html index db300b7..888333b 100644 --- a/docs/_build/html/search.html +++ b/docs/_build/html/search.html @@ -5,7 +5,7 @@ - Search — pypal 0+untagged.210.gc6bd515.dirty documentation + Search — pypal 0+untagged.212.g4af8189.dirty documentation diff --git a/docs/_build/html/searchindex.js b/docs/_build/html/searchindex.js index ea7014c..abb2cdf 100644 --- a/docs/_build/html/searchindex.js +++ b/docs/_build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["api","background","developer_notes","getting_started","index","tutorials"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,"sphinx.ext.viewcode":1,sphinx:56},filenames:["api.rst","background.rst","developer_notes.rst","getting_started.rst","index.rst","tutorials.rst"],objects:{"pypal.models":{gpr:[0,0,0,"-"]},"pypal.models.gpr":{_get_matern_32_kernel:[0,1,1,""],_get_matern_52_kernel:[0,1,1,""],_get_ratquad_kernel:[0,1,1,""],build_coregionalized_model:[0,1,1,""],build_model:[0,1,1,""],predict:[0,1,1,""],predict_coregionalized:[0,1,1,""],set_xy_coregionalized:[0,1,1,""]},"pypal.pal":{core:[0,0,0,"-"],pal_base:[0,0,0,"-"],pal_coregionalized:[0,0,0,"-"],pal_gbdt:[0,0,0,"-"],pal_gpy:[0,0,0,"-"],pal_sklearn:[0,0,0,"-"],schedules:[0,0,0,"-"],utils:[0,0,0,"-"],validate_inputs:[0,0,0,"-"]},"pypal.pal.core":{_get_max_wt:[0,1,1,""],_get_uncertainty_region:[0,1,1,""],_get_uncertainty_regions:[0,1,1,""],_pareto_classify:[0,1,1,""],_uncertainty:[0,1,1,""],_union:[0,1,1,""],_union_one_dim:[0,1,1,""]},"pypal.pal.pal_base":{PALBase:[0,2,1,""]},"pypal.pal.pal_base.PALBase":{__init__:[0,3,1,""],__repr__:[0,3,1,""],__weakref__:[0,4,1,""],_replace_by_measurements:[0,3,1,""],_update_beta:[0,3,1,""],_update_coef_var_mask:[0,3,1,""],_update_hyperrectangles:[0,3,1,""],discarded_indices:[0,3,1,""],discarded_points:[0,3,1,""],hyperrectangle_sizes:[0,3,1,""],number_discarded_points:[0,3,1,""],number_pareto_optimal_points:[0,3,1,""],number_sampled_points:[0,3,1,""],number_unclassified_points:[0,3,1,""],pareto_optimal_indices:[0,3,1,""],pareto_optimal_points:[0,3,1,""],run_one_step:[0,3,1,""],sample:[0,3,1,""],sampled_indices:[0,3,1,""],sampled_mask:[0,3,1,""],sampled_points:[0,3,1,""],should_cross_validate:[0,3,1,""],unclassified_indices:[0,3,1,""],unclassified_points:[0,3,1,""],update_train_set:[0,3,1,""]},"pypal.pal.pal_coregionalized":{PALCoregionalized:[0,2,1,""]},"pypal.pal.pal_coregionalized.PALCoregionalized":{__init__:[0,3,1,""]},"pypal.pal.pal_gbdt":{PALGBDT:[0,2,1,""]},"pypal.pal.pal_gbdt.PALGBDT":{__init__:[0,3,1,""]},"pypal.pal.pal_gpy":{PALGPy:[0,2,1,""]},"pypal.pal.pal_gpy.PALGPy":{__init__:[0,3,1,""]},"pypal.pal.pal_sklearn":{PALSklearn:[0,2,1,""]},"pypal.pal.pal_sklearn.PALSklearn":{__init__:[0,3,1,""]},"pypal.pal.schedules":{exp_decay:[0,1,1,""],linear:[0,1,1,""]},"pypal.pal.utils":{dominance_check:[0,1,1,""],dominance_check_jitted:[0,1,1,""],dominance_check_jitted_2:[0,1,1,""],dominance_check_jitted_3:[0,1,1,""],exhaust_loop:[0,1,1,""],get_hypervolume:[0,1,1,""],get_kmeans_samples:[0,1,1,""],get_maxmin_samples:[0,1,1,""],is_pareto_efficient:[0,1,1,""]},"pypal.pal.validate_inputs":{_validate_sklearn_gpr_model:[0,1,1,""],base_validate_models:[0,1,1,""],validate_beta_scale:[0,1,1,""],validate_coef_var:[0,1,1,""],validate_coregionalized_gpy:[0,1,1,""],validate_delta:[0,1,1,""],validate_epsilon:[0,1,1,""],validate_gbdt_models:[0,1,1,""],validate_goals:[0,1,1,""],validate_gpy_model:[0,1,1,""],validate_interquartile_scaler:[0,1,1,""],validate_ndim:[0,1,1,""],validate_njobs:[0,1,1,""],validate_number_models:[0,1,1,""],validate_sklearn_gpr_models:[0,1,1,""]},"pypal.plotting":{make_jointplot:[0,1,1,""],plot_bar_iterations:[0,1,1,""],plot_histogram:[0,1,1,""],plot_pareto_front_2d:[0,1,1,""]},pypal:{plotting:[0,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"],"2":["py","class","Python class"],"3":["py","method","Python method"],"4":["py","attribute","Python attribute"]},objtypes:{"0":"py:module","1":"py:function","2":"py:class","3":"py:method","4":"py:attribute"},terms:{"00401706":0,"019":0,"020":0,"08483":0,"1038":0,"104":4,"10490666":0,"1080":0,"10th":3,"1111111111111111":0,"1186":0,"13033217":0,"1304":3,"135":0,"137":0,"1471":0,"148":0,"17755":0,"1969":0,"200":3,"2014":0,"2016":4,"2019":0,"2020":[0,4],"2288":0,"26434":0,"32791911":0,"4068":0,"539":0,"\u03b5":1,"boolean":0,"case":[0,1,3,5],"class":[3,4],"default":[0,3],"float":0,"function":[1,2,3,4],"import":[0,2,3],"int":0,"mat\u00e9rn":[0,1],"new":[0,1,3,4],"p\u00fcschel":4,"return":[0,2,3],"super":2,"true":0,"try":[1,3],But:[0,3],For:[1,2,3,4],One:[0,2,3,4],Res:0,The:[2,3,4],Use:0,Used:0,Using:1,__init__:[0,2],__repr__:0,__weakref__:0,_build:2,_get_matern_32_kernel:0,_get_matern_52_kernel:0,_get_max_wt:0,_get_ratquad_kernel:0,_get_uncertainty_region:0,_pareto_classifi:0,_predict:[0,2],_replace_by_measur:0,_set_hyperparamet:2,_should_optimize_hyperparamet:[0,2,3],_train:[0,2],_train_model_pickl:2,_uncertainti:0,_union:0,_union_one_dim:0,_update_beta:0,_update_coef_var_mask:0,_update_hyperrectangl:0,_validate_sklearn_gpr_model:0,abl:1,about:0,abov:3,absolut:[0,3],accord:0,achiev:3,acquisit:1,actual:0,add:2,added:3,after:3,again:2,against:3,aid:0,algorithm:[0,3,4],all:[0,1,4,5],allow:0,alpha:3,alreadi:[0,3],also:[0,1,2,3],alwai:[0,3],ani:[0,1,4],anoth:[0,3],api:[2,4],append:2,appli:0,applic:1,approach:[1,2,4],appropri:0,ard:[0,3],area:0,arg:[0,2],arguement:3,argument:3,arrai:[0,3],asgari:0,assum:[0,3],attribut:[2,3],automat:[0,1,2,3],avoid:3,axi:0,background:4,barplot:0,base:4,base_validate_model:0,basic:3,batch:4,batch_siz:[0,3],bayesian:1,been:[0,3],befor:[0,3],beforehand:0,behavior:[1,3],behind:4,being:3,below:[0,1,3],berend:0,beta:[0,1,3],beta_:[1,3],beta_scal:[0,3],beta_sqrt:0,better:0,between:[0,1],bias:1,binari:0,binh:1,black:2,bmc:0,bool:0,bound:[0,3],boundari:0,boyd:0,branch:2,braycurti:0,bug:2,build:[0,2],build_coregionalized_model:0,build_model:0,built:[3,4],calcul:[0,3],call:[0,3],can:[0,1,2,3,4,5],canberra:0,captur:0,carlo:1,categori:0,caveat:[0,4],cdist:0,cell:3,center:0,centroid:[0,3],chang:[0,2,3],changelog:2,chebyshev:0,check:[0,2,3,5],chemic:0,chemrxiv:0,chidambaram:0,chore:2,chosen:0,christoph:0,cite:4,cityblock:0,classif:[0,1,3],classifi:[0,1,3],closest:[0,3],cluster:[0,3],code:[0,1,3,4],coef_var:0,coef_var_threshold:[0,3],coeffici:[0,3],color:[0,3],colour:0,column:0,com:[0,3],commit:4,commun:0,comparison:0,complex:0,comput:0,computation:3,concept:0,concurr:2,conda:3,confid:[0,1,4],conjunct:3,consid:[0,3],consist:2,construct:[0,1],contain:[0,3],continu:3,contrast:0,contribut:4,contruct:0,conveni:2,convent:2,converg:[0,1,3],convert:0,cookbook:0,core:4,coregion:[1,3,4],correl:[0,1],cosin:0,cost:0,could:[0,2,3],count:0,coupl:1,cover:0,coverag:[0,2,3],creat:[0,3],cross:[0,3],current:[0,2,3],customiz:4,data:[0,1,3,4],deal:[0,1],debug:3,decreas:0,dedic:3,def:2,defin:0,delta:[0,1,3],depend:[0,1],deriv:[0,3],describ:0,descript:0,design:[0,1,2,3,4],design_spac:[2,3],desir:3,detect:3,determin:[0,3],develop:4,deviat:[0,1,3,4],diagon:3,dice:0,did:3,differ:[0,1,2,3,5],dimens:[0,1,3],dimension:1,direct:0,directli:1,directori:[2,3],dirti:0,discard:[0,1,3],discarded_indic:[0,3],discarded_point:[0,3],discoveri:1,distanc:0,divers:0,divid:0,doc:[2,3],document:4,doe:[0,3],doi:0,domin:[0,1],dominance_check:0,dominance_check_jit:0,dominance_check_jitted_2:0,dominance_check_jitted_3:0,down:1,drastic:1,driven:0,drop:2,dropout:1,due:3,duvenaud:0,each:[0,3],easi:2,easili:1,ecosystem:0,edu:0,effeci:1,effect:[0,1],effic:3,effici:[0,1,3,4],either:0,element:0,empir:3,enabl:1,enclos:3,encod:0,ensur:[0,1,2],entir:3,environ:3,epsilon:[0,1,3],epsilon_i:3,equal:0,error:3,errorbar:3,especi:3,estim:[0,1],etc:2,euclidean:0,evalu:0,even:2,everi:[0,1,3],exacerb:3,exampl:[0,1,2,3,5],exclud:[0,3],exclude_idx:0,executor:2,exhaust_loop:[0,3],exp_decai:0,expect:1,expens:3,experi:[0,1,4],explor:[0,4,5],extract:0,factor:0,fals:[0,3],farthest:3,fashion:0,fast:0,faster:3,favor:0,feat:2,featur:[0,1,3,4],feed:3,feel:2,few:3,fig:[0,3],figsiz:0,figur:[0,1,3],file:2,find:[0,1,2,3,4],first:[0,3],fit:[0,2],fix:[1,2],flexibl:0,flip:0,fold:3,follow:[0,1,2,3],format:2,framework:0,frequenc:[0,3],frequent:3,from:[0,1,2,3],front:[0,1,3,4],frontier:1,full:[1,3],functool:2,futur:2,gaussian:[0,1,2,4],gaussian_process:3,gaussianprocessregressor:[0,3],gbdt:0,gener:[0,2],get:[0,4],get_hypervolum:[0,3],get_kmeans_sampl:[0,3],get_maxmin_sampl:[0,3],giriprasad:4,git:[2,3],github:[0,2,3],give:[0,1],goal:[0,1,3],good:[0,2],gpcoregionalizedregress:0,gpr0:3,gpr1:3,gpr2:3,gpr:[1,3,4],gpregress:0,gpy:[2,3,4],granular:0,greater:[0,3],greedi:0,grid:0,gridsearchcv:0,grunt:2,guarante:[0,3],guidelin:4,ham:0,happen:3,haranczyk:0,has:[0,1,2,3],hat:1,have:[0,2,3],help:[0,2,3],helper:4,henc:1,here:[0,3],high:3,highli:4,hint:[2,3],histogram:[0,3],hitch:2,hold:0,hook:2,host:2,how:[0,3,4],howev:3,html:2,http:[0,3],hungri:0,hyperparamet:4,hyperrectangl:[0,1,3],hyperrectangle_s:[0,3],hypervolum:[0,3],ideal:0,identifi:4,ignore_m:0,implement:[0,1,3,4],improv:1,includ:2,inconcist:0,incorrectli:3,increas:[0,1,3],independet:0,index:[0,3,4],indic:[0,3],indici:3,influenc:4,inform:[0,3],inherit:[0,2],init:0,initi:[0,3],input:4,inspect:3,instal:[2,4,5],instanc:[0,2,3],instead:[0,1],integ:[0,3],inter:[],intern:3,interquartil:0,interquartile_scal:0,intersect:0,interv:0,introduc:1,intuit:[0,4],invari:1,ireland:0,is_pareto_effici:0,isort:2,issu:0,iter:[0,1,3],ith:3,its:[0,3],itself:0,jablonka:[0,4],jaccard:0,janet:0,jensenshannon:0,jointplot:0,journal:4,jupyt:3,keep:[2,3],kennard:0,kernel:[0,1,3],kevin:0,keyword:3,kind:1,kjappelbaum:[0,3],kmean:0,known:[0,4],korn:1,kraus:4,kulik:0,kulsinski:0,kwarg:[0,2],label:[0,1,3],larger:0,largest:1,last:0,latest:3,learn:[0,1],least:0,leav:1,lee:0,left:[0,3],length:[0,3],lengthscal:0,level:3,lgbmregressor:0,lightgbm:4,like:3,limit:0,linear:0,lint:2,list:[0,2,3],liu:0,local:2,log:[0,4],logarithm:0,logartihm:0,longer:0,look:[0,3],loop:[0,3],loss:0,low:[0,3],lower:[0,3],luc:0,machin:[0,1,3,4],mahalanobi:0,mai:[2,3],maik:0,major:3,make:[0,2,3],make_jointplot:[0,3],mani:[0,1],manner:1,map:2,mask:[0,3],master:2,match:0,materi:1,matern32:0,matern52:0,matern:0,mathrm:[1,3],matplotlib:0,matrix:[0,3],max:[0,3],max_work:2,maxim:[0,3],maxima:0,maximum:0,maxmin:0,mayb:2,mean:[0,1,3,4],meant:3,measur:[0,1,3,4],measuremen:0,measurement_uncertainti:0,med:0,median:0,mehrdad:0,memori:0,messag:4,metal:0,method:[0,2],methodol:0,metric:0,middl:0,might:[0,2,3],min:[0,3],mind:3,minim:[0,3],minkowski:0,minu:0,miss:[0,1,3,4],model:[1,2,3,4],modifi:[1,2],modul:4,mohamad:0,molecular:4,mont:1,moosavi:0,more:[0,3],most:0,much:3,multi:4,multiobject:4,multioutput:2,multipl:[0,3],multipli:0,mus:0,must:0,mybind:[3,5],mypal:2,mypi:2,n_cost:0,n_efficient_point:0,n_job:[0,2],n_point:0,n_sampl:0,nan:[0,1,3],nandi:0,nat:0,natur:0,ndarrai:[0,3],ndim:[0,2],necessarili:0,need:[0,1,2,3],neg:1,network:1,neural:1,new_low:0,new_up:0,next:[0,1,3],next_idx:3,nfeat:0,njob:0,nnumber:0,nois:[0,3],non:0,non_pareto_point:0,none:0,not_pareto_optimal_0:0,note:[0,3,4],notebook:[3,5],novo:4,now:3,numba:0,number:[0,1,2,3,4],number_discarded_point:[0,3],number_pareto_optimal_point:[0,3],number_sampled_point:[0,3],number_unclassified_point:[0,3],numpi:3,object:[0,1,2,4],observ:3,obtain:3,off:3,offer:0,often:3,onc:0,one:[0,1,2,3],ongari:0,onli:[0,1,2,3],oper:2,optim:[1,4],optimist:0,option:[0,3],order:[0,1],org:0,organ:0,orient:1,origin:[2,3],other:3,otherwis:0,our:[0,1,3],out:5,outlier:0,output:[0,1,3,4],outsid:2,overconfid:3,overfit:3,overlap:[1,3],overrid:[0,3],own:[0,1,2],packag:[1,4],page:[2,4],pal:[1,4],pal_bas:0,pal_coregion:0,pal_gbdt:0,pal_gpi:0,pal_sklearn:0,palbas:[0,2],palcoregion:0,palgbdt:0,palgpi:[0,3],palinst:[0,3],palmymodel:2,palsklearn:[0,3],paper:[0,3],parallel:[0,2],paramet:[0,3],parametr:0,pareto:[0,1,3],pareto_front:0,pareto_optim:[0,3],pareto_optimal_0:0,pareto_optimal_indic:[0,3],pareto_optimal_point:[0,3],pareto_optimal_t:0,part:[0,3],partial:2,particular:3,pass:0,patini:0,pattern:2,per:[0,3],perform:[0,1,2,3],perspect:0,pessimist:0,picklabl:2,pip:3,place:0,pleas:[2,4],plot:[3,4],plot_bar_iter:0,plot_histogram:0,plot_pareto_front_2d:0,point1:0,point2:0,point:[0,1,3],polym:4,pop:2,posess:3,posit:1,practic:3,pre:[2,3],predict:[0,1,2,3],predict_coregion:0,prefactor:0,prefix:2,preprint:0,present:3,previou:0,print:3,problem:[1,3,4],process:[0,1,2,4],processpoolexecutor:2,product:2,progress:3,prone:3,properti:[0,4],propos:0,prospector:2,provid:[0,1,2,3],provided:0,push:2,pypal:[2,3,5],pypi:3,python:0,quadrat:0,quantifi:0,quantil:4,quantile_regress:0,question:0,quick:0,quit:0,rais:0,ran:1,random:0,randomizedsearchcv:0,rang:[0,2,3],ration:0,rationalquadrat:0,ratquad:0,rbf:0,realli:0,reason:[0,3],rebas:2,recommend:[0,2,3,5],rectangl:[0,1],rectangle_low:0,rectangle_up:0,reduc:[1,3],refer:4,reference_vector:0,region:[0,1],regress:[1,2,3,4],regular:3,relat:1,relev:[0,3],remaind:0,replac:[0,1],report:3,repr:0,requir:[0,2],research:4,reshap:2,restart:0,result:0,retrain:1,return_mask:0,robust:3,rogerstanimoto:0,run:[0,2,4,5],run_one_step:[0,3],russellrao:0,s41467:0,same:[0,3],sampl:[0,1,2,4],sampled_indic:[0,3],sampled_mask:0,sampled_point:[0,3],scalabl:1,scale:[0,1,3],schedul:[3,4],scipi:0,search:[0,1,4],second:0,section:0,see:0,seed:0,sei:0,select:[0,3],selected_indic:0,self:[0,2],sens:[0,3],seper:1,sequenc:0,serial:0,set:[0,1,3],set_xy_coregion:0,seuclidean:0,sever:3,shall:0,shape:0,should:[0,3],should_cross_valid:0,should_run_crossvalid:3,shouldn:0,shown:[1,3],shrink:1,sigma:1,sign:0,significantli:3,similarli:[1,3],simpl:3,simpli:[1,2],simul:4,sinc:[0,1,3],singl:0,situat:3,size:[0,1,3],skip:2,sklearn:[2,3,4],smaller:0,smit:[0,4],sokalmichen:0,sokalsneath:0,solut:0,some:[0,1,2,3],someth:3,sort:2,sourc:0,space:[0,1,4],spars:0,sparser:1,spatial:0,specifi:3,speed:[1,3],sqeuclidean:0,stack:0,stackoverflow:0,standard:[0,1,3,4],start:4,statu:3,std:[0,2,3],std_0:0,std_1:0,step:[0,1,3,4],stone:0,str:0,strictli:0,string:[0,3],structure_comp:0,stylian:0,subpackag:3,subsequ:3,subtre:2,successfulli:0,suggest:3,suit:3,summari:0,support:[1,2,3],sure:[0,3],surrog:3,synthesi:0,take:0,taken:0,talirz:0,target:[0,3],task:[0,2],technometr:0,tend:3,term:0,test:[0,1,2,3],than:[0,3],thei:2,them:1,theoret:[0,3],thi:[0,1,2,3,4],those:3,three:[0,3],threshold:0,through:1,tighter:3,time:0,toler:3,toronto:0,total:1,track:0,train:[0,1,2,3],train_single_parti:2,trick:[0,4],trim:2,tupl:0,turn:3,tutori:4,two:3,type:[0,2],typic:[0,2],ultim:1,unbias:1,uncertain:0,uncertainti:[0,1,3],unclassifi:[0,1,3],unclassified_0:0,unclassified_indic:[0,3],unclassified_point:0,unclassified_t:0,understand:0,union:0,unsur:3,until:[0,3],untim:3,updat:[0,2],update_train_set:[0,3],upper:0,ups:0,upstream:2,use:[0,1,2,3,5],used:[0,1,3],useful:[0,4],user:0,uses:[0,3,4],using:[0,1,2,3,4],usual:3,util:[1,3,4],valid:[3,4],validate_beta_scal:0,validate_coef_var:0,validate_coregionalized_gpi:0,validate_delta:0,validate_epsilon:0,validate_gbdt_model:0,validate_go:0,validate_gpy_model:0,validate_input:0,validate_interquartile_scal:0,validate_ndim:0,validate_njob:[0,2],validate_number_model:[0,2],validate_sklearn_gpr_model:0,valu:[0,1,3],valueerror:0,vari:1,variabl:[],varianc:[0,3],variat:[0,3],vector:0,veri:3,verifi:2,version:[0,1,2,3],view:3,virtual:3,wai:[1,2,3],wan:0,wang:[0,4],want:[0,2],warn:3,weak:0,weight:3,well:0,were:0,when:[0,1,3],where:[0,1,4],wherea:3,whether:3,which:[0,1,2,3],whitespac:2,width:1,wiki:0,wikipedia:0,without:[0,5],wminkowski:0,work:[1,3,4],wors:0,would:3,wrapper:[0,3],write:2,www:0,x_design:0,x_train:0,y_0:0,y_1:0,y_train:0,yet:2,yoo:4,you:[0,1,2,3,4],your:[0,2,3,4],yule:0,zero:0,zuluaga:[0,1,4]},titles:["The PyPAL API reference","Background","Developer notes","Getting Started","PyPAL: Pareto active learning for Python","Tutorials"],titleterms:{"class":[0,2],"function":[0,5],"new":2,For:0,One:5,The:[0,1],activ:[3,4,5],algorithm:1,all:3,api:0,background:1,base:0,batch:3,behind:1,built:5,caveat:3,code:2,commit:2,content:4,contribut:2,core:0,coregion:0,develop:2,document:2,experi:3,explor:3,featur:2,gaussian:3,get:3,gpr:[0,5],gpy:[0,5],guidelin:2,helper:0,how:1,hyperparamet:[0,1,3],implement:2,indic:4,influenc:1,input:0,instal:3,intuit:1,known:3,learn:[3,4,5],lightgbm:0,log:3,measur:5,messag:2,model:[0,5],multiobject:0,note:2,object:3,optim:[0,3],packag:0,pal:[0,2,3],pareto:4,plot:0,process:3,properti:3,pypal:[0,4],python:[2,4],quantil:[0,5],refer:0,regress:[0,5],run:3,sampl:3,schedul:0,sklearn:[0,5],space:3,start:3,step:5,tabl:4,trick:3,tutori:5,using:5,util:0,valid:0,where:3}}) +Search.setIndex({docnames:["api","background","developer_notes","getting_started","index","tutorials"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,"sphinx.ext.viewcode":1,sphinx:56},filenames:["api.rst","background.rst","developer_notes.rst","getting_started.rst","index.rst","tutorials.rst"],objects:{"pypal.models":{gpr:[0,0,0,"-"]},"pypal.models.gpr":{_get_matern_32_kernel:[0,1,1,""],_get_matern_52_kernel:[0,1,1,""],_get_ratquad_kernel:[0,1,1,""],build_coregionalized_model:[0,1,1,""],build_model:[0,1,1,""],predict:[0,1,1,""],predict_coregionalized:[0,1,1,""],set_xy_coregionalized:[0,1,1,""]},"pypal.pal":{core:[0,0,0,"-"],pal_base:[0,0,0,"-"],pal_coregionalized:[0,0,0,"-"],pal_gbdt:[0,0,0,"-"],pal_gpy:[0,0,0,"-"],pal_sklearn:[0,0,0,"-"],schedules:[0,0,0,"-"],utils:[0,0,0,"-"],validate_inputs:[0,0,0,"-"]},"pypal.pal.core":{_get_max_wt:[0,1,1,""],_get_uncertainty_region:[0,1,1,""],_get_uncertainty_regions:[0,1,1,""],_pareto_classify:[0,1,1,""],_uncertainty:[0,1,1,""],_union:[0,1,1,""],_union_one_dim:[0,1,1,""]},"pypal.pal.pal_base":{PALBase:[0,2,1,""]},"pypal.pal.pal_base.PALBase":{__init__:[0,3,1,""],__repr__:[0,3,1,""],__weakref__:[0,4,1,""],_replace_by_measurements:[0,3,1,""],_update_beta:[0,3,1,""],_update_coef_var_mask:[0,3,1,""],_update_hyperrectangles:[0,3,1,""],discarded_indices:[0,3,1,""],discarded_points:[0,3,1,""],hyperrectangle_sizes:[0,3,1,""],number_discarded_points:[0,3,1,""],number_pareto_optimal_points:[0,3,1,""],number_sampled_points:[0,3,1,""],number_unclassified_points:[0,3,1,""],pareto_optimal_indices:[0,3,1,""],pareto_optimal_points:[0,3,1,""],run_one_step:[0,3,1,""],sample:[0,3,1,""],sampled_indices:[0,3,1,""],sampled_mask:[0,3,1,""],sampled_points:[0,3,1,""],should_cross_validate:[0,3,1,""],unclassified_indices:[0,3,1,""],unclassified_points:[0,3,1,""],update_train_set:[0,3,1,""]},"pypal.pal.pal_coregionalized":{PALCoregionalized:[0,2,1,""]},"pypal.pal.pal_coregionalized.PALCoregionalized":{__init__:[0,3,1,""]},"pypal.pal.pal_gbdt":{PALGBDT:[0,2,1,""]},"pypal.pal.pal_gbdt.PALGBDT":{__init__:[0,3,1,""]},"pypal.pal.pal_gpy":{PALGPy:[0,2,1,""]},"pypal.pal.pal_gpy.PALGPy":{__init__:[0,3,1,""]},"pypal.pal.pal_sklearn":{PALSklearn:[0,2,1,""]},"pypal.pal.pal_sklearn.PALSklearn":{__init__:[0,3,1,""]},"pypal.pal.schedules":{exp_decay:[0,1,1,""],linear:[0,1,1,""]},"pypal.pal.utils":{dominance_check:[0,1,1,""],dominance_check_jitted:[0,1,1,""],dominance_check_jitted_2:[0,1,1,""],dominance_check_jitted_3:[0,1,1,""],exhaust_loop:[0,1,1,""],get_hypervolume:[0,1,1,""],get_kmeans_samples:[0,1,1,""],get_maxmin_samples:[0,1,1,""],is_pareto_efficient:[0,1,1,""]},"pypal.pal.validate_inputs":{_validate_sklearn_gpr_model:[0,1,1,""],base_validate_models:[0,1,1,""],validate_beta_scale:[0,1,1,""],validate_coef_var:[0,1,1,""],validate_coregionalized_gpy:[0,1,1,""],validate_delta:[0,1,1,""],validate_epsilon:[0,1,1,""],validate_gbdt_models:[0,1,1,""],validate_goals:[0,1,1,""],validate_gpy_model:[0,1,1,""],validate_interquartile_scaler:[0,1,1,""],validate_ndim:[0,1,1,""],validate_njobs:[0,1,1,""],validate_number_models:[0,1,1,""],validate_sklearn_gpr_models:[0,1,1,""]},"pypal.plotting":{make_jointplot:[0,1,1,""],plot_bar_iterations:[0,1,1,""],plot_histogram:[0,1,1,""],plot_pareto_front_2d:[0,1,1,""]},pypal:{plotting:[0,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"],"2":["py","class","Python class"],"3":["py","method","Python method"],"4":["py","attribute","Python attribute"]},objtypes:{"0":"py:module","1":"py:function","2":"py:class","3":"py:method","4":"py:attribute"},terms:{"00401706":0,"019":0,"020":0,"08483":0,"1038":0,"104":4,"10490666":0,"1080":0,"10th":3,"1111111111111111":0,"1186":0,"13033217":0,"1304":3,"135":0,"137":0,"1471":0,"148":0,"17755":0,"1969":0,"200":3,"2014":0,"2016":4,"2019":0,"2020":[0,4],"2288":0,"26434":0,"32791911":0,"4068":0,"539":0,"\u03b5":1,"boolean":0,"case":[0,1,3,5],"class":4,"default":[0,3],"float":0,"function":[1,2,3,4],"import":[0,2,3],"int":0,"mat\u00e9rn":[0,1],"new":[0,1,3,4],"p\u00fcschel":4,"return":[0,2,3],"super":2,"true":0,"try":[1,3],But:[0,3],For:[1,2,3,4],One:[0,2,3,4],Res:0,The:[2,3,4],Use:0,Used:0,Using:1,__init__:[0,2],__repr__:0,__weakref__:0,_build:2,_get_matern_32_kernel:0,_get_matern_52_kernel:0,_get_max_wt:0,_get_ratquad_kernel:0,_get_uncertainty_region:0,_pareto_classifi:0,_predict:[0,2],_replace_by_measur:0,_set_hyperparamet:2,_should_optimize_hyperparamet:[0,2,3],_train:[0,2],_train_model_pickl:2,_uncertainti:0,_union:0,_union_one_dim:0,_update_beta:0,_update_coef_var_mask:0,_update_hyperrectangl:0,_validate_sklearn_gpr_model:0,abl:1,about:0,abov:3,absolut:[0,3],accord:0,achiev:3,acquisit:1,actual:0,add:2,added:3,after:3,again:2,against:3,aid:0,algorithm:[0,3,4],all:[0,1,4,5],allow:0,alpha:3,alreadi:[0,3],also:[0,1,2,3],alwai:[0,3],ani:[0,1,4],anoth:[0,3],api:[2,4],append:2,appli:0,applic:1,approach:[1,2,4],appropri:0,ard:[0,3],area:0,arg:[0,2],arguement:3,argument:3,arrai:[0,3],asgari:0,assum:[0,3],attribut:[2,3],automat:[0,1,2,3],avoid:3,axi:0,background:4,barplot:0,base:4,base_validate_model:0,basic:3,batch:4,batch_siz:[0,3],bayesian:1,been:[0,3],befor:[0,3],beforehand:0,behavior:[1,3],behind:4,being:3,below:[0,1,3],berend:0,beta:[0,1,3],beta_:[1,3],beta_scal:[0,3],beta_sqrt:0,better:0,between:[0,1],bias:1,binari:0,binh:1,black:2,bmc:0,bool:0,boost:3,bound:[0,3],boundari:0,boyd:0,branch:2,braycurti:0,bug:2,build:[0,2],build_coregionalized_model:0,build_model:0,built:[3,4],calcul:[0,3],call:[0,3],can:[0,1,2,3,4,5],canberra:0,captur:0,carlo:1,categori:0,caveat:[0,4],cdist:0,cell:3,center:0,centroid:[0,3],chang:[0,2,3],changelog:2,chebyshev:0,check:[0,2,3,5],chemic:0,chemrxiv:0,chidambaram:0,chore:2,chosen:0,christoph:0,cite:4,cityblock:0,classif:[0,1,3],classifi:[0,1,3],closest:[0,3],cluster:[0,3],code:[0,1,3,4],coef_var:0,coef_var_threshold:[0,3],coeffici:[0,3],color:[0,3],colour:0,column:0,com:[0,3],commit:4,commun:0,comparison:0,complex:0,comput:0,computation:3,concept:0,concurr:2,conda:3,confid:[0,1,4],conjunct:3,consid:[0,3],consist:2,construct:[0,1],contain:[0,3],continu:3,contrast:0,contribut:4,contruct:0,conveni:2,convent:2,converg:[0,1,3],convert:0,cookbook:0,core:4,coregion:[1,3,4],correl:[0,1],cosin:0,cost:0,could:[0,2,3],count:0,coupl:1,cover:0,coverag:[0,2,3],creat:[0,3],cross:[0,3],current:[0,2,3],customiz:4,data:[0,1,3,4],deal:[0,1],debug:3,decis:3,decreas:0,dedic:3,def:2,defin:0,delta:[0,1,3],depend:[0,1],deriv:[0,3],describ:0,descript:0,design:[0,1,2,3,4],design_spac:[2,3],desir:3,detail:3,detect:3,determin:[0,3],develop:4,developer_not:[],deviat:[0,1,3,4],diagon:3,dice:0,did:3,differ:[0,1,2,3,5],dimens:[0,1,3],dimension:1,direct:0,directli:1,directori:[2,3],dirti:0,discard:[0,1,3],discarded_indic:[0,3],discarded_point:[0,3],discoveri:1,distanc:0,divers:0,divid:0,doc:[2,3],document:4,doe:[0,3],doi:0,domin:[0,1],dominance_check:0,dominance_check_jit:0,dominance_check_jitted_2:0,dominance_check_jitted_3:0,down:1,drastic:1,driven:0,drop:2,dropout:1,due:3,duvenaud:0,each:[0,3],easi:2,easili:[1,3],ecosystem:0,edu:0,effeci:1,effect:[0,1],effic:3,effici:[0,1,3,4],either:0,element:0,empir:3,enabl:1,enclos:3,encod:0,ensur:[0,1,2],entir:3,environ:3,epsilon:[0,1,3],epsilon_i:3,equal:0,error:3,errorbar:3,especi:3,estim:[0,1],etc:2,euclidean:0,evalu:0,even:2,everi:[0,1,3],exacerb:3,exampl:[0,1,2,3,5],exclud:[0,3],exclude_idx:0,executor:2,exhaust_loop:[0,3],exp_decai:0,expect:1,expens:3,experi:[0,1,4],explor:[0,4,5],extract:0,factor:0,fals:[0,3],farthest:3,fashion:0,fast:0,faster:3,favor:0,favorit:3,feat:2,featur:[0,1,3,4],feed:3,feel:2,few:3,fig:[0,3],figsiz:0,figur:[0,1,3],file:2,find:[0,1,2,3,4],first:[0,3],fit:[0,2],fix:[1,2],flexibl:0,flip:0,fold:3,follow:[0,1,2,3],format:2,framework:0,frequenc:[0,3],frequent:3,from:[0,1,2,3],front:[0,1,3,4],frontier:1,full:[1,3],func:3,functool:2,futur:2,gaussian:[0,1,2,4],gaussian_process:3,gaussianprocessregressor:[0,3],gbdt:0,gener:[0,2],get:[0,4],get_hypervolum:[0,3],get_kmeans_sampl:[0,3],get_maxmin_sampl:[0,3],giriprasad:4,git:[2,3],github:[0,2,3],give:[0,1],goal:[0,1,3],good:[0,2],gpcoregionalizedregress:0,gpr0:3,gpr1:3,gpr2:3,gpr:[1,3,4],gpregress:0,gpy:[2,3,4],gradient:3,granular:0,greater:[0,3],greedi:0,grid:0,gridsearchcv:0,grunt:2,guarante:[0,3],guidelin:4,ham:0,happen:3,haranczyk:0,has:[0,1,2,3],hat:1,have:[0,2,3],help:[0,2,3],helper:4,henc:1,here:[0,3],high:3,highli:4,hint:[2,3],histogram:[0,3],hitch:2,hold:0,hook:2,host:2,how:[0,3,4],howev:3,html:2,http:[0,3],hungri:0,hyperparamet:4,hyperrectangl:[0,1,3],hyperrectangle_s:[0,3],hypervolum:[0,3],ideal:0,identifi:4,ignore_m:0,implement:[0,1,3,4],improv:1,includ:2,inconcist:0,incorrectli:3,increas:[0,1,3],independet:0,index:[0,3,4],indic:[0,3],indici:3,influenc:4,inform:[0,3],inherit:[0,2],init:0,initi:[0,3],input:4,inspect:3,instal:[2,4,5],instanc:[0,2,3],instead:[0,1],integ:[0,3],intern:3,interquartil:0,interquartile_scal:0,intersect:0,interv:0,introduc:1,intuit:[0,4],invari:1,ireland:0,is_pareto_effici:0,isort:2,issu:0,iter:[0,1,3],ith:3,its:[0,3],itself:0,jablonka:[0,4],jaccard:0,janet:0,jensenshannon:0,jointplot:0,journal:4,jupyt:3,keep:[2,3],kennard:0,kernel:[0,1,3],kevin:0,keyword:3,kind:1,kjappelbaum:[0,3],kmean:0,known:[0,4],korn:1,kraus:4,kulik:0,kulsinski:0,kwarg:[0,2],label:[0,1,3],larger:0,largest:1,last:0,latest:3,learn:[0,1],least:0,leav:1,lee:0,left:[0,3],length:[0,3],lengthscal:0,level:3,lgbmregressor:0,lightgbm:[3,4],like:3,limit:0,linear:0,lint:2,list:[0,2,3],liu:0,local:2,log:[0,4],logarithm:0,logartihm:0,longer:0,look:[0,3],loop:[0,3],loss:0,low:[0,3],lower:[0,3],luc:0,machin:[0,1,3,4],mahalanobi:0,mai:[2,3],maik:0,major:3,make:[0,2,3],make_jointplot:[0,3],mani:[0,1],manner:1,map:2,mask:[0,3],master:2,match:0,materi:1,matern32:0,matern52:0,matern:0,mathrm:[1,3],matplotlib:0,matrix:[0,3],max:[0,3],max_work:2,maxim:[0,3],maxima:0,maximum:0,maxmin:0,mayb:2,mean:[0,1,3,4],meant:3,measur:[0,1,3,4],measuremen:0,measurement_uncertainti:0,med:0,median:0,mehrdad:0,memori:0,messag:4,metal:0,method:[0,2],methodol:0,metric:0,middl:0,might:[0,2,3],min:[0,3],mind:3,minim:[0,3],minkowski:0,minu:0,miss:[0,1,3,4],model:[1,2,3,4],modifi:[1,2],modul:4,mohamad:0,molecular:4,mont:1,moosavi:0,more:[0,3],most:0,much:3,multi:4,multiobject:4,multioutput:2,multipl:[0,3],multipli:0,mus:0,must:0,mybind:[3,5],mypal:2,mypi:2,n_cost:0,n_efficient_point:0,n_job:[0,2],n_point:0,n_sampl:0,nan:[0,1,3],nandi:0,nat:0,natur:0,ndarrai:[0,3],ndim:[0,2],necessarili:0,need:[0,1,2,3],neg:1,network:1,neural:1,new_low:0,new_pal_class:[],new_up:0,next:[0,1,3],next_idx:3,nfeat:0,njob:0,nnumber:0,nois:[0,3],non:0,non_pareto_point:0,none:0,not_pareto_optimal_0:0,note:[0,3,4],notebook:[3,5],novo:4,now:3,numba:0,number:[0,1,2,3,4],number_discarded_point:[0,3],number_pareto_optimal_point:[0,3],number_sampled_point:[0,3],number_unclassified_point:[0,3],numpi:3,object:[0,1,2,4],observ:3,obtain:3,off:3,offer:0,often:3,onc:0,one:[0,1,2,3],ongari:0,onli:[0,1,2,3],oper:2,optim:[1,4],optimist:0,option:[0,3],order:[0,1],org:0,organ:0,orient:1,origin:[2,3],other:3,otherwis:0,our:[0,1,3],out:5,outlier:0,output:[0,1,3,4],outsid:2,overconfid:3,overfit:3,overlap:[1,3],overrid:[0,3],own:[0,1,2],packag:[1,4],page:[2,4],pal:[1,4],pal_bas:0,pal_coregion:[0,3],pal_gbdt:[0,3],pal_gpi:[0,3],pal_sklearn:[0,3],palbas:[0,2],palcoregion:[0,3],palgbdt:[0,3],palgpi:[0,3],palinst:[0,3],palmymodel:2,palsklearn:[0,3],paper:[0,3],parallel:[0,2],paramet:[0,3],parametr:0,pareto:[0,1,3],pareto_front:0,pareto_optim:[0,3],pareto_optimal_0:0,pareto_optimal_indic:[0,3],pareto_optimal_point:[0,3],pareto_optimal_t:0,part:[0,3],partial:2,particular:3,pass:0,patini:0,pattern:2,per:[0,3],perform:[0,1,2,3],perspect:0,pessimist:0,picklabl:2,pip:3,place:0,pleas:[2,4],plot:[3,4],plot_bar_iter:0,plot_histogram:0,plot_pareto_front_2d:0,point1:0,point2:0,point:[0,1,3],polym:4,pop:2,posess:3,posit:1,practic:3,pre:[2,3],predict:[0,1,2,3],predict_coregion:0,prefactor:0,prefix:2,preprint:0,present:3,previou:0,print:3,problem:[1,3,4],process:[0,1,2,4],processpoolexecutor:2,product:2,progress:3,prone:3,properti:[0,4],propos:0,prospector:2,provid:[0,1,2,3],provided:0,push:2,pypal:[2,3,5],pypi:3,python:0,quadrat:0,quantifi:0,quantil:[3,4],quantile_regress:0,question:0,quick:0,quit:0,rais:0,ran:1,random:0,randomizedsearchcv:0,rang:[0,2,3],ration:0,rationalquadrat:0,ratquad:0,rbf:0,realli:0,reason:[0,3],rebas:2,recommend:[0,2,3,5],rectangl:[0,1],rectangle_low:0,rectangle_up:0,reduc:[1,3],refer:4,reference_vector:0,region:[0,1],regress:[1,2,3,4],regular:3,relat:1,relev:[0,3],remaind:0,replac:[0,1],report:3,repr:0,requir:[0,2],research:4,reshap:2,restart:0,result:0,retrain:1,return_mask:0,robust:3,rogerstanimoto:0,run:[0,2,4,5],run_one_step:[0,3],russellrao:0,s41467:0,same:[0,3],sampl:[0,1,2,4],sampled_indic:[0,3],sampled_mask:0,sampled_point:[0,3],scalabl:1,scale:[0,1,3],schedul:[3,4],scipi:0,search:[0,1,4],second:0,section:0,see:[0,3],seed:0,sei:0,select:[0,3],selected_indic:0,self:[0,2],sens:[0,3],seper:1,sequenc:0,serial:0,set:[0,1,3],set_xy_coregion:0,seuclidean:0,sever:3,shall:0,shape:0,should:[0,3],should_cross_valid:0,should_run_crossvalid:3,shouldn:0,shown:[1,3],shrink:1,sigma:1,sign:0,significantli:3,similarli:[1,3],simpl:3,simpli:[1,2],simul:4,sinc:[0,1,3],singl:0,situat:3,size:[0,1,3],skip:2,sklearn:[2,3,4],smaller:0,smit:[0,4],sokalmichen:0,sokalsneath:0,solut:0,some:[0,1,2,3],someth:3,sort:2,sourc:0,space:[0,1,4],spars:0,sparser:1,spatial:0,specifi:3,speed:[1,3],sqeuclidean:0,stack:0,stackoverflow:0,standard:[0,1,3,4],start:4,statu:3,std:[0,2,3],std_0:0,std_1:0,step:[0,1,3,4],stone:0,str:0,strictli:0,string:[0,3],structure_comp:0,stylian:0,subpackag:3,subsequ:3,subtre:2,successfulli:0,suggest:3,suit:3,summari:0,support:[1,2,3],sure:[0,3],surrog:3,synthesi:0,take:0,taken:0,talirz:0,target:[0,3],task:[0,2],technometr:0,tend:3,term:0,test:[0,1,2,3],than:[0,3],thei:2,them:1,theoret:[0,3],thi:[0,1,2,3,4],those:3,three:[0,3],threshold:0,through:1,tighter:3,time:0,toler:3,toronto:0,total:1,track:0,train:[0,1,2,3],train_single_parti:2,tree:3,trick:[0,4],trim:2,tupl:0,turn:3,tutori:4,two:3,type:[0,2],typic:[0,2],ultim:1,unbias:1,uncertain:0,uncertainti:[0,1,3],unclassifi:[0,1,3],unclassified_0:0,unclassified_indic:[0,3],unclassified_point:0,unclassified_t:0,understand:0,union:0,unsur:3,until:[0,3],untim:3,updat:[0,2],update_train_set:[0,3],upper:0,ups:0,upstream:2,use:[0,1,2,4,5],used:[0,1,3],useful:[0,4],user:0,uses:[0,3,4],using:[0,1,2,3,4],usual:3,util:[1,3,4],valid:[3,4],validate_beta_scal:0,validate_coef_var:0,validate_coregionalized_gpi:0,validate_delta:0,validate_epsilon:0,validate_gbdt_model:0,validate_go:0,validate_gpy_model:0,validate_input:0,validate_interquartile_scal:0,validate_ndim:0,validate_njob:[0,2],validate_number_model:[0,2],validate_sklearn_gpr_model:0,valu:[0,1,3],valueerror:0,vari:1,varianc:[0,3],variat:[0,3],vector:0,veri:3,verifi:2,version:[0,1,2,3],view:3,virtual:3,wai:[1,2,3],wan:0,wang:[0,4],want:[0,2],warn:3,weak:0,weight:3,well:0,were:0,when:[0,1,3],where:[0,1,4],wherea:3,whether:3,which:[0,1,2,4],whitespac:2,width:1,wiki:0,wikipedia:0,without:[0,5],wminkowski:0,work:[1,3,4],wors:0,would:3,wrapper:[0,3],write:2,www:0,x_design:0,x_train:0,y_0:0,y_1:0,y_train:0,yet:2,yoo:4,you:[0,1,2,3,4],your:[0,2,3,4],yourself:3,yule:0,zero:0,zuluaga:[0,1,4]},titles:["The PyPAL API reference","Background","Developer notes","Getting Started","PyPAL: Pareto active learning for Python","Tutorials"],titleterms:{"class":[0,2,3],"function":[0,5],"new":2,For:0,One:5,The:[0,1],activ:[3,4,5],algorithm:1,all:3,api:0,background:1,base:0,batch:3,behind:1,built:5,caveat:3,code:2,commit:2,content:4,contribut:2,core:0,coregion:0,develop:2,document:2,experi:3,explor:3,featur:2,gaussian:3,get:3,gpr:[0,5],gpy:[0,5],guidelin:2,helper:0,how:1,hyperparamet:[0,1,3],implement:2,indic:4,influenc:1,input:0,instal:3,intuit:1,known:3,learn:[3,4,5],lightgbm:0,log:3,measur:5,messag:2,model:[0,5],multiobject:0,note:2,object:3,optim:[0,3],packag:0,pal:[0,2,3],pareto:4,plot:0,process:3,properti:3,pypal:[0,4],python:[2,4],quantil:[0,5],refer:0,regress:[0,5],run:3,sampl:3,schedul:0,sklearn:[0,5],space:3,start:3,step:5,tabl:4,trick:3,tutori:5,use:3,using:5,util:0,valid:0,where:3,which:3}}) diff --git a/docs/_build/html/tutorials.html b/docs/_build/html/tutorials.html index 47ffbfb..e48023b 100644 --- a/docs/_build/html/tutorials.html +++ b/docs/_build/html/tutorials.html @@ -5,7 +5,7 @@ - Tutorials — pypal 0+untagged.210.gc6bd515.dirty documentation + Tutorials — pypal 0+untagged.212.g4af8189.dirty documentation diff --git a/docs/conf.py b/docs/conf.py index cbc37c0..8e83a66 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -43,6 +43,7 @@ "sphinx.ext.mathjax", "sphinx_copybutton", "sphinx.ext.viewcode", + 'sphinx.ext.autosectionlabel' ] copybutton_selector = "div:not(.no-copy)>div.highlight pre" diff --git a/docs/developer_notes.rst b/docs/developer_notes.rst index ef05c90..1ea05d4 100644 --- a/docs/developer_notes.rst +++ b/docs/developer_notes.rst @@ -47,6 +47,8 @@ Currently, documentation is hosted on GitHub pages. Build it locally using :code git subtree push --prefix docs/_build/html origin gh-pages +.. _new_pal_class: + Implementing a new PAL class ----------------------------- diff --git a/docs/getting_started.rst b/docs/getting_started.rst index 2e4c272..86a70c4 100644 --- a/docs/getting_started.rst +++ b/docs/getting_started.rst @@ -19,16 +19,27 @@ The latest version of PyPAL can be installed from GitHub using pip install git+https://github.com/kjappelbaum/pypal.git +Which class do i use? +----------------------- + +- For Gaussian processes built with :code:`sklearn` use :py:class:`pypal.pal.pal_sklearn.PALSklearn` +- For Gaussian processes built with :code:`GPy` use :py:class:`pypal.pal.pal_gpy.PALGPy` +- For coregionalized Gaussian processes (built with :code:`GPy`) use :py:class:`pypal.pal.pal_coregionalized.PALCoregionalized` +- For quantile regression using :code:`LightGBM` gradient boosted decision trees use :py:class:`pypal.pal.pal_gbdt.PALGBDT` + +If your favorite model is not listed, you can easily implement it yourself (see :ref:`new_pal_class`)! + + Running an active learning experiment --------------------------------------- The `examples` directory contains a `Jupyter notebook with an example `_ that can also be run on MyBinder. -If using a Gaussian process model built with :code:`sklearn` or :code:`GPy` we recommend using a pre-built class such as :code:`PALSklearn` or :code:`PALGpy` and following the subsequent steps: +If using a Gaussian process model built with :code:`sklearn` or :code:`GPy` we recommend using a pre-built class such as :py:class:`pypal.pal.pal_sklearn.PALSklearn`, :py:class:`pypal.pal.pal_coregionalized.PALCoregionalized`, :py:class:`pypal.pal.pal_gpy.PALGPy` and following the subsequent steps (for more details on which class to use see :ref:`Which class do i use?`): 1. For each objective create a model (if using a coregionalized Gaussian process model, only one model needs to be created) -2. Sample a few initial points from the design space. We provide the :code:`get_maxmin_samples` or :code:`get_kmeans_samples` utilities that can help with the sampling. Our code assumes that :code:`X` is a :code:`np.array`. +2. Sample a few initial points from the design space. We provide the :py:meth:`pypal.pal.utils.get_maxmin_samples` or :py:meth:`pypal.pal.utils.get_kmeans_samples` utilities that can help with the sampling. Our code assumes that :code:`X` is a :code:`np.array`. .. code-block:: python @@ -81,7 +92,7 @@ for a case in which we performed measurements for samples with index 1 and 2 of Hyperparameter optimization ............................. Usually, the hyperparameters of a machine learning model, in particular the kernel hyperparameters of a Gaussian process regression model, should be optimized as new training data is added. -However, since this is usually a computationally expensive process, it may not be desirable to perform this at every iteration of the active learning process. The iteration frequency of the hyperparameter optimization is internally set by the :code:`_should_optimize_hyperparameter` function, which by default uses a schedule that optimizes the hyperparameter every 10th iteration. This behavior can be changed by override this function. +However, since this is usually a computationally expensive process, it may not be desirable to perform this at every iteration of the active learning process. The iteration frequency of the hyperparameter optimization is internally set by the :code:`_should_optimize_hyperparameters` function, which by default uses a schedule that optimizes the hyperparameter every 10th iteration. This behavior can be changed by override this function. Logging ........ @@ -94,7 +105,7 @@ Basic information such as the current iteration and the classification status ar # returns: pypal at iteration 1. 10 Pareto optimal points, 1304 discarded points, 200 unclassified points. -We also provide calculation of the hypervolume enclosed by the Pareto front with the :code:`get_hypervolume` function +We also provide calculation of the hypervolume enclosed by the Pareto front with the function :py:meth:`pypal.pal.utils.get_hypervolume` .. code:: python @@ -121,7 +132,7 @@ Exploring a space where all objectives are known ................................................. In some cases, we may already posess all measurements, but would like to run PAL with different settings to test how the algorithm performs. -In this case, we provide the :code:`exhaust_loop` wrapper. +In this case, we provide the :py:meth:`pypal.pal.utils.exhaust_loop` wrapper. .. code-block:: python @@ -182,7 +193,7 @@ By default, the code will run a simple cross-validation only on the first iterat This behavior can changed with the cross-validation test being performed more frequently by overriding the :code:`should_run_crossvalidation` function. -Another way to detect overfitting is to use :code:`make_jointplot` function from the plotting subpackage. This function will plot all objectives against each other (with errorbars and different classes indicated with colors) and histograms of the objectives on the diagonal. If the majority of predicted points tend to overlap one another and get discarded by PyPAL, this may suggest that the surrogate model is overfitted. +Another way to detect overfitting is to use :py:func:`pypal.plotting.make_jointplot`function from the plotting subpackage. This function will plot all objectives against each other (with errorbars and different classes indicated with colors) and histograms of the objectives on the diagonal. If the majority of predicted points tend to overlap one another and get discarded by PyPAL, this may suggest that the surrogate model is overfitted. .. code-block:: python