diff --git a/.coveragerc b/.coveragerc
index 1f94671..ed0604f 100644
--- a/.coveragerc
+++ b/.coveragerc
@@ -3,4 +3,5 @@ omit =
obsidian/dash/*
obsidian/tests/*
obsidian/experiment/benchmark/*
- obsidian/plotting/branding.py
\ No newline at end of file
+ obsidian/plotting/branding.py
+ app.py
\ No newline at end of file
diff --git a/.github/workflows/codecov.yml b/.github/workflows/codecov.yml
new file mode 100644
index 0000000..43e2f6a
--- /dev/null
+++ b/.github/workflows/codecov.yml
@@ -0,0 +1,21 @@
+name: CI
+
+on: [push, pull_request]
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ name: Pytest
+ steps:
+ - uses: actions/checkout@v4
+ - uses: actions/setup-python@v2
+ with:
+ python-version: '3.10'
+ - name: Install requirements
+ run: pip install obsidian-apo[dev]
+ - name: Run tests and collect coverage
+ run: pytest --cov=.
+ - name: Upload coverage reports to Codecov with GitHub Action
+ uses: codecov/codecov-action@v4.2.0
+ env:
+ CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
diff --git a/demo/Simple single objective.ipynb b/demo/Simple single objective.ipynb
index 5836458..4c4dd8b 100644
--- a/demo/Simple single objective.ipynb
+++ b/demo/Simple single objective.ipynb
@@ -2,9 +2,28 @@
"cells": [
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 1,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "c:\\Users\\kevin\\miniconda3\\envs\\obsidian-pypi\\lib\\site-packages\\tqdm\\auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
+ " from .autonotebook import tqdm as notebook_tqdm\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "'0.7.10'"
+ ]
+ },
+ "execution_count": 1,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
"import obsidian\n",
"obsidian.__version__"
@@ -12,7 +31,7 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
@@ -22,12 +41,12 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
- "from obsidian.parameters import ParamSpace, Param_Categorical, Param_Ordinal, Param_Continuous\n",
- "from obsidian.experiment import ExpDesigner"
+ "from obsidian import Campaign, Target, ParamSpace, BayesianOptimizer\n",
+ "from obsidian.parameters import Param_Categorical, Param_Ordinal, Param_Continuous"
]
},
{
@@ -39,9 +58,141 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 4,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " Temperature \n",
+ " Concentration \n",
+ " Enzyme \n",
+ " Variant \n",
+ " Stir Rate \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 8.0 \n",
+ " 17.0 \n",
+ " 0.1405 \n",
+ " MRK001 \n",
+ " Medium \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 12.0 \n",
+ " 143.0 \n",
+ " 0.1695 \n",
+ " MRK003 \n",
+ " Medium \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 4.0 \n",
+ " 101.0 \n",
+ " 0.2855 \n",
+ " MRK002 \n",
+ " High \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 28.0 \n",
+ " 87.0 \n",
+ " 0.1115 \n",
+ " MRK002 \n",
+ " Low \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " -4.0 \n",
+ " 115.0 \n",
+ " 0.2275 \n",
+ " MRK001 \n",
+ " Low \n",
+ " \n",
+ " \n",
+ " 5 \n",
+ " -8.0 \n",
+ " 73.0 \n",
+ " 0.0825 \n",
+ " MRK002 \n",
+ " Medium \n",
+ " \n",
+ " \n",
+ " 6 \n",
+ " 20.0 \n",
+ " 129.0 \n",
+ " 0.0535 \n",
+ " MRK001 \n",
+ " High \n",
+ " \n",
+ " \n",
+ " 7 \n",
+ " 24.0 \n",
+ " 31.0 \n",
+ " 0.2565 \n",
+ " MRK002 \n",
+ " Medium \n",
+ " \n",
+ " \n",
+ " 8 \n",
+ " 16.0 \n",
+ " 59.0 \n",
+ " 0.1985 \n",
+ " MRK003 \n",
+ " High \n",
+ " \n",
+ " \n",
+ " 9 \n",
+ " 0.0 \n",
+ " 45.0 \n",
+ " 0.0245 \n",
+ " MRK003 \n",
+ " Low \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Temperature Concentration Enzyme Variant Stir Rate\n",
+ "0 8.0 17.0 0.1405 MRK001 Medium\n",
+ "1 12.0 143.0 0.1695 MRK003 Medium\n",
+ "2 4.0 101.0 0.2855 MRK002 High\n",
+ "3 28.0 87.0 0.1115 MRK002 Low\n",
+ "4 -4.0 115.0 0.2275 MRK001 Low\n",
+ "5 -8.0 73.0 0.0825 MRK002 Medium\n",
+ "6 20.0 129.0 0.0535 MRK001 High\n",
+ "7 24.0 31.0 0.2565 MRK002 Medium\n",
+ "8 16.0 59.0 0.1985 MRK003 High\n",
+ "9 0.0 45.0 0.0245 MRK003 Low"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
"params = [\n",
" Param_Continuous('Temperature', -10, 30),\n",
@@ -52,8 +203,9 @@
" ]\n",
"\n",
"X_space = ParamSpace(params)\n",
- "designer = ExpDesigner(X_space, seed=0)\n",
- "X0 = designer.initialize(10, 'LHS')\n",
+ "target = Target('Yield', aim='max')\n",
+ "campaign = Campaign(X_space, target, seed=0)\n",
+ "X0 = campaign.designer.initialize(10, 'LHS')\n",
"\n",
"X0"
]
@@ -67,9 +219,152 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 5,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " Temperature \n",
+ " Concentration \n",
+ " Enzyme \n",
+ " Variant \n",
+ " Stir Rate \n",
+ " Yield \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 8.0 \n",
+ " 17.0 \n",
+ " 0.1405 \n",
+ " MRK001 \n",
+ " Medium \n",
+ " 92.339807 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 12.0 \n",
+ " 143.0 \n",
+ " 0.1695 \n",
+ " MRK003 \n",
+ " Medium \n",
+ " 44.280131 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 4.0 \n",
+ " 101.0 \n",
+ " 0.2855 \n",
+ " MRK002 \n",
+ " High \n",
+ " 46.270422 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 28.0 \n",
+ " 87.0 \n",
+ " 0.1115 \n",
+ " MRK002 \n",
+ " Low \n",
+ " 60.288919 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " -4.0 \n",
+ " 115.0 \n",
+ " 0.2275 \n",
+ " MRK001 \n",
+ " Low \n",
+ " 63.082417 \n",
+ " \n",
+ " \n",
+ " 5 \n",
+ " -8.0 \n",
+ " 73.0 \n",
+ " 0.0825 \n",
+ " MRK002 \n",
+ " Medium \n",
+ " 86.196333 \n",
+ " \n",
+ " \n",
+ " 6 \n",
+ " 20.0 \n",
+ " 129.0 \n",
+ " 0.0535 \n",
+ " MRK001 \n",
+ " High \n",
+ " 47.625034 \n",
+ " \n",
+ " \n",
+ " 7 \n",
+ " 24.0 \n",
+ " 31.0 \n",
+ " 0.2565 \n",
+ " MRK002 \n",
+ " Medium \n",
+ " 48.966143 \n",
+ " \n",
+ " \n",
+ " 8 \n",
+ " 16.0 \n",
+ " 59.0 \n",
+ " 0.1985 \n",
+ " MRK003 \n",
+ " High \n",
+ " 49.876574 \n",
+ " \n",
+ " \n",
+ " 9 \n",
+ " 0.0 \n",
+ " 45.0 \n",
+ " 0.0245 \n",
+ " MRK003 \n",
+ " Low \n",
+ " 81.228810 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Temperature Concentration Enzyme Variant Stir Rate Yield\n",
+ "0 8.0 17.0 0.1405 MRK001 Medium 92.339807\n",
+ "1 12.0 143.0 0.1695 MRK003 Medium 44.280131\n",
+ "2 4.0 101.0 0.2855 MRK002 High 46.270422\n",
+ "3 28.0 87.0 0.1115 MRK002 Low 60.288919\n",
+ "4 -4.0 115.0 0.2275 MRK001 Low 63.082417\n",
+ "5 -8.0 73.0 0.0825 MRK002 Medium 86.196333\n",
+ "6 20.0 129.0 0.0535 MRK001 High 47.625034\n",
+ "7 24.0 31.0 0.2565 MRK002 Medium 48.966143\n",
+ "8 16.0 59.0 0.1985 MRK003 High 49.876574\n",
+ "9 0.0 45.0 0.0245 MRK003 Low 81.228810"
+ ]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
"from obsidian.experiment import Simulator\n",
"from obsidian.experiment.benchmark import shifted_parab\n",
@@ -83,18 +378,30 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 6,
"metadata": {},
- "outputs": [],
- "source": [
- "Z0.to_csv('Example APO Data Input.csv')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
"source": [
"Z0.plot(x='Temperature', y='Yield', kind='scatter', figsize=(4,3))"
]
@@ -106,51 +413,156 @@
"### Create a campaign to track optimization"
]
},
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "from obsidian.campaign import Campaign"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "my_campaign = Campaign(X_space)\n",
- "my_campaign.add_data(Z0)\n",
- "my_campaign.data"
- ]
- },
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "### Fit an optimizer"
+ "### Fit the optimizer"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 7,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " Temperature \n",
+ " Concentration \n",
+ " Enzyme \n",
+ " Variant \n",
+ " Stir Rate \n",
+ " Yield \n",
+ " Iteration \n",
+ " \n",
+ " \n",
+ " Observation ID \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 5 \n",
+ " -8.0 \n",
+ " 73.0 \n",
+ " 0.0825 \n",
+ " MRK002 \n",
+ " Medium \n",
+ " 86.196333 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 4.0 \n",
+ " 101.0 \n",
+ " 0.2855 \n",
+ " MRK002 \n",
+ " High \n",
+ " 46.270422 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 28.0 \n",
+ " 87.0 \n",
+ " 0.1115 \n",
+ " MRK002 \n",
+ " Low \n",
+ " 60.288919 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " -4.0 \n",
+ " 115.0 \n",
+ " 0.2275 \n",
+ " MRK001 \n",
+ " Low \n",
+ " 63.082417 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 12.0 \n",
+ " 143.0 \n",
+ " 0.1695 \n",
+ " MRK003 \n",
+ " Medium \n",
+ " 44.280131 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Temperature Concentration Enzyme Variant Stir Rate \\\n",
+ "Observation ID \n",
+ "5 -8.0 73.0 0.0825 MRK002 Medium \n",
+ "2 4.0 101.0 0.2855 MRK002 High \n",
+ "3 28.0 87.0 0.1115 MRK002 Low \n",
+ "4 -4.0 115.0 0.2275 MRK001 Low \n",
+ "1 12.0 143.0 0.1695 MRK003 Medium \n",
+ "\n",
+ " Yield Iteration \n",
+ "Observation ID \n",
+ "5 86.196333 0 \n",
+ "2 46.270422 0 \n",
+ "3 60.288919 0 \n",
+ "4 63.082417 0 \n",
+ "1 44.280131 0 "
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
- "from obsidian.parameters import Target"
+ "campaign.add_data(Z0)\n",
+ "campaign.data.sample(5)"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 8,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "GP model has been fit to data with a train-score of: 1 for response: Yield\n"
+ ]
+ }
+ ],
"source": [
- "target = Target('Yield', aim='max')\n",
- "my_campaign.set_target(target)\n",
- "my_campaign.fit()"
+ "campaign.fit()"
]
},
{
@@ -162,18 +574,120 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
- "X_suggest, eval_suggest = my_campaign.optimizer.suggest(m_batch=1, acquisition = ['EI','EI'])"
+ "X_suggest, eval_suggest = campaign.optimizer.suggest(m_batch=3)"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 10,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " Temperature \n",
+ " Concentration \n",
+ " Enzyme \n",
+ " Variant \n",
+ " Stir Rate \n",
+ " Yield (pred) \n",
+ " Yield lb \n",
+ " Yield ub \n",
+ " f(Yield) \n",
+ " aq Value \n",
+ " aq Value (joint) \n",
+ " aq Method \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " -10.000000 \n",
+ " 10.0 \n",
+ " 0.131014 \n",
+ " MRK001 \n",
+ " Low \n",
+ " 104.655575 \n",
+ " 97.694464 \n",
+ " 111.616687 \n",
+ " 2.349349 \n",
+ " -0.380345 \n",
+ " -0.292665 \n",
+ " NEI \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " -10.000000 \n",
+ " 10.0 \n",
+ " 0.135985 \n",
+ " MRK001 \n",
+ " High \n",
+ " 101.870533 \n",
+ " 94.441592 \n",
+ " 109.299474 \n",
+ " 2.195901 \n",
+ " -0.612096 \n",
+ " -0.292665 \n",
+ " NEI \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " -1.227879 \n",
+ " 10.0 \n",
+ " 0.114474 \n",
+ " MRK002 \n",
+ " Low \n",
+ " 101.243266 \n",
+ " 97.004850 \n",
+ " 105.481684 \n",
+ " 2.161341 \n",
+ " -0.709565 \n",
+ " -0.292665 \n",
+ " NEI \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Temperature Concentration Enzyme Variant Stir Rate Yield (pred) \\\n",
+ "0 -10.000000 10.0 0.131014 MRK001 Low 104.655575 \n",
+ "1 -10.000000 10.0 0.135985 MRK001 High 101.870533 \n",
+ "2 -1.227879 10.0 0.114474 MRK002 Low 101.243266 \n",
+ "\n",
+ " Yield lb Yield ub f(Yield) aq Value aq Value (joint) aq Method \n",
+ "0 97.694464 111.616687 2.349349 -0.380345 -0.292665 NEI \n",
+ "1 94.441592 109.299474 2.195901 -0.612096 -0.292665 NEI \n",
+ "2 97.004850 105.481684 2.161341 -0.709565 -0.292665 NEI "
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
"df_suggest = pd.concat([X_suggest, eval_suggest], axis=1)\n",
"df_suggest"
@@ -188,13 +702,13 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"y_iter1 = pd.DataFrame(simulator.simulate(X_suggest), columns = ['Yield'])\n",
"Z_iter1 = pd.concat([X_suggest, y_iter1, eval_suggest], axis=1)\n",
- "my_campaign.add_data(Z_iter1)"
+ "campaign.add_data(Z_iter1)"
]
},
{
@@ -206,62 +720,1670 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 12,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " Temperature \n",
+ " Concentration \n",
+ " Enzyme \n",
+ " Variant \n",
+ " Stir Rate \n",
+ " Yield \n",
+ " Iteration \n",
+ " Yield (pred) \n",
+ " Yield lb \n",
+ " Yield ub \n",
+ " f(Yield) \n",
+ " aq Value \n",
+ " aq Value (joint) \n",
+ " aq Method \n",
+ " \n",
+ " \n",
+ " Observation ID \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 8 \n",
+ " 16.000000 \n",
+ " 59.0 \n",
+ " 0.198500 \n",
+ " MRK003 \n",
+ " High \n",
+ " 49.876574 \n",
+ " 0 \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 9 \n",
+ " 0.000000 \n",
+ " 45.0 \n",
+ " 0.024500 \n",
+ " MRK003 \n",
+ " Low \n",
+ " 81.228810 \n",
+ " 0 \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 10 \n",
+ " -10.000000 \n",
+ " 10.0 \n",
+ " 0.131014 \n",
+ " MRK001 \n",
+ " Low \n",
+ " 92.196849 \n",
+ " 1 \n",
+ " 104.655575 \n",
+ " 97.694464 \n",
+ " 111.616687 \n",
+ " 2.349349 \n",
+ " -0.380345 \n",
+ " -0.292665 \n",
+ " NEI \n",
+ " \n",
+ " \n",
+ " 11 \n",
+ " -10.000000 \n",
+ " 10.0 \n",
+ " 0.135985 \n",
+ " MRK001 \n",
+ " High \n",
+ " 74.499468 \n",
+ " 1 \n",
+ " 101.870533 \n",
+ " 94.441592 \n",
+ " 109.299474 \n",
+ " 2.195901 \n",
+ " -0.612096 \n",
+ " -0.292665 \n",
+ " NEI \n",
+ " \n",
+ " \n",
+ " 12 \n",
+ " -1.227879 \n",
+ " 10.0 \n",
+ " 0.114474 \n",
+ " MRK002 \n",
+ " Low \n",
+ " 95.000467 \n",
+ " 1 \n",
+ " 101.243266 \n",
+ " 97.004850 \n",
+ " 105.481684 \n",
+ " 2.161341 \n",
+ " -0.709565 \n",
+ " -0.292665 \n",
+ " NEI \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Temperature Concentration Enzyme Variant Stir Rate \\\n",
+ "Observation ID \n",
+ "8 16.000000 59.0 0.198500 MRK003 High \n",
+ "9 0.000000 45.0 0.024500 MRK003 Low \n",
+ "10 -10.000000 10.0 0.131014 MRK001 Low \n",
+ "11 -10.000000 10.0 0.135985 MRK001 High \n",
+ "12 -1.227879 10.0 0.114474 MRK002 Low \n",
+ "\n",
+ " Yield Iteration Yield (pred) Yield lb Yield ub \\\n",
+ "Observation ID \n",
+ "8 49.876574 0 NaN NaN NaN \n",
+ "9 81.228810 0 NaN NaN NaN \n",
+ "10 92.196849 1 104.655575 97.694464 111.616687 \n",
+ "11 74.499468 1 101.870533 94.441592 109.299474 \n",
+ "12 95.000467 1 101.243266 97.004850 105.481684 \n",
+ "\n",
+ " f(Yield) aq Value aq Value (joint) aq Method \n",
+ "Observation ID \n",
+ "8 NaN NaN NaN NaN \n",
+ "9 NaN NaN NaN NaN \n",
+ "10 2.349349 -0.380345 -0.292665 NEI \n",
+ "11 2.195901 -0.612096 -0.292665 NEI \n",
+ "12 2.161341 -0.709565 -0.292665 NEI "
+ ]
+ },
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
- "Z_iter1.reset_index(drop=True)"
+ "campaign.data.tail()"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 13,
"metadata": {},
- "outputs": [],
- "source": [
- "my_campaign.data"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "GP model has been fit to data with a train-score of: 1 for response: Yield\n",
+ "GP model has been fit to data with a train-score of: 1 for response: Yield\n",
+ "GP model has been fit to data with a train-score of: 1 for response: Yield\n"
+ ]
+ }
+ ],
"source": [
"for iter in range(3):\n",
- " my_campaign.fit()\n",
- " X_suggest, eval_suggest = my_campaign.optimizer.suggest(m_batch=3)\n",
+ " campaign.fit()\n",
+ " X_suggest, eval_suggest = campaign.optimizer.suggest(m_batch=3)\n",
" y_iter = pd.DataFrame(simulator.simulate(X_suggest))\n",
" Z_iter = pd.concat([X_suggest, y_iter, eval_suggest], axis=1)\n",
- " my_campaign.add_data(Z_iter)"
+ " campaign.add_data(Z_iter)"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 14,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " Temperature \n",
+ " Concentration \n",
+ " Enzyme \n",
+ " Variant \n",
+ " Stir Rate \n",
+ " Yield \n",
+ " Iteration \n",
+ " Yield (pred) \n",
+ " Yield lb \n",
+ " Yield ub \n",
+ " f(Yield) \n",
+ " aq Value \n",
+ " aq Value (joint) \n",
+ " aq Method \n",
+ " \n",
+ " \n",
+ " Observation ID \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 17 \n",
+ " -7.141344 \n",
+ " 10.000000 \n",
+ " 0.082840 \n",
+ " MRK001 \n",
+ " Medium \n",
+ " 92.892841 \n",
+ " 3 \n",
+ " 98.111419 \n",
+ " 95.274803 \n",
+ " 100.948035 \n",
+ " 1.227240 \n",
+ " -3.570208 \n",
+ " -2.547914 \n",
+ " NEI \n",
+ " \n",
+ " \n",
+ " 18 \n",
+ " -5.935019 \n",
+ " 10.000000 \n",
+ " 0.134921 \n",
+ " MRK001 \n",
+ " Medium \n",
+ " 92.238961 \n",
+ " 3 \n",
+ " 98.842943 \n",
+ " 95.778146 \n",
+ " 101.907742 \n",
+ " 1.262650 \n",
+ " -3.088293 \n",
+ " -2.547914 \n",
+ " NEI \n",
+ " \n",
+ " \n",
+ " 19 \n",
+ " 0.610597 \n",
+ " 10.000000 \n",
+ " 0.102237 \n",
+ " MRK002 \n",
+ " Medium \n",
+ " 100.957040 \n",
+ " 4 \n",
+ " 102.183778 \n",
+ " 101.271680 \n",
+ " 103.095877 \n",
+ " 1.253119 \n",
+ " -2.245755 \n",
+ " -2.045912 \n",
+ " NEI \n",
+ " \n",
+ " \n",
+ " 20 \n",
+ " 0.177355 \n",
+ " 10.000000 \n",
+ " 0.010000 \n",
+ " MRK002 \n",
+ " Medium \n",
+ " 92.773927 \n",
+ " 4 \n",
+ " 95.668112 \n",
+ " 89.993270 \n",
+ " 101.342956 \n",
+ " 0.937954 \n",
+ " -3.426519 \n",
+ " -2.045912 \n",
+ " NEI \n",
+ " \n",
+ " \n",
+ " 21 \n",
+ " 0.509228 \n",
+ " 22.560394 \n",
+ " 0.100301 \n",
+ " MRK002 \n",
+ " Medium \n",
+ " 99.653614 \n",
+ " 4 \n",
+ " 101.767473 \n",
+ " 100.439377 \n",
+ " 103.095569 \n",
+ " 1.232982 \n",
+ " -2.430293 \n",
+ " -2.045912 \n",
+ " NEI \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Temperature Concentration Enzyme Variant Stir Rate \\\n",
+ "Observation ID \n",
+ "17 -7.141344 10.000000 0.082840 MRK001 Medium \n",
+ "18 -5.935019 10.000000 0.134921 MRK001 Medium \n",
+ "19 0.610597 10.000000 0.102237 MRK002 Medium \n",
+ "20 0.177355 10.000000 0.010000 MRK002 Medium \n",
+ "21 0.509228 22.560394 0.100301 MRK002 Medium \n",
+ "\n",
+ " Yield Iteration Yield (pred) Yield lb Yield ub \\\n",
+ "Observation ID \n",
+ "17 92.892841 3 98.111419 95.274803 100.948035 \n",
+ "18 92.238961 3 98.842943 95.778146 101.907742 \n",
+ "19 100.957040 4 102.183778 101.271680 103.095877 \n",
+ "20 92.773927 4 95.668112 89.993270 101.342956 \n",
+ "21 99.653614 4 101.767473 100.439377 103.095569 \n",
+ "\n",
+ " f(Yield) aq Value aq Value (joint) aq Method \n",
+ "Observation ID \n",
+ "17 1.227240 -3.570208 -2.547914 NEI \n",
+ "18 1.262650 -3.088293 -2.547914 NEI \n",
+ "19 1.253119 -2.245755 -2.045912 NEI \n",
+ "20 0.937954 -3.426519 -2.045912 NEI \n",
+ "21 1.232982 -2.430293 -2.045912 NEI "
+ ]
+ },
+ "execution_count": 14,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
- "my_campaign.data"
+ "campaign.data.tail()"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 15,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.plotly.v1+json": {
+ "config": {
+ "plotlyServerURL": "https://plot.ly"
+ },
+ "data": [
+ {
+ "hovertemplate": "Observation ID=%{x} Yield=%{y} aq Value=%{marker.color} ",
+ "legendgroup": "",
+ "marker": {
+ "color": [
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ -0.38034538065202295,
+ -0.6120958124027052,
+ -0.7095649136708557,
+ -2.05692078994696,
+ -3.1516288285054745,
+ -2.473037637673595,
+ -2.798014989204011,
+ -3.57020802379168,
+ -3.088292727987067,
+ -2.245755141023286,
+ -3.426519149943271,
+ -2.4302932293385533
+ ],
+ "coloraxis": "coloraxis",
+ "symbol": "circle"
+ },
+ "mode": "markers",
+ "name": "",
+ "orientation": "v",
+ "showlegend": false,
+ "type": "scatter",
+ "x": [
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21
+ ],
+ "xaxis": "x",
+ "y": [
+ 92.33980672490216,
+ 44.28013139056551,
+ 46.27042165792395,
+ 60.288918896712964,
+ 63.08241717950659,
+ 86.19633278740932,
+ 47.62503445818602,
+ 48.96614297388498,
+ 49.87657408385417,
+ 81.22881027324594,
+ 92.19684872892208,
+ 74.49946768778311,
+ 95.0004674747163,
+ 99.35898338419939,
+ 91.60949770163496,
+ 91.31362421740042,
+ 99.99794882558741,
+ 92.89284062164445,
+ 92.23896061375875,
+ 100.95704001123406,
+ 92.7739266193329,
+ 99.65361433177773
+ ],
+ "yaxis": "y"
+ }
+ ],
+ "layout": {
+ "coloraxis": {
+ "colorbar": {
+ "title": {
+ "text": "aq Value"
+ }
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ]
+ },
+ "height": 300,
+ "legend": {
+ "tracegroupgap": 0
+ },
+ "margin": {
+ "t": 60
+ },
+ "template": {
+ "data": {
+ "bar": [
+ {
+ "error_x": {
+ "color": "rgb(51,51,51)"
+ },
+ "error_y": {
+ "color": "rgb(51,51,51)"
+ },
+ "marker": {
+ "line": {
+ "color": "rgb(237,237,237)",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "bar"
+ }
+ ],
+ "barpolar": [
+ {
+ "marker": {
+ "line": {
+ "color": "rgb(237,237,237)",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "barpolar"
+ }
+ ],
+ "carpet": [
+ {
+ "aaxis": {
+ "endlinecolor": "rgb(51,51,51)",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "rgb(51,51,51)"
+ },
+ "baxis": {
+ "endlinecolor": "rgb(51,51,51)",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "rgb(51,51,51)"
+ },
+ "type": "carpet"
+ }
+ ],
+ "choropleth": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "tickcolor": "rgb(237,237,237)",
+ "ticklen": 6,
+ "ticks": "inside"
+ },
+ "type": "choropleth"
+ }
+ ],
+ "contour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "tickcolor": "rgb(237,237,237)",
+ "ticklen": 6,
+ "ticks": "inside"
+ },
+ "colorscale": [
+ [
+ 0,
+ "rgb(20,44,66)"
+ ],
+ [
+ 1,
+ "rgb(90,179,244)"
+ ]
+ ],
+ "type": "contour"
+ }
+ ],
+ "contourcarpet": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "tickcolor": "rgb(237,237,237)",
+ "ticklen": 6,
+ "ticks": "inside"
+ },
+ "type": "contourcarpet"
+ }
+ ],
+ "heatmap": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "tickcolor": "rgb(237,237,237)",
+ "ticklen": 6,
+ "ticks": "inside"
+ },
+ "colorscale": [
+ [
+ 0,
+ "rgb(20,44,66)"
+ ],
+ [
+ 1,
+ "rgb(90,179,244)"
+ ]
+ ],
+ "type": "heatmap"
+ }
+ ],
+ "heatmapgl": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "tickcolor": "rgb(237,237,237)",
+ "ticklen": 6,
+ "ticks": "inside"
+ },
+ "colorscale": [
+ [
+ 0,
+ "rgb(20,44,66)"
+ ],
+ [
+ 1,
+ "rgb(90,179,244)"
+ ]
+ ],
+ "type": "heatmapgl"
+ }
+ ],
+ "histogram": [
+ {
+ "marker": {
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "histogram"
+ }
+ ],
+ "histogram2d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "tickcolor": "rgb(237,237,237)",
+ "ticklen": 6,
+ "ticks": "inside"
+ },
+ "colorscale": [
+ [
+ 0,
+ "rgb(20,44,66)"
+ ],
+ [
+ 1,
+ "rgb(90,179,244)"
+ ]
+ ],
+ "type": "histogram2d"
+ }
+ ],
+ "histogram2dcontour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "tickcolor": "rgb(237,237,237)",
+ "ticklen": 6,
+ "ticks": "inside"
+ },
+ "colorscale": [
+ [
+ 0,
+ "rgb(20,44,66)"
+ ],
+ [
+ 1,
+ "rgb(90,179,244)"
+ ]
+ ],
+ "type": "histogram2dcontour"
+ }
+ ],
+ "mesh3d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "tickcolor": "rgb(237,237,237)",
+ "ticklen": 6,
+ "ticks": "inside"
+ },
+ "type": "mesh3d"
+ }
+ ],
+ "parcoords": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "tickcolor": "rgb(237,237,237)",
+ "ticklen": 6,
+ "ticks": "inside"
+ }
+ },
+ "type": "parcoords"
+ }
+ ],
+ "pie": [
+ {
+ "automargin": true,
+ "type": "pie"
+ }
+ ],
+ "scatter": [
+ {
+ "fillpattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ },
+ "type": "scatter"
+ }
+ ],
+ "scatter3d": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "tickcolor": "rgb(237,237,237)",
+ "ticklen": 6,
+ "ticks": "inside"
+ }
+ },
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "tickcolor": "rgb(237,237,237)",
+ "ticklen": 6,
+ "ticks": "inside"
+ }
+ },
+ "type": "scatter3d"
+ }
+ ],
+ "scattercarpet": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "tickcolor": "rgb(237,237,237)",
+ "ticklen": 6,
+ "ticks": "inside"
+ }
+ },
+ "type": "scattercarpet"
+ }
+ ],
+ "scattergeo": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "tickcolor": "rgb(237,237,237)",
+ "ticklen": 6,
+ "ticks": "inside"
+ }
+ },
+ "type": "scattergeo"
+ }
+ ],
+ "scattergl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "tickcolor": "rgb(237,237,237)",
+ "ticklen": 6,
+ "ticks": "inside"
+ }
+ },
+ "type": "scattergl"
+ }
+ ],
+ "scattermapbox": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "tickcolor": "rgb(237,237,237)",
+ "ticklen": 6,
+ "ticks": "inside"
+ }
+ },
+ "type": "scattermapbox"
+ }
+ ],
+ "scatterpolar": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "tickcolor": "rgb(237,237,237)",
+ "ticklen": 6,
+ "ticks": "inside"
+ }
+ },
+ "type": "scatterpolar"
+ }
+ ],
+ "scatterpolargl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "tickcolor": "rgb(237,237,237)",
+ "ticklen": 6,
+ "ticks": "inside"
+ }
+ },
+ "type": "scatterpolargl"
+ }
+ ],
+ "scatterternary": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "tickcolor": "rgb(237,237,237)",
+ "ticklen": 6,
+ "ticks": "inside"
+ }
+ },
+ "type": "scatterternary"
+ }
+ ],
+ "surface": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "tickcolor": "rgb(237,237,237)",
+ "ticklen": 6,
+ "ticks": "inside"
+ },
+ "colorscale": [
+ [
+ 0,
+ "rgb(20,44,66)"
+ ],
+ [
+ 1,
+ "rgb(90,179,244)"
+ ]
+ ],
+ "type": "surface"
+ }
+ ],
+ "table": [
+ {
+ "cells": {
+ "fill": {
+ "color": "rgb(237,237,237)"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "header": {
+ "fill": {
+ "color": "rgb(217,217,217)"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "type": "table"
+ }
+ ]
+ },
+ "layout": {
+ "annotationdefaults": {
+ "arrowhead": 0,
+ "arrowwidth": 1
+ },
+ "autotypenumbers": "strict",
+ "coloraxis": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "tickcolor": "rgb(237,237,237)",
+ "ticklen": 6,
+ "ticks": "inside"
+ }
+ },
+ "colorscale": {
+ "sequential": [
+ [
+ 0,
+ "rgb(20,44,66)"
+ ],
+ [
+ 1,
+ "rgb(90,179,244)"
+ ]
+ ],
+ "sequentialminus": [
+ [
+ 0,
+ "rgb(20,44,66)"
+ ],
+ [
+ 1,
+ "rgb(90,179,244)"
+ ]
+ ]
+ },
+ "colorway": [
+ "#F8766D",
+ "#A3A500",
+ "#00BF7D",
+ "#00B0F6",
+ "#E76BF3"
+ ],
+ "font": {
+ "color": "rgb(51,51,51)"
+ },
+ "geo": {
+ "bgcolor": "white",
+ "lakecolor": "white",
+ "landcolor": "rgb(237,237,237)",
+ "showlakes": true,
+ "showland": true,
+ "subunitcolor": "white"
+ },
+ "hoverlabel": {
+ "align": "left"
+ },
+ "hovermode": "closest",
+ "paper_bgcolor": "white",
+ "plot_bgcolor": "rgb(237,237,237)",
+ "polar": {
+ "angularaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "showgrid": true,
+ "tickcolor": "rgb(51,51,51)",
+ "ticks": "outside"
+ },
+ "bgcolor": "rgb(237,237,237)",
+ "radialaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "showgrid": true,
+ "tickcolor": "rgb(51,51,51)",
+ "ticks": "outside"
+ }
+ },
+ "scene": {
+ "xaxis": {
+ "backgroundcolor": "rgb(237,237,237)",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "showgrid": true,
+ "tickcolor": "rgb(51,51,51)",
+ "ticks": "outside",
+ "zerolinecolor": "white"
+ },
+ "yaxis": {
+ "backgroundcolor": "rgb(237,237,237)",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "showgrid": true,
+ "tickcolor": "rgb(51,51,51)",
+ "ticks": "outside",
+ "zerolinecolor": "white"
+ },
+ "zaxis": {
+ "backgroundcolor": "rgb(237,237,237)",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "showgrid": true,
+ "tickcolor": "rgb(51,51,51)",
+ "ticks": "outside",
+ "zerolinecolor": "white"
+ }
+ },
+ "shapedefaults": {
+ "fillcolor": "black",
+ "line": {
+ "width": 0
+ },
+ "opacity": 0.3
+ },
+ "ternary": {
+ "aaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "showgrid": true,
+ "tickcolor": "rgb(51,51,51)",
+ "ticks": "outside"
+ },
+ "baxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "showgrid": true,
+ "tickcolor": "rgb(51,51,51)",
+ "ticks": "outside"
+ },
+ "bgcolor": "rgb(237,237,237)",
+ "caxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "showgrid": true,
+ "tickcolor": "rgb(51,51,51)",
+ "ticks": "outside"
+ }
+ },
+ "xaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "showgrid": true,
+ "tickcolor": "rgb(51,51,51)",
+ "ticks": "outside",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white"
+ },
+ "yaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "showgrid": true,
+ "tickcolor": "rgb(51,51,51)",
+ "ticks": "outside",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white"
+ }
+ }
+ },
+ "width": 400,
+ "xaxis": {
+ "anchor": "y",
+ "domain": [
+ 0,
+ 1
+ ],
+ "title": {
+ "text": "Observation ID"
+ }
+ },
+ "yaxis": {
+ "anchor": "x",
+ "domain": [
+ 0,
+ 1
+ ],
+ "title": {
+ "text": "Yield"
+ }
+ }
+ }
+ }
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
"source": [
- "fig = px.scatter(my_campaign.data, x=my_campaign.data.index, y='Yield', color='aq Value')\n",
+ "fig = px.scatter(campaign.data, x=campaign.data.index, y='Yield', color='aq Value')\n",
"fig.update_layout(height=300, width=400, template='ggplot2')"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 16,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " Temperature \n",
+ " Concentration \n",
+ " Enzyme \n",
+ " Variant \n",
+ " Stir Rate \n",
+ " Yield \n",
+ " Iteration \n",
+ " Yield (pred) \n",
+ " Yield lb \n",
+ " Yield ub \n",
+ " f(Yield) \n",
+ " aq Value \n",
+ " aq Value (joint) \n",
+ " aq Method \n",
+ " \n",
+ " \n",
+ " Observation ID \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 8.000000 \n",
+ " 17.000000 \n",
+ " 0.140500 \n",
+ " MRK001 \n",
+ " Medium \n",
+ " 92.339807 \n",
+ " 0 \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 12.000000 \n",
+ " 143.000000 \n",
+ " 0.169500 \n",
+ " MRK003 \n",
+ " Medium \n",
+ " 44.280131 \n",
+ " 0 \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 4.000000 \n",
+ " 101.000000 \n",
+ " 0.285500 \n",
+ " MRK002 \n",
+ " High \n",
+ " 46.270422 \n",
+ " 0 \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 28.000000 \n",
+ " 87.000000 \n",
+ " 0.111500 \n",
+ " MRK002 \n",
+ " Low \n",
+ " 60.288919 \n",
+ " 0 \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " -4.000000 \n",
+ " 115.000000 \n",
+ " 0.227500 \n",
+ " MRK001 \n",
+ " Low \n",
+ " 63.082417 \n",
+ " 0 \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 5 \n",
+ " -8.000000 \n",
+ " 73.000000 \n",
+ " 0.082500 \n",
+ " MRK002 \n",
+ " Medium \n",
+ " 86.196333 \n",
+ " 0 \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 6 \n",
+ " 20.000000 \n",
+ " 129.000000 \n",
+ " 0.053500 \n",
+ " MRK001 \n",
+ " High \n",
+ " 47.625034 \n",
+ " 0 \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 7 \n",
+ " 24.000000 \n",
+ " 31.000000 \n",
+ " 0.256500 \n",
+ " MRK002 \n",
+ " Medium \n",
+ " 48.966143 \n",
+ " 0 \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 8 \n",
+ " 16.000000 \n",
+ " 59.000000 \n",
+ " 0.198500 \n",
+ " MRK003 \n",
+ " High \n",
+ " 49.876574 \n",
+ " 0 \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 9 \n",
+ " 0.000000 \n",
+ " 45.000000 \n",
+ " 0.024500 \n",
+ " MRK003 \n",
+ " Low \n",
+ " 81.228810 \n",
+ " 0 \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 10 \n",
+ " -10.000000 \n",
+ " 10.000000 \n",
+ " 0.131014 \n",
+ " MRK001 \n",
+ " Low \n",
+ " 92.196849 \n",
+ " 1 \n",
+ " 104.655575 \n",
+ " 97.694464 \n",
+ " 111.616687 \n",
+ " 2.349349 \n",
+ " -0.380345 \n",
+ " -0.292665 \n",
+ " NEI \n",
+ " \n",
+ " \n",
+ " 11 \n",
+ " -10.000000 \n",
+ " 10.000000 \n",
+ " 0.135985 \n",
+ " MRK001 \n",
+ " High \n",
+ " 74.499468 \n",
+ " 1 \n",
+ " 101.870533 \n",
+ " 94.441592 \n",
+ " 109.299474 \n",
+ " 2.195901 \n",
+ " -0.612096 \n",
+ " -0.292665 \n",
+ " NEI \n",
+ " \n",
+ " \n",
+ " 12 \n",
+ " -1.227879 \n",
+ " 10.000000 \n",
+ " 0.114474 \n",
+ " MRK002 \n",
+ " Low \n",
+ " 95.000467 \n",
+ " 1 \n",
+ " 101.243266 \n",
+ " 97.004850 \n",
+ " 105.481684 \n",
+ " 2.161341 \n",
+ " -0.709565 \n",
+ " -0.292665 \n",
+ " NEI \n",
+ " \n",
+ " \n",
+ " 13 \n",
+ " 0.959288 \n",
+ " 10.000000 \n",
+ " 0.097640 \n",
+ " MRK001 \n",
+ " Medium \n",
+ " 99.358983 \n",
+ " 2 \n",
+ " 96.085100 \n",
+ " 91.064223 \n",
+ " 101.105978 \n",
+ " 1.430625 \n",
+ " -2.056921 \n",
+ " -1.718530 \n",
+ " NEI \n",
+ " \n",
+ " \n",
+ " 14 \n",
+ " -0.218806 \n",
+ " 30.249728 \n",
+ " 0.132364 \n",
+ " MRK001 \n",
+ " Low \n",
+ " 91.609498 \n",
+ " 2 \n",
+ " 93.406619 \n",
+ " 89.487201 \n",
+ " 97.326037 \n",
+ " 1.294984 \n",
+ " -3.151629 \n",
+ " -1.718530 \n",
+ " NEI \n",
+ " \n",
+ " \n",
+ " 15 \n",
+ " 8.886605 \n",
+ " 10.000000 \n",
+ " 0.079072 \n",
+ " MRK001 \n",
+ " Medium \n",
+ " 91.313624 \n",
+ " 2 \n",
+ " 92.856229 \n",
+ " 86.112203 \n",
+ " 99.600256 \n",
+ " 1.267112 \n",
+ " -2.473038 \n",
+ " -1.718530 \n",
+ " NEI \n",
+ " \n",
+ " \n",
+ " 16 \n",
+ " -3.117858 \n",
+ " 10.000000 \n",
+ " 0.117681 \n",
+ " MRK002 \n",
+ " Medium \n",
+ " 99.997949 \n",
+ " 3 \n",
+ " 100.371375 \n",
+ " 98.746583 \n",
+ " 101.996166 \n",
+ " 1.336635 \n",
+ " -2.798015 \n",
+ " -2.547914 \n",
+ " NEI \n",
+ " \n",
+ " \n",
+ " 17 \n",
+ " -7.141344 \n",
+ " 10.000000 \n",
+ " 0.082840 \n",
+ " MRK001 \n",
+ " Medium \n",
+ " 92.892841 \n",
+ " 3 \n",
+ " 98.111419 \n",
+ " 95.274803 \n",
+ " 100.948035 \n",
+ " 1.227240 \n",
+ " -3.570208 \n",
+ " -2.547914 \n",
+ " NEI \n",
+ " \n",
+ " \n",
+ " 18 \n",
+ " -5.935019 \n",
+ " 10.000000 \n",
+ " 0.134921 \n",
+ " MRK001 \n",
+ " Medium \n",
+ " 92.238961 \n",
+ " 3 \n",
+ " 98.842943 \n",
+ " 95.778146 \n",
+ " 101.907742 \n",
+ " 1.262650 \n",
+ " -3.088293 \n",
+ " -2.547914 \n",
+ " NEI \n",
+ " \n",
+ " \n",
+ " 19 \n",
+ " 0.610597 \n",
+ " 10.000000 \n",
+ " 0.102237 \n",
+ " MRK002 \n",
+ " Medium \n",
+ " 100.957040 \n",
+ " 4 \n",
+ " 102.183778 \n",
+ " 101.271680 \n",
+ " 103.095877 \n",
+ " 1.253119 \n",
+ " -2.245755 \n",
+ " -2.045912 \n",
+ " NEI \n",
+ " \n",
+ " \n",
+ " 20 \n",
+ " 0.177355 \n",
+ " 10.000000 \n",
+ " 0.010000 \n",
+ " MRK002 \n",
+ " Medium \n",
+ " 92.773927 \n",
+ " 4 \n",
+ " 95.668112 \n",
+ " 89.993270 \n",
+ " 101.342956 \n",
+ " 0.937954 \n",
+ " -3.426519 \n",
+ " -2.045912 \n",
+ " NEI \n",
+ " \n",
+ " \n",
+ " 21 \n",
+ " 0.509228 \n",
+ " 22.560394 \n",
+ " 0.100301 \n",
+ " MRK002 \n",
+ " Medium \n",
+ " 99.653614 \n",
+ " 4 \n",
+ " 101.767473 \n",
+ " 100.439377 \n",
+ " 103.095569 \n",
+ " 1.232982 \n",
+ " -2.430293 \n",
+ " -2.045912 \n",
+ " NEI \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Temperature Concentration Enzyme Variant Stir Rate \\\n",
+ "Observation ID \n",
+ "0 8.000000 17.000000 0.140500 MRK001 Medium \n",
+ "1 12.000000 143.000000 0.169500 MRK003 Medium \n",
+ "2 4.000000 101.000000 0.285500 MRK002 High \n",
+ "3 28.000000 87.000000 0.111500 MRK002 Low \n",
+ "4 -4.000000 115.000000 0.227500 MRK001 Low \n",
+ "5 -8.000000 73.000000 0.082500 MRK002 Medium \n",
+ "6 20.000000 129.000000 0.053500 MRK001 High \n",
+ "7 24.000000 31.000000 0.256500 MRK002 Medium \n",
+ "8 16.000000 59.000000 0.198500 MRK003 High \n",
+ "9 0.000000 45.000000 0.024500 MRK003 Low \n",
+ "10 -10.000000 10.000000 0.131014 MRK001 Low \n",
+ "11 -10.000000 10.000000 0.135985 MRK001 High \n",
+ "12 -1.227879 10.000000 0.114474 MRK002 Low \n",
+ "13 0.959288 10.000000 0.097640 MRK001 Medium \n",
+ "14 -0.218806 30.249728 0.132364 MRK001 Low \n",
+ "15 8.886605 10.000000 0.079072 MRK001 Medium \n",
+ "16 -3.117858 10.000000 0.117681 MRK002 Medium \n",
+ "17 -7.141344 10.000000 0.082840 MRK001 Medium \n",
+ "18 -5.935019 10.000000 0.134921 MRK001 Medium \n",
+ "19 0.610597 10.000000 0.102237 MRK002 Medium \n",
+ "20 0.177355 10.000000 0.010000 MRK002 Medium \n",
+ "21 0.509228 22.560394 0.100301 MRK002 Medium \n",
+ "\n",
+ " Yield Iteration Yield (pred) Yield lb Yield ub \\\n",
+ "Observation ID \n",
+ "0 92.339807 0 NaN NaN NaN \n",
+ "1 44.280131 0 NaN NaN NaN \n",
+ "2 46.270422 0 NaN NaN NaN \n",
+ "3 60.288919 0 NaN NaN NaN \n",
+ "4 63.082417 0 NaN NaN NaN \n",
+ "5 86.196333 0 NaN NaN NaN \n",
+ "6 47.625034 0 NaN NaN NaN \n",
+ "7 48.966143 0 NaN NaN NaN \n",
+ "8 49.876574 0 NaN NaN NaN \n",
+ "9 81.228810 0 NaN NaN NaN \n",
+ "10 92.196849 1 104.655575 97.694464 111.616687 \n",
+ "11 74.499468 1 101.870533 94.441592 109.299474 \n",
+ "12 95.000467 1 101.243266 97.004850 105.481684 \n",
+ "13 99.358983 2 96.085100 91.064223 101.105978 \n",
+ "14 91.609498 2 93.406619 89.487201 97.326037 \n",
+ "15 91.313624 2 92.856229 86.112203 99.600256 \n",
+ "16 99.997949 3 100.371375 98.746583 101.996166 \n",
+ "17 92.892841 3 98.111419 95.274803 100.948035 \n",
+ "18 92.238961 3 98.842943 95.778146 101.907742 \n",
+ "19 100.957040 4 102.183778 101.271680 103.095877 \n",
+ "20 92.773927 4 95.668112 89.993270 101.342956 \n",
+ "21 99.653614 4 101.767473 100.439377 103.095569 \n",
+ "\n",
+ " f(Yield) aq Value aq Value (joint) aq Method \n",
+ "Observation ID \n",
+ "0 NaN NaN NaN NaN \n",
+ "1 NaN NaN NaN NaN \n",
+ "2 NaN NaN NaN NaN \n",
+ "3 NaN NaN NaN NaN \n",
+ "4 NaN NaN NaN NaN \n",
+ "5 NaN NaN NaN NaN \n",
+ "6 NaN NaN NaN NaN \n",
+ "7 NaN NaN NaN NaN \n",
+ "8 NaN NaN NaN NaN \n",
+ "9 NaN NaN NaN NaN \n",
+ "10 2.349349 -0.380345 -0.292665 NEI \n",
+ "11 2.195901 -0.612096 -0.292665 NEI \n",
+ "12 2.161341 -0.709565 -0.292665 NEI \n",
+ "13 1.430625 -2.056921 -1.718530 NEI \n",
+ "14 1.294984 -3.151629 -1.718530 NEI \n",
+ "15 1.267112 -2.473038 -1.718530 NEI \n",
+ "16 1.336635 -2.798015 -2.547914 NEI \n",
+ "17 1.227240 -3.570208 -2.547914 NEI \n",
+ "18 1.262650 -3.088293 -2.547914 NEI \n",
+ "19 1.253119 -2.245755 -2.045912 NEI \n",
+ "20 0.937954 -3.426519 -2.045912 NEI \n",
+ "21 1.232982 -2.430293 -2.045912 NEI "
+ ]
+ },
+ "execution_count": 16,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
- "my_campaign.data"
+ "campaign.data"
]
},
{
diff --git a/docs/_static/tutorials/Simple single objective.html b/docs/_static/tutorials/Simple single objective.html
index ef1bce2..8ce3b70 100644
--- a/docs/_static/tutorials/Simple single objective.html
+++ b/docs/_static/tutorials/Simple single objective.html
@@ -7531,7 +7531,7 @@
-
c:\ProgramData\Anaconda3\envs\obsidian\lib\site-packages\tqdm\auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html
+c:\Users\kevin\miniconda3\envs\obsidian-pypi\lib\site-packages\tqdm\auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html
from .autonotebook import tqdm as notebook_tqdm
@@ -7539,7 +7539,7 @@
@@ -7567,8 +7567,8 @@
In [3]:
@@ -7804,7 +7805,7 @@