Optimising chemical reactions using machine learning

Overview

Summit

summit_banner

Documentation Status PyPI

Summit is a set of tools for optimising chemical processes. We’ve started by targeting reactions.

What is Summit?

Currently, reaction optimisation in the fine chemicals industry is done by intuition or design of experiments. Both scale poorly with the complexity of the problem.

Summit uses recent advances in machine learning to make the process of reaction optimisation faster. Essentially, it applies algorithms that learn which conditions (e.g., temperature, stoichiometry, etc.) are important to maximising one or more objectives (e.g., yield, enantiomeric excess). This is achieved through an iterative cycle.

Summit has two key features:

  • Strategies: Optimisation algorithms designed to find the best conditions with the least number of iterations. Summit has eight strategies implemented.
  • Benchmarks: Simulations of chemical reactions that can be used to test strategies. We have both mechanistic and data-driven benchmarks.

To get started, see the Quick Start below or follow our tutorial.

Installation

To install summit, use the following command:

pip install summit

News

Quick Start

Below, we show how to use the Nelder-Mead strategy to optimise a benchmark representing a nucleophlic aromatic substitution (SnAr) reaction.

# Import summit
from summit.benchmarks import SnarBenchmark
from summit.strategies import NelderMead, MultitoSingleObjective
from summit.run import Runner

# Instantiate the benchmark
exp = SnarBenchmark()

# Since the Snar benchmark has two objectives and Nelder-Mead is single objective, we need a multi-to-single objective transform
transform = MultitoSingleObjective(
    exp.domain, expression="-sty/1e4+e_factor/100", maximize=False
)

# Set up the strategy, passing in the optimisation domain and transform
nm = NelderMead(exp.domain, transform=transform)

# Use the runner to run closed loop experiments
r = Runner(
    strategy=nm, experiment=exp,max_iterations=50
)
r.run()

Documentation

The documentation for summit can be found here.

Issues?

Submit an issue or send an email to [email protected].

Citing

If you find this project useful, we encourage you to

  • Star this repository
  • Cite our paper.
