[This article was first published on T. Moudiki's Webpage - R, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.This post describes the R version of Python’s GPopt (https://docs.techtonique.net/GPopt/GPopt.html), a package for‘Bayesian’ optimization of black-box functions and machine learning hyperparameter tuning, using GaussianProcess Regression and other conformalized surrogates. The package is available on GitHub, and through the R universe.Keep in mind that this package is for Machine Learning hyperparameter tuning: the global minimum won’t always be found, but this isn’t an issue, since it means you aren’t overfitting the training set.It’s ported the same way as nnetsauce for R was: with uv tocreate an isolated Python virtual environment containing the Python GPopt package, and reticulate to callinto it from R. Every function in this R package is a thin wrapper that returns the underlying Python object;the general rule is: object accesses with .’s in Python are replaced by $’s in R.See this post for the technique: Finally figured out a way to port python packages to R using uv and reticulate.Install1. Create a Python virtual environment with uv# pip install uv # if necessaryuv venv venvsource venv/bin/activate # on Windows: venv\Scripts\activateuv pip install pip GPoptKeep track of where venv/ lives – you’ll pass its path as venv_path to every function in this package.2. Install the R packageinstall.packages("remotes")remotes::install_github("Techtonique/GPopt_r") reticulate will be installed automatically as a dependency.ExamplesMinimizing the Branin functionThis is a standard test function for optimization algorithms. GPOpt is more suitable for expensive black-box functions, but this is a good example to illustrate the usage of the package.library(GPopt)branin