-
Notifications
You must be signed in to change notification settings - Fork 350
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- update all relevant website content for curve calibrator and robynpy - bump up version - adapt curve_type to saturation_reach_hill to account for future options - update maintainers
- Loading branch information
1 parent
bcd0a13
commit 8eb5171
Showing
7 changed files
with
101 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,14 @@ | ||
Package: Robyn | ||
Type: Package | ||
Title: Semi-Automated Marketing Mix Modeling (MMM) from Meta Marketing Science | ||
Version: 3.11.1.9004 | ||
Version: 3.12.0.9000 | ||
Authors@R: c( | ||
person("Gufeng", "Zhou", , "[email protected]", c("aut")), | ||
person("Bernardo", "Lares", , "[email protected]", c("cre","aut")), | ||
person("Leonel", "Sentana", , "[email protected]", c("aut")), | ||
person("Gufeng", "Zhou", , "[email protected]", c("cre", "aut")), | ||
person("Igor", "Skokan", , "[email protected]", c("aut")), | ||
person("Bernardo", "Lares", , "[email protected]", c("aut")), | ||
person("Leonel", "Sentana", , "[email protected]", c("aut")), | ||
person("Meta Platforms, Inc.", role = c("cph", "fnd"))) | ||
Maintainer: Bernardo Lares <laresbernardo@gmail.com> | ||
Maintainer: Gufeng Zhou <gufeng@meta.com> | ||
Description: Semi-Automated Marketing Mix Modeling (MMM) aiming to reduce human bias by means of ridge regression and evolutionary algorithms, enables actionable decision making providing a budget allocation and diminishing returns curves and allows ground-truth calibration to account for causation. | ||
Depends: | ||
R (>= 4.0.0) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,53 @@ | ||
--- | ||
id: robyn-api | ||
title: Robyn API for Python | ||
title: Robyn Python (Beta) | ||
--- | ||
|
||
import useBaseUrl from '@docusaurus/useBaseUrl'; | ||
|
||
Enabling Robyn for Python has been a long-standing ask from the community. Robyn has started as an experimental R package. While we understand the needs of the users, it's difficult to maintain a natively translated Python package during active development on the R-side. | ||
## Alternative 1: Quick start for RobynPy (Beta) | ||
|
||
The Python version of Robyn is rewritten from Robyn's R package version 3.11.1 to Python using object oriented programming principles and modular architecture for a robust solution. It was developed by utilizing various LLMs and AI workflows like Llama. As is common with any AI-based solutions, there may be potential challenges in translating code from one language to another. In this case, we anticipate that there could be some issues in the translation from R to Python. However, we believe in the power of community collaboration and open-source contribution. Therefore, we are opening this project to the community to participate and contribute. Together, we can address and resolve any issues that may arise, enhancing the functionality and efficiency of the Python version of Robyn. We look forward to your contributions and to the continuous improvement of this project. | ||
|
||
|
||
### 1. Installing the package | ||
|
||
Install the latest Robyn Python package version from pypi | ||
``` | ||
pip3 install robynpy | ||
``` | ||
|
||
Install from Github using requirements.txt | ||
``` | ||
pip3 install -r requirements.txt | ||
``` | ||
### 2. Getting started | ||
|
||
The directory `python/src/robyn/tutorials` contains tutorials for most common scenarios. Tutorials use simulated dataset provided in the package. | ||
|
||
### 3. Running end-to-end | ||
|
||
There are two ways of running Python Robyn. | ||
|
||
**Option 1:** | ||
|
||
tutorial1.ipynb is the main notebook that runs the end-to-end flow. It is designed for majority of the users who would prefer a one click solution that runs the robyn flow end-to-end with minimal knowledge of the underlying logic. It should run without any changes required if you wish to use the simulated dataset for testing purposes. | ||
|
||
This notebook uses APIs available in python/src/robyn/robyn.py to set the configs, run feature engineering, run model training, evaluate models with clustering, generate one pagers and perform budget allocation. | ||
|
||
Change any of the configs directly in the notebook and avoid changes to robyn.py for what can be configurable. | ||
|
||
**Option 2:** | ||
|
||
tutorial1_src.ipynb runs the end-to-end flow of robyn python but with a lot more flexibility. It is designed for users who would like to have more control over which modules are and aren't run (ie. skipping clustering/one pager plots/budget allocation etc.). It should run without any changes required if you wish to use the simulated dataset for testing purposes. | ||
|
||
This notebook doesn't use APIs available in python/src/robyn/robyn.py but instead, calls the modules directly with the appropriate parameters. In this way, it is more flexible but still expects the users to understand the underlying logic that may change when using various parameter values. | ||
|
||
## Alternative 2: The Python wrapper | ||
|
||
The idea of a plumber API for Python is originally proposed by [Alex Rowley](https://www.facebook.com/groups/robynmmm/posts/1493036524797809/) from the Robyn community in August 2023. The Robyn team has assessed the proposal that is not only a great work-around for Python users to start with Robyn, but it actually allows API calls from any languages. We're very grateful for the collective wisdom of the open source community. | ||
|
||
#### Robyn API for Python beta release | ||
The first version of the API is released on Nov.22nd 2023 on the [Meta OST summit](https://metaostsummit23.splashthat.com/?fbclid=IwAR1SRBTZGw0GIoaF0XJq_eCWFZsZbyK0KP7P4RLKoee1IVbs8H56so3giwg). This [Jupyter notebook](https://github.com/facebookexperimental/Robyn/blob/main/robyn_api/robyn_python_notebook.ipynb) shows how to call the API from Python. In the beta version, the user needs to have the Robyn R package successfully installed first. We'll work on the migitation of installation friction in the future. | ||
The first version of the API is released on Nov.22nd 2023 on the [Meta OST summit](https://metaostsummit23.splashthat.com/?fbclid=IwAR1SRBTZGw0GIoaF0XJq_eCWFZsZbyK0KP7P4RLKoee1IVbs8H56so3giwg). This [Jupyter notebook](https://github.com/facebookexperimental/Robyn/blob/main/robyn_api/robyn_python_notebook.ipynb) shows how to call the API from Python. In the beta version, the user needs to have the Robyn R package successfully installed first. We'll work on the migitation of installation friction in the future. | ||
|
||
<img alt="Robyn API for Python Architecture" src={useBaseUrl('/img/robyn_api_architecture.png')} /> |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.