@article{Felton2021,
author = "Kobi Felton and Jan Rittig and Alexei Lapkin",
title = "{Summit: Benchmarking Machine Learning Methods for Reaction Optimisation}",
year = "2021",
month = "2",
url = "https://chemistry-europe.onlinelibrary.wiley.com/doi/full/10.1002/cmtd.202000051",
journal = "Chemistry Methods"
}
Comments
  • Lack of max python version in Summit 0.8.4

    Lack of max python version in Summit 0.8.4

    • Operating System: Arch
    • Python version: 3.10.6
    • summit version used: 0.8.4

    Description

    I installed Summit via pip and the system installed 0.8.4 even if 0.8.6 is the latest release. I suppose this happened due to the fact that in the sources of 0.8.4 there is no indication that Python 3.10 is not supported yet

    https://github.com/sustainable-processes/summit/blob/a1cecdd41df8119005173b46ac45fb22472628d6/pyproject.toml#L14

    while this is present in the sources of 0.8.5 and 0.8.6. This caused the installation of incompatible versions of BoTorch and GPyTorch resulting in messages like this:

    Requirement already satisfied: botorch<0.6.0,>=0.5.0 in /usr/lib/python3.10/site-packages (from summit) (0.5.1)
    Requirement already satisfied: gpytorch<2.0.0,>=1.3.0 in /usr/lib/python3.10/site-packages (from summit) (1.9.0)
    [...]
    Python 3.10.6 (main, Aug  3 2022, 17:39:45) [GCC 12.1.1 20220730] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> from summit.benchmarks import SnarBenchmark
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/usr/lib/python3.10/site-packages/summit/__init__.py", line 19, in <module>
        from summit.run import *
      File "/usr/lib/python3.10/site-packages/summit/run.py", line 1, in <module>
        from summit.strategies import Strategy, strategy_from_dict
      File "/usr/lib/python3.10/site-packages/summit/strategies/__init__.py", line 9, in <module>
        from .multitask import MTBO, STBO
      File "/usr/lib/python3.10/site-packages/summit/strategies/multitask.py", line 6, in <module>
        from botorch.acquisition import ExpectedImprovement as EI
      File "/usr/lib/python3.10/site-packages/botorch/__init__.py", line 7, in <module>
        from botorch import (
      File "/usr/lib/python3.10/site-packages/botorch/acquisition/__init__.py", line 7, in <module>
        from botorch.acquisition.acquisition import (
      File "/usr/lib/python3.10/site-packages/botorch/acquisition/acquisition.py", line 18, in <module>
        from botorch.models.model import Model
      File "/usr/lib/python3.10/site-packages/botorch/models/__init__.py", line 7, in <module>
        from botorch.models.cost import AffineFidelityCostModel
      File "/usr/lib/python3.10/site-packages/botorch/models/cost.py", line 16, in <module>
        from botorch.models.deterministic import DeterministicModel
      File "/usr/lib/python3.10/site-packages/botorch/models/deterministic.py", line 20, in <module>
        from botorch.models.model import Model
      File "/usr/lib/python3.10/site-packages/botorch/models/model.py", line 19, in <module>
        from botorch.models.utils import fantasize as fantasize_flag
      File "/usr/lib/python3.10/site-packages/botorch/models/utils.py", line 23, in <module>
        from gpytorch.utils.broadcasting import _mul_broadcast_shape
    ImportError: cannot import name '_mul_broadcast_shape' from 'gpytorch.utils.broadcasting' (/usr/lib/python3.10/site-packages/gpytorch/utils/broadcasting.py)
    

    The incompatibility is mentioned here: https://github.com/pytorch/botorch/issues/1370

    Adding a maximum Python version in the old Summit releases should fix.

    Thanks for your work.

    opened by ilario 12
  • Add neldermead

    Add neldermead

    I added the Nelder-Mead Simplex algorithm to strategies (#18). Therefore, I've adapted the Nelder-Mead code from the scipy-optmize package to make it usable for sequential requests.

    Also, the modifications proposed by Cortes-Borda et al. in terms of reflecting points, dimension reduction and dimension recovery are implemented. These modifications increase the chance of finding optimal conditions that are close to the predefined bounds of the variables.

    Constraints are treated within the suggest_experiments method of the Nelder-Mead strategy. Suggested points that violate the constraints are penalized with a function value of ininity (for minimization problems) and the algorithm is called again. Note that if more than one point is suggested by the algorithm, only the points that meet the constraints are returned. Points that violate the constraints are then stored temporarily and read in (again with an associated infinity value) the next time the algorithm is called.

    Note that the number of suggested points can vary for different iterations of the algorithm and one iteration requires at least 2 squential function evalutions, hence one call of the Nelder-Mead algorithm does not correspond to one iteration.

    One 2D (Himmelblau function) and one 3D (Hartmann function) application of the Nelder-Mead strategy are implemented in tests/test_strategies.py. The results are plotted, whereby each point corresponds to a suggested point that meets the constraints and connected points indicate the resulting simplex of one iteration.

    opened by jangerit 8
  • Snobfit fix bugs

    Snobfit fix bugs

    I've fixed issues #28 and #29. This includes:

    • return correct number of suggested experiments, also for small number of requested experiments per batch;
    • transform maximization problems to minimization problems within SNOBFIT.

    Update (13/05/2020):

    • r̵e̵t̵u̵r̵n̵ ̵c̵o̵r̵r̵e̵c̵t̵ ̵n̵u̵m̵b̵e̵r̵ ̵o̵f̵ ̵s̵u̵g̵g̵e̵s̵t̵e̵d̵ ̵e̵x̵p̵e̵r̵i̵m̵e̵n̵t̵s̵,̵ ̵a̵l̵s̵o̵ ̵f̵o̵r̵ ̵s̵m̵a̵l̵l̵ ̵n̵u̵m̵b̵e̵r̵ ̵o̵f̵ ̵r̵e̵q̵u̵e̵s̵t̵e̵d̵ ̵e̵x̵p̵e̵r̵i̵m̵e̵n̵t̵s̵ ̵p̵e̵r̵ ̵b̵a̵t̵c̵h̵;̵
    • adjust snobfit strategy to return varying number of suggested experiments;
    • add more tests for different <number_experiments> of requested experiments (1,2,4) and make <num_iter> and <max_stop> a function of <number_experiments>;
    • transform maximization problems to minimization problems within SNOBFIT.
    opened by jangerit 7
  • run.py avoid writing to disk by default

    run.py avoid writing to disk by default

    • Operating System: Arch Linux
    • Python version: 3.10.8
    • summit version used: 0.8.8

    Description

    The default location for saving stuff is not writable, on my system. And the default behavior is to save stuff on disk. In my opinion, by default, no stuff should be saved, neither temporarily, unless it is actually unavoidable.

    This causes this error on my system:

    PermissionError                           Traceback (most recent call last)
    Cell In[37], line 4
          2 rNMadaptive_20220301 = Runner(strategy=strategyNMadaptive, experiment=emul_constr_20220301, max_iterations=20)
          3 rNMadaptive_20220301.reset()
    ----> 4 rNMadaptive_20220301.run(prev_res=starting_points_20220301)
    
    File /home/ilario/.venv/lib/python3.10/site-packages/summit/run.py:145, in Runner.run(self, **kwargs)
        143 save_dir = pathlib.Path(save_dir) / "runner" / str(self.uuid_val)
        144 if not os.path.isdir(save_dir):
    --> 145     os.makedirs(save_dir)
        146 save_at_end = kwargs.get("save_at_end", True)
        148 n_objs = len(self.experiment.domain.output_variables)
    
    File /usr/lib/python3.10/os.py:215, in makedirs(name, mode, exist_ok)
        213 if head and tail and not path.exists(head):
        214     try:
    --> 215         makedirs(head, exist_ok=exist_ok)
        216     except FileExistsError:
        217         # Defeats race condition when another thread created the path
        218         pass
    
    File /usr/lib/python3.10/os.py:215, in makedirs(name, mode, exist_ok)
        213 if head and tail and not path.exists(head):
    ...
        227     # Cannot rely on checking for EEXIST, since the operating system
        228     # could give priority to other errors like EACCES or EROFS
        229     if not exist_ok or not path.isdir(name):
    
    PermissionError: [Errno 13] Permission denied: '/usr/bin/.summit'
    

    A possible solution is to specify the save_dir path in the run command like:

    rNM_20220301.run(prev_res=starting_points_20220301, save_dir="~")
    

    But what I would expect is that if save_freq is unset it does not save any file at all, rather than creating it and deleting it.

    In order to do so, the lines to be changed are these ones:

    https://github.com/sustainable-processes/summit/blob/a5e4d0ca848bf3b4c794f2975bc1790e21b0343d/summit/run.py#L144-L145

    https://github.com/sustainable-processes/summit/blob/a5e4d0ca848bf3b4c794f2975bc1790e21b0343d/summit/run.py#L178-L181

    https://github.com/sustainable-processes/summit/blob/a5e4d0ca848bf3b4c794f2975bc1790e21b0343d/summit/run.py#L202-L204

    https://github.com/sustainable-processes/summit/blob/a5e4d0ca848bf3b4c794f2975bc1790e21b0343d/summit/run.py#L343-L344

    https://github.com/sustainable-processes/summit/blob/a5e4d0ca848bf3b4c794f2975bc1790e21b0343d/summit/run.py#L402-L408

    https://github.com/sustainable-processes/summit/blob/a5e4d0ca848bf3b4c794f2975bc1790e21b0343d/summit/run.py#L430-L435

    What I Did

    python -m venv .venv     
    source .venv/bin/activate
    pip install -U summit
    

    Open VSCodium and indicate to use .venv as an environment.

    Run some summit stuff.

    opened by ilario 5
  • Fix TSEMO

    Fix TSEMO

    This is a PR for tracking improvements to TSEMO (issue #2). It is a work in progress.

    I've made one change to the hypervolume reference, but I think it's still not the same as the Bradford paper.

    • [x] Test functions (DTLZ2, vmlop)
    • [x] Correct reference based on Bradford et al.
    • [x] Set up spectral sampling
    • [x] Do some ablation experiments on fixed vs ideal-anti-ideal difference and random rate.
    opened by marcosfelt 5
  • Non-existing module entmoot.optimizer

    Non-existing module entmoot.optimizer

    Summit 0.8.7

    Testing ENTMOOT I observed this error:

    ModuleNotFoundError: No module named 'entmoot'
    

    caused by this line:

    https://github.com/sustainable-processes/summit/blob/249751d57c3603fda99437b35656a1d78e2f0371/summit/strategies/entmoot.py#L253

    opened by ilario 4
  • Experimental emulator

    Experimental emulator

    This PR adds an experimental emulator (data-driven virtual experiment) to Summit.

    The emulator is a BNN predicting experimental outcomes (e.g. yield) given the inputs (i.e., the conditions) of an experiment. It is included in benchmarks.

    The following workflow describes the way to build such an emulator:

    • In the folder summit/benchmarks/experiment_emulator:
      1. upload dataset to the ./data folder with real experimental data
      2. create a loading procedure in experimental_datasets.py that returns inputs and outcomes of the experiments in the uploaded dataset (c.f. load_reizman_suzuki())
      3. set up BNN parameters (e.g. dataset, input dimension, prediction objective, hyperparameters, saving location) and data transformation (e.g.transform discrete variables to one-hot vectors) in bnn.py
      4. run python bnn.py -> The final BNN model parameters will be saved in ./trained_models and the emulator training is finished.
    • In the folder summit/benchmarks: Create a benchmark with the inputs and outputs of the dataset the BNN emulator was trained on. Thereby, set up a BNN model similar to the trained BNN and load the parameters of the trained model (c.f. reizman_suzuki_emulator.py). -> The emulator is now ready for use and acts like a virtual experiment.

    Further regression techniques, like ANNs, can be implemented analogously according to the workflow described above.

    Emulators included in this PR are based on the data for a Suzuki-Miyaura cross coupling reaction (#25) obtained from the SI of the paper published by Reizman et al. (2016).

    opened by jangerit 4
  • Numpy issue in strategies

    Numpy issue in strategies

    • Operating System: Windows 10 Home Version 21H2 Build 19044.1645
    • Python version: 3.10
    • summit version used: 0.8.4
    • Using pycharm

    Description

    Was testing out the strategies module and ran into issues with numpy

    What I Did

    scratch.py

    from summit import * import numpy as np

    domain = Domain()

    domain += ContinuousVariable(name="x_0", description="reaction temperature in celsius", bounds=[50, 100])

    domain += ContinuousVariable(name="x_1", description="flow of reactant a in mL/min", bounds=[0.1, 0.5])

    domain += ContinuousVariable(name="y_0", description="yield", bounds=[0.1, 0.5], is_objective=True, maximize=True)

    domain += ContinuousVariable(name="y_1", description="cost", bounds=[0.1, 0.5], is_objective=True, maximize=True)

    strategy = LHS(domain, random_state=np.random.RandomState(3))

    results = strategy.suggest_experiments(5)

    strategy_lhs = LHS(domain, random_state=np.random.RandomState(3)) results = strategy.suggest_experiments(5) print(results)

    strategy_tsemo = TSEMO(domain) experiments = strategy_tsemo.suggest_experiments(5) print(experiments)

    Error message:

    "C:\Users\njose\Dropbox (Cambridge CARES)\Python\idmt_codeshare\pyflab_CURRENT\venv\Scripts\python.exe" "C:/Users/njose/Dropbox (Cambridge CARES)/Python/idmt_codeshare/pyflab_CURRENT/scratch.py" C:\Users\njose\Dropbox (Cambridge CARES)\Python\idmt_codeshare\pyflab_CURRENT\venv\lib\site-packages\torch_masked_init_.py:223: UserWarning: Failed to initialize NumPy: module compiled against API version 0xf but this version of numpy is 0xe (Triggered internally at ..\torch\csrc\utils\tensor_numpy.cpp:68.) example_input = torch.tensor([[-3, -2, -1], [0, 1, 2]]) Traceback (most recent call last): File "C:\Users\njose\Dropbox (Cambridge CARES)\Python\idmt_codeshare\pyflab_CURRENT\scratch.py", line 25, in strategy = LHS(domain, random_state=np.random.RandomState(3)) NameError: name 'np' is not defined

    Process finished with exit code 1

    opened by njoseGIT 3
  • pip install summit fails with python 3.10 due to requirements

    pip install summit fails with python 3.10 due to requirements

    • Operating System: Windows 10
    • Python version: 3.10
    • summit version used: pypi version (0.8.3)

    Description

    Was trying to install summit through anaconda for python 3.10 but recieved a ResolutionImpossible error. Succeeded when installing summit with python version 3.7.

    What I Did

    conda create -n test_summit_310 python=3.10
    conda activate test_summit_310
    pip install summit
    
    ....
    
    ERROR: Cannot install summit==0.5.0, summit==0.6.0, summit==0.8.0, summit==0.8.1, summit==0.8.2 and summit==0.8.3 because these package versions have conflicting dependencies.
    
    The conflict is caused by:
        summit 0.8.3 depends on scikit-learn<0.25.0 and >=0.24.1
        summit 0.8.2 depends on scikit-learn<0.25.0 and >=0.24.1
        summit 0.8.1 depends on scikit-learn<0.25.0 and >=0.24.1
        summit 0.8.0 depends on scikit-learn<0.25.0 and >=0.24.1
        summit 0.6.0 depends on gryffin<0.2.0 and >=0.1.1
        summit 0.5.0 depends on numpy==1.18.0
    
    To fix this you could try to:
    1. loosen the range of package versions you've specified
    2. remove package versions to allow pip attempt to solve the dependency conflict
    
    ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/user_guide/#fixing-conflicting-dependencies
    
    opened by ddceruti 3
  • TSEMO error

    TSEMO error

    • Operating System: Windows 10
    • Python version: Python 3.7.10 through anaconda
    • summit version used: 0.8.0rc1

    Description

    I'm trying to optimize a chemical rection with 8 inputs and 9 objectives through the TSEMO strategy. However when I use the runner to run closed loop optimisation obtained an error.

    image

    or when I applied the transform the issue I got was image

    Do you know how i can solve this issue? Thank you very much

    opened by AFilipaAlmeida 3
  • Error encountered when running multitask bayesian optimization

    Error encountered when running multitask bayesian optimization

    • Operating System: Ubuntu 16.04
    • Python version: 3.7
    • summit version used: 0.8.0

    Description

    Hi @marcosfelt, thanks for sharing the awesome work! I have encountered an error when I was trying to deploy multitask bayesian optimization on my own task.

    Basically when I tried to call the suggest_experiments function, it raises error like this:

      File "obj_funcs/mtbo_transfer_summit.py", line 184, in <module>
        mtbo_transfer(100, pretrain_data)
      File "obj_funcs/mtbo_transfer_summit.py", line 161, in mtbo_transfer
        result = mtbo.suggest_experiments(num_experiments=1, prev_res=prev_res)
      File "/home/bizon/anaconda3/envs/primitive/lib/python3.7/site-packages/summit/strategies/multitask.py", line 138, in suggest_experiments
        fit_gpytorch_model(mll)
      File "/home/bizon/anaconda3/envs/primitive/lib/python3.7/site-packages/botorch/fit.py", line 126, in fit_gpytorch_model
        mll, _ = optimizer(mll, track_iterations=False, **kwargs)
      File "/home/bizon/anaconda3/envs/primitive/lib/python3.7/site-packages/botorch/optim/fit.py", line 247, in fit_gpytorch_scipy
        callback=cb,
      File "/home/bizon/anaconda3/envs/primitive/lib/python3.7/site-packages/scipy/optimize/_minimize.py", line 620, in minimize
        callback=callback, **options)
      File "/home/bizon/anaconda3/envs/primitive/lib/python3.7/site-packages/scipy/optimize/lbfgsb.py", line 308, in _minimize_lbfgsb
        finite_diff_rel_step=finite_diff_rel_step)
      File "/home/bizon/anaconda3/envs/primitive/lib/python3.7/site-packages/scipy/optimize/optimize.py", line 262, in _prepare_scalar_function
        finite_diff_rel_step, bounds, epsilon=epsilon)
      File "/home/bizon/anaconda3/envs/primitive/lib/python3.7/site-packages/scipy/optimize/_differentiable_functions.py", line 136, in __init__
        self._update_fun()
      File "/home/bizon/anaconda3/envs/primitive/lib/python3.7/site-packages/scipy/optimize/_differentiable_functions.py", line 226, in _update_fun
        self._update_fun_impl()
      File "/home/bizon/anaconda3/envs/primitive/lib/python3.7/site-packages/scipy/optimize/_differentiable_functions.py", line 133, in update_fun
        self.f = fun_wrapped(self.x)
      File "/home/bizon/anaconda3/envs/primitive/lib/python3.7/site-packages/scipy/optimize/_differentiable_functions.py", line 130, in fun_wrapped
        return fun(x, *args)
      File "/home/bizon/anaconda3/envs/primitive/lib/python3.7/site-packages/scipy/optimize/optimize.py", line 74, in __call__
        self._compute_if_needed(x, *args)
      File "/home/bizon/anaconda3/envs/primitive/lib/python3.7/site-packages/scipy/optimize/optimize.py", line 68, in _compute_if_needed
        fg = self.fun(x, *args)
      File "/home/bizon/anaconda3/envs/primitive/lib/python3.7/site-packages/botorch/optim/utils.py", line 219, in _scipy_objective_and_grad
        raise e  # pragma: nocover
      File "/home/bizon/anaconda3/envs/primitive/lib/python3.7/site-packages/botorch/optim/utils.py", line 212, in _scipy_objective_and_grad
        output = mll.model(*train_inputs)
      File "/home/bizon/anaconda3/envs/primitive/lib/python3.7/site-packages/gpytorch/models/exact_gp.py", line 257, in __call__
        res = super().__call__(*inputs, **kwargs)
      File "/home/bizon/anaconda3/envs/primitive/lib/python3.7/site-packages/gpytorch/module.py", line 28, in __call__
        outputs = self.forward(*inputs, **kwargs)
      File "/home/bizon/anaconda3/envs/primitive/lib/python3.7/site-packages/botorch/models/multitask.py", line 167, in forward
        covar = covar_x.mul(covar_i)
      File "/home/bizon/anaconda3/envs/primitive/lib/python3.7/site-packages/gpytorch/lazy/lazy_tensor.py", line 1162, in mul
        return self._mul_matrix(lazify(other))
      File "/home/bizon/anaconda3/envs/primitive/lib/python3.7/site-packages/gpytorch/lazy/lazy_tensor.py", line 506, in _mul_matrix
        return NonLazyTensor(self.evaluate() * other.evaluate())
      File "/home/bizon/anaconda3/envs/primitive/lib/python3.7/site-packages/gpytorch/utils/memoize.py", line 59, in g
        return _add_to_cache(self, cache_name, method(self, *args, **kwargs), *args, kwargs_pkl=kwargs_pkl)
      File "/home/bizon/anaconda3/envs/primitive/lib/python3.7/site-packages/gpytorch/lazy/lazy_tensor.py", line 906, in evaluate
        res = self.matmul(eye)
      File "/home/bizon/anaconda3/envs/primitive/lib/python3.7/site-packages/gpytorch/lazy/interpolated_lazy_tensor.py", line 402, in matmul
        right_interp_res = left_t_interp(self.right_interp_indices, self.right_interp_values, tensor, base_size)
      File "/home/bizon/anaconda3/envs/primitive/lib/python3.7/site-packages/gpytorch/utils/interpolation.py", line 230, in left_t_interp
        summing_matrix = cls(summing_matrix_indices, summing_matrix_values, size)
    RuntimeError: size is inconsistent with indices: for dim 1, size is 1 but found index 1
    

    Here is how I call the function:

    mtbo = MTBO(
            domain=domain,
            pretraining_data=pretraining_data,
            task=1,
            )
    
    result = mtbo.suggest_experiments(num_experiments=1, prev_res=prev_res)
    

    The pretraining_data and prev_res are all wrapped as DataSet format. Here is what the concatenation of pretraining_data and prev_res looks like:

    new data: 
    NAME approach_stiffness_trans approach_stiffness_ang  ... strategy     task
    TYPE                     DATA                   DATA  ... METADATA METADATA
    0                   37.500000             112.500000  ...      LHS        1
    1                  112.500000              37.500000  ...      LHS        1
    0                  109.855384             146.133033  ...     MTBO        1
    1                   17.365006              95.320634  ...     MTBO        1
    2                   88.126421              49.029255  ...     MTBO        1
    ..                        ...                    ...  ...      ...      ...
    495                  1.076072             137.851873  ...     MTBO        1
    496                 34.013880             108.785283  ...     MTBO        1
    497                 30.227277             112.787455  ...     MTBO        1
    498                 79.603186             126.381992  ...     MTBO        1
    499                 54.544665             103.928718  ...     MTBO        1
    

    I'm wondering if that's the correct way to construct the previous results and pretraining data from other tasks. Could you share some insights on how to debug this? Thank you very much!

    opened by wuzheng-sjtu 3
  • Bump setuptools from 65.3.0 to 65.5.1

    Bump setuptools from 65.3.0 to 65.5.1

    Bumps setuptools from 65.3.0 to 65.5.1.

    Changelog

    Sourced from setuptools's changelog.

    v65.5.1

    Misc ^^^^

    • #3638: Drop a test dependency on the mock package, always use :external+python:py:mod:unittest.mock -- by :user:hroncok
    • #3659: Fixed REDoS vector in package_index.

    v65.5.0

    Changes ^^^^^^^

    • #3624: Fixed editable install for multi-module/no-package src-layout projects.
    • #3626: Minor refactorings to support distutils using stdlib logging module.

    Documentation changes ^^^^^^^^^^^^^^^^^^^^^

    • #3419: Updated the example version numbers to be compliant with PEP-440 on the "Specifying Your Project’s Version" page of the user guide.

    Misc ^^^^

    • #3569: Improved information about conflicting entries in the current working directory and editable install (in documentation and as an informational warning).
    • #3576: Updated version of validate_pyproject.

    v65.4.1

    Misc ^^^^

    • #3613: Fixed encoding errors in expand.StaticModule when system default encoding doesn't match expectations for source files.
    • #3617: Merge with pypa/distutils@6852b20 including fix for pypa/distutils#181.

    v65.4.0

    Changes ^^^^^^^

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump wheel from 0.37.1 to 0.38.1

    Bump wheel from 0.37.1 to 0.38.1

    Bumps wheel from 0.37.1 to 0.38.1.

    Changelog

    Sourced from wheel's changelog.

    Release Notes

    UNRELEASED

    • Updated vendored packaging to 22.0

    0.38.4 (2022-11-09)

    • Fixed PKG-INFO conversion in bdist_wheel mangling UTF-8 header values in METADATA (PR by Anderson Bravalheri)

    0.38.3 (2022-11-08)

    • Fixed install failure when used with --no-binary, reported on Ubuntu 20.04, by removing setup_requires from setup.cfg

    0.38.2 (2022-11-05)

    • Fixed regression introduced in v0.38.1 which broke parsing of wheel file names with multiple platform tags

    0.38.1 (2022-11-04)

    • Removed install dependency on setuptools
    • The future-proof fix in 0.36.0 for converting PyPy's SOABI into a abi tag was faulty. Fixed so that future changes in the SOABI will not change the tag.

    0.38.0 (2022-10-21)

    • Dropped support for Python < 3.7
    • Updated vendored packaging to 21.3
    • Replaced all uses of distutils with setuptools
    • The handling of license_files (including glob patterns and default values) is now delegated to setuptools>=57.0.0 (#466). The package dependencies were updated to reflect this change.
    • Fixed potential DoS attack via the WHEEL_INFO_RE regular expression
    • Fixed ValueError: ZIP does not support timestamps before 1980 when using SOURCE_DATE_EPOCH=0 or when on-disk timestamps are earlier than 1980-01-01. Such timestamps are now changed to the minimum value before packaging.

    0.37.1 (2021-12-22)

    • Fixed wheel pack duplicating the WHEEL contents when the build number has changed (#415)
    • Fixed parsing of file names containing commas in RECORD (PR by Hood Chatham)

    0.37.0 (2021-08-09)

    • Added official Python 3.10 support
    • Updated vendored packaging library to v20.9

    ... (truncated)

    Commits
    • 6f1608d Created a new release
    • cf8f5ef Moved news item from PR #484 to its proper place
    • 9ec2016 Removed install dependency on setuptools (#483)
    • 747e1f6 Fixed PyPy SOABI parsing (#484)
    • 7627548 [pre-commit.ci] pre-commit autoupdate (#480)
    • 7b9e8e1 Test on Python 3.11 final
    • a04dfef Updated the pypi-publish action
    • 94bb62c Fixed docs not building due to code style changes
    • d635664 Updated the codecov action to the latest version
    • fcb94cd Updated version to match the release
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • SNOBFIT randomly fails

    SNOBFIT randomly fails

    • Operating System: Arch Linux
    • Python version: 3.10.8
    • summit version used: 0.8.8

    Description

    It did not use to happen, likely it started due to the new version of everything that I am using.

    When I ask for suggested_experiments to SNOBFIT, it some times gives me the answers and some times it gives an error, and this happens repeating exactly this same code:

    strategySNOBFIT = SNOBFIT(domain_constr)
    strategySNOBFIT.reset()
    strategySNOBFIT.suggest_experiments(2, prev_res=prev_res_extreme)
    

    the more experiments I require, the more likely it is to fail.

    This is the error:

    ---------------------------------------------------------------------------
    IndexError                                Traceback (most recent call last)
    Cell In[75], line 2
          1 strategySNOBFIT.reset()
    ----> 2 strategySNOBFIT.suggest_experiments(2, prev_res=prev_res_extreme)
    
    File /home/ilario/.venv/lib/python3.10/site-packages/summit/strategies/snobfit.py:142, in SNOBFIT.suggest_experiments(self, num_experiments, prev_res, **kwargs)
        140 while not valid_next_experiments and c_iter < inner_iter_tol:
        141     valid_next_experiments = False
    --> 142     next_experiments, xbest, fbest, param = self._inner_suggest_experiments(
        143         num_experiments=num_experiments,
        144         prev_res=prev_res,
        145         prev_param=inner_prev_param,
        146     )
        147     # Invalid experiments hidden from data returned to user but stored internally elswehere
        148     invalid_experiments = next_experiments.loc[
        149         next_experiments[("constraint", "DATA")] == False
        150     ]
    
    File /home/ilario/.venv/lib/python3.10/site-packages/summit/strategies/snobfit.py:337, in SNOBFIT._inner_suggest_experiments(self, num_experiments, prev_res, prev_param)
        334 dx = (bounds[:, 1] - bounds[:, 0]) * self._dx_dim
        336 # Run SNOBFIT for one iteration
    --> 337 request, xbest, fbest, param = self.snobfit(x0, y0, config, dx, prev_param)
        339 # Generate DataSet object with variable values of next experiments
        340 next_experiments = {}
    
    File /home/ilario/.venv/lib/python3.10/site-packages/summit/strategies/snobfit.py:609, in SNOBFIT.snobfit(self, x, f, config, dx, prev_param)
        607     fnan = numpy.concatenate((fnan, ind.flatten()))
        608 if fnan.size > 0:
    --> 609     f = snobnan(fnan, f, near, inew)
        611 fbest, jbest = min_(f[:, 0])
        612 xbest = x[jbest]
    
    File /home/ilario/.venv/lib/python3.10/site-packages/SQSnobFit/_snobnan.py:78, in snobnan(fnan, f, near, inew)
         75          ind1 = numpy.concatenate((ind1, [i]), 0)
         77 if ind1.size > 0:
    ---> 78     ind = numpy.delete(ind, ind1, 0)
         80 if ind.size <= 0:
         81     f[l,0] = fmx + 1.e-3*(fmx-fmn)
    
    File <__array_function__ internals>:180, in delete(*args, **kwargs)
    
    File /home/ilario/.venv/lib/python3.10/site-packages/numpy/lib/function_base.py:5128, in delete(arr, obj, axis)
       5126 else:
       5127     keep = ones(N, dtype=bool)
    -> 5128     keep[obj,] = False
       5130 slobj[axis] = keep
       5131 new = arr[tuple(slobj)]
    
    IndexError: arrays used as indices must be of integer (or boolean) type
    

    What I Did

    python -m venv .venv     
    source .venv/bin/activate
    pip install -U summit
    

    This installed these versions of the Python packages:

    GPy-1.10.0 SQCommon-0.3.2 SQSnobFit-0.4.5 attrs-22.1.0 autograd-1.5 botorch-0.7.3 cma-2.7.0 contourpy-1.0.6 cycler-0.11.0 cython-0.29.32 decorator-5.1.1 fastprogress-0.2.6 fonttools-4.38.0 future-0.18.2 gpyopt-1.2.6 gpytorch-1.9.0 h5py-3.7.0 iniconfig-1.1.1 joblib-1.2.0 kiwisolver-1.4.4 linear-operator-0.2.0 llvmlite-0.38.1 matplotlib-3.6.2 multipledispatch-0.6.0 numba-0.55.2 numpy-1.22.4 nvidia-cublas-cu11-11.10.3.66 nvidia-cuda-nvrtc-cu11-11.7.99 nvidia-cuda-runtime-cu11-11.7.99 nvidia-cudnn-cu11-8.5.0.96 opt-einsum-3.3.0 packaging-21.3 pandas-1.5.2 paramz-0.9.5 pillow-9.3.0 pluggy-1.0.0 py-1.11.0 pymoo-0.4.2.2 pyparsing-3.0.9 pyrff-2.0.2 pyro-api-0.1.2 pyro-ppl-1.8.3 pytest-6.2.5 python-dateutil-2.8.2 pytz-2022.6 scikit-learn-1.1.3 scipy-1.9.3 six-1.16.0 skorch-0.9.0 summit-0.8.8 tabulate-0.9.0 threadpoolctl-3.1.0 toml-0.10.2 torch-1.13.0 tqdm-4.64.1 typing-extensions-4.4.0 wheel-0.38.4

    Open VSCodium and indicate to use .venv as an environment.

    Run some summit stuff.

    opened by ilario 1
  • Update botorch

    Update botorch

    See if that gets rid of these warnings

    ../../../Library/Caches/pypoetry/virtualenvs/summit-TfmmV07p-py3.8/lib/python3.8/site-packages/gpytorch/utils/cholesky.py:14
    ../../../Library/Caches/pypoetry/virtualenvs/summit-TfmmV07p-py3.8/lib/python3.8/site-packages/gpytorch/utils/cholesky.py:14
    ../../../Library/Caches/pypoetry/virtualenvs/summit-TfmmV07p-py3.8/lib/python3.8/site-packages/gpytorch/utils/cholesky.py:14
    ../../../Library/Caches/pypoetry/virtualenvs/summit-TfmmV07p-py3.8/lib/python3.8/site-packages/gpytorch/utils/cholesky.py:14
    ../../../Library/Caches/pypoetry/virtualenvs/summit-TfmmV07p-py3.8/lib/python3.8/site-packages/gpytorch/utils/cholesky.py:14
    ../../../Library/Caches/pypoetry/virtualenvs/summit-TfmmV07p-py3.8/lib/python3.8/site-packages/gpytorch/utils/cholesky.py:14
    ../../../Library/Caches/pypoetry/virtualenvs/summit-TfmmV07p-py3.8/lib/python3.8/site-packages/gpytorch/utils/cholesky.py:14
       /Users/Kobi/Library/Caches/pypoetry/virtualenvs/summit-TfmmV07p-py3.8/lib/python3.8/site-packages/gpytorch/utils/cholesky.py:14: DeprecationWarning:gpytorch.utils.cholesky.psd_safe_cholesky is deprecated. Use linear_operator.utils.cholesky.psd_safe_cholesky instead.
    
    ../../../Library/Caches/pypoetry/virtualenvs/summit-TfmmV07p-py3.8/lib/python3.8/site-packages/gpytorch/utils/errors.py:15
    ../../../Library/Caches/pypoetry/virtualenvs/summit-TfmmV07p-py3.8/lib/python3.8/site-packages/gpytorch/utils/errors.py:15
       /Users/Kobi/Library/Caches/pypoetry/virtualenvs/summit-TfmmV07p-py3.8/lib/python3.8/site-packages/gpytorch/utils/errors.py:15: DeprecationWarning:gpytorch.utils.errors.NotPSDError has been deprecated. Use linear_operator.utils.error.NotPSDError instead.
    
    opened by marcosfelt 0
  • Update skorch

    Update skorch

    • Operating System:
    • Python version:
    • summit version used:

    Description

    Describe what you were trying to get done. Tell us what happened, what went wrong, and what you expected to happen.

    What I Did

    Paste the command(s) you ran and the output.
    
    opened by marcosfelt 0
  • Get optimal point and estimated values at arbitrary points

    Get optimal point and estimated values at arbitrary points

    Thanks for the very nice software!

    We are using it for the optimization of the synthesis of a catalyst (the objective is the activity of the catalyst).

    I was wondering if two things are possible:

    • get the estimated optimum position from a model. I managed to get the software to suggest new experiments, but I cannot get the estimated location of the best point.
    • probe the model at arbitrary points (for plotting the model as heatmaps, for example, see the plots in Figure 8 here: https://pubs.acs.org/doi/10.1021/acsnano.8b04726 ).

    In order to have that, I suppose that there could be a function returning the model, so that the user can interact with it directly and fetch this information.

    opened by ilario 4
Releases(0.8.8)
  • 0.8.8(Dec 2, 2022)

    What's Changed

    • Fix SOBO issue by @marcosfelt in https://github.com/sustainable-processes/summit/pull/204
    • Update README example by @marcosfelt in https://github.com/sustainable-processes/summit/pull/202
    • Bump oauthlib from 3.2.0 to 3.2.1 by @dependabot in https://github.com/sustainable-processes/summit/pull/206
    • Format parity_plot correctly by @marcosfelt in https://github.com/sustainable-processes/summit/pull/210
    • Bump joblib from 1.1.0 to 1.2.0 by @dependabot in https://github.com/sustainable-processes/summit/pull/209
    • Small edits in the docs by @ilario in https://github.com/sustainable-processes/summit/pull/211
    • Check emulator objectives by @marcosfelt in https://github.com/sustainable-processes/summit/pull/205
    • Bump protobuf from 3.20.1 to 3.20.2 by @dependabot in https://github.com/sustainable-processes/summit/pull/208
    • Updating pandas and numpy API usage by @marcosfelt in https://github.com/sustainable-processes/summit/pull/215
    • TSEMO no samples by @marcosfelt in https://github.com/sustainable-processes/summit/pull/218
    • Improve TSEMO categorical by @marcosfelt in https://github.com/sustainable-processes/summit/pull/220
    • Bump version to 0.8.8 by @marcosfelt in https://github.com/sustainable-processes/summit/pull/221

    New Contributors

    • @ilario made their first contribution in https://github.com/sustainable-processes/summit/pull/211

    Full Changelog: https://github.com/sustainable-processes/summit/compare/0.8.7...0.8.8

    Source code(tar.gz)
    Source code(zip)
  • 0.8.7(Sep 8, 2022)

  • 0.8.6(Jul 30, 2022)

  • 0.8.5(Apr 26, 2022)

    What's Changed

    Bug Fixes 🐛

    • Fix issue with MTBO rounding errors (#164)
    • Remove support for python 3.10 until pytorch supports python 3.10
    Source code(tar.gz)
    Source code(zip)
  • 0.8.0(Apr 17, 2021)

    Denali Mountain

    This verison comes with new optimization strategies as well as improvements to existing functionality. You can install it using pip:

    pip install --upgrade summit
    

    Below are some highlights!

    Multitask Bayesian Optimization Strategy

    mtbo strategy code

    Multitask models have been shown to improve performance of things like drug activity and site selectivity. We extended this concept to accelerate reaction optimization in a paper published in the NeurIPs ML4 Molecules workshop last year (see the code for the paper here). This functionality is encapsulated in the MTBO strategy. The strategy works by taking data from one reaction optimization and using it to help with another.

    ENTMOOT Strategy

    ENTMOOT is a technique that uses gradient boosted tree models inside a bayesian optimization loop. @jezsadler of Ruth Misener's research group kindly contributed a new strategy based on their original code. It is currently an experimental feature.

    Improvements to TSEMO

    TSEMO is the best performing strategy in Summit for multiobjective optimization, but it previously had issues with robustness. We changed from GPy to GPytorch for the implementation of gaussian processes (GPs), which resolved this issue. Additionally, TSEMO documentation was improved and more metadata about the GP hyperparameters were added to the return of suggest_experiments.

    Overhaul of the Experimental Emulator

    carbon (3)

    The ExperimentalEmulator enables you to create new benchmarks based on experimental data. Underneath the hood, a machine learning model is trained, which predicts the outcomes of a reaction given the reaction conditions. The code for ExperimentalEmulator was simplified using Skorch, an extension to scikit-learn that works with pytorch. See this tutorial to learn how to create your own benchmark.

    Deprecation of Gryffin

    Gryffin is a strategy for optimization mixed categorical-continuous domains. This enables things like selecting catalysts when descriptors are not available. Unfortunately, there were repeated issues with installing Gryffin, so we removed it. Similar functionality can be achieved with the SOBO or MTBO strategy.

    Other performance improvements and bug fixes

    • Some imports were inlined to improve startup performance of Summit
    • The dependency list was trimmed. We hope to improve this further by removing the need for GPy and GPyOpt and relying solely on GPytorch and BOtorch.
    • and many more!
    Source code(tar.gz)
    Source code(zip)
  • 0.8.0rc1(Mar 8, 2021)

    • Replace GPy with GpyTorch (#94)
    • Improve documentation of TSEMO (#93) and the ExperimentalEmulator (#101)
    • Add the ability to use descriptors in the ExperimentalEmulator (#100 and #101)
    Source code(tar.gz)
    Source code(zip)
  • 0.8.0rc0(Feb 19, 2021)

    This is a pre-release of Denali, our newest update to Summit. Key features include:

    • New Multitask strategy as in Multi-task Bayesian Optimization of Chemical Reactions (see #80)
    • New ENTMOOT optimization strategy from this paper (#77)
    • A refactor of the ExperimentalEmulator to use skorch (see #89)
    • Deprecation of Gryffin (this is not final and might change before the full release)
    • Trimming down of dependencies and faster imports due to better dependency management (see #87)

    The docs still need to be updated to include the two new strategies and properly explain the changes to ExperimentalEmulator.

    Source code(tar.gz)
    Source code(zip)
  • 0.5.0(Sep 6, 2020)

  • 0.4.0(Jun 10, 2020)

  • 0.2.2(Oct 23, 2019)

  • 0.2.0(Oct 22, 2019)

  • 0.1-alpha(Aug 20, 2019)

Owner
Sustainable Reaction Engineering Group
Software developed by the Sustainable Reaction Engineering group at the University of Cambridge
Sustainable Reaction Engineering Group
Python-based Informatics Kit for Analysing Chemical Units

INSTALLATION Python-based Informatics Kit for the Analysis of Chemical Units Step 1: Make a conda environment: conda create -n pikachu python=3.9 cond

null 47 Dec 23, 2022
A Python Automated Machine Learning tool that optimizes machine learning pipelines using genetic programming.

Master status: Development status: Package information: TPOT stands for Tree-based Pipeline Optimization Tool. Consider TPOT your Data Science Assista

Epistasis Lab at UPenn 8.9k Dec 30, 2022
Scripts of Machine Learning Algorithms from Scratch. Implementations of machine learning models and algorithms using nothing but NumPy with a focus on accessibility. Aims to cover everything from basic to advance.

Algo-ScriptML Python implementations of some of the fundamental Machine Learning models and algorithms from scratch. The goal of this project is not t

Algo Phantoms 81 Nov 26, 2022
Machine Learning From Scratch. Bare bones NumPy implementations of machine learning models and algorithms with a focus on accessibility. Aims to cover everything from linear regression to deep learning.

Machine Learning From Scratch About Python implementations of some of the fundamental Machine Learning models and algorithms from scratch. The purpose

Erik Linder-Norén 21.8k Jan 9, 2023
Vowpal Wabbit is a machine learning system which pushes the frontier of machine learning with techniques such as online, hashing, allreduce, reductions, learning2search, active, and interactive learning.

This is the Vowpal Wabbit fast online learning code. Why Vowpal Wabbit? Vowpal Wabbit is a machine learning system which pushes the frontier of machin

Vowpal Wabbit 8.1k Jan 6, 2023
This is a Machine Learning Based Hand Detector Project, It Uses Machine Learning Models and Modules Like Mediapipe, Developed By Google!

Machine Learning Hand Detector This is a Machine Learning Based Hand Detector Project, It Uses Machine Learning Models and Modules Like Mediapipe, Dev

Popstar Idhant 3 Feb 25, 2022
Objective of the repository is to learn and build machine learning models using Pytorch. 30DaysofML Using Pytorch

30 Days Of Machine Learning Using Pytorch Objective of the repository is to learn and build machine learning models using Pytorch. List of Algorithms

Mayur 119 Nov 24, 2022
Patient-Survival - Using Python, I developed a Machine Learning model using classification techniques such as Random Forest and SVM classifiers to predict a patient's survival status that have undergone breast cancer surgery.

Patient-Survival - Using Python, I developed a Machine Learning model using classification techniques such as Random Forest and SVM classifiers to predict a patient's survival status that have undergone breast cancer surgery.

Nafis Ahmed 1 Dec 28, 2021
Intrusion Detection System using ensemble learning (machine learning)

IDS-ML implementation of an intrusion detection system using ensemble machine learning methods Data set This project is carried out using the UNSW-15

null 4 Nov 25, 2022
Codes for realizing theories learned from Data Mining, Machine Learning, Deep Learning without using the present Python packages.

Codes-for-Algorithms Codes for realizing theories learned from Data Mining, Machine Learning, Deep Learning without using the present Python packages.

Tracy (Shengmin) Tao 1 Apr 12, 2022
An open source machine learning library for performing regression tasks using RVM technique.

Introduction neonrvm is an open source machine learning library for performing regression tasks using RVM technique. It is written in C programming la

Siavash Eliasi 33 May 31, 2022
Knowledge Management for Humans using Machine Learning & Tags

HyperTag HyperTag helps humans intuitively express how they think about their files using tags and machine learning.

Ravn Tech, Inc. 165 Nov 4, 2022
Pneumonia Detection using machine learning - with PyTorch

Pneumonia Detection Pneumonia Detection using machine learning. Training was done in colab: DEMO: Result (Confusion Matrix): Data I uploaded my datase

Wilhelm Berghammer 12 Jul 7, 2022
Providing the solutions for high-frequency trading (HFT) strategies using data science approaches (Machine Learning) on Full Orderbook Tick Data.

Modeling High-Frequency Limit Order Book Dynamics Using Machine Learning Framework to capture the dynamics of high-frequency limit order books. Overvi

Chang-Shu Chung 1.3k Jan 7, 2023
Algorithmic trading using machine learning.

Algorithmic Trading This machine learning algorithm was built using Python 3 and scikit-learn with a Decision Tree Classifier. The program gathers sto

Sourav Biswas 101 Nov 10, 2022
Scripts for training an AI to play the endless runner Subway Surfers using a supervised machine learning approach by imitation and a convolutional neural network (CNN) for image classification

About subwAI subwAI - a project for training an AI to play the endless runner Subway Surfers using a supervised machine learning approach by imitation

null 82 Jan 1, 2023
Painting app using Python machine learning and vision technology.

AI Painting App We are making an app that will track our hand and helps us to draw from that. We will be using the advance knowledge of Machine Learni

Badsha Laskar 3 Oct 3, 2022
Using machine learning to predict and analyze high and low reader engagement for New York Times articles posted to Facebook.

How The New York Times can increase Engagement on Facebook Using machine learning to understand characteristics of news content that garners "high" Fa

Jessica Miles 0 Sep 16, 2021