Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introducing Robynpy - Robyn powered by Python. #1183

Merged
merged 331 commits into from
Dec 9, 2024
Merged

Introducing Robynpy - Robyn powered by Python. #1183

merged 331 commits into from
Dec 9, 2024

Conversation

sumane81
Copy link
Contributor

@sumane81 sumane81 commented Dec 8, 2024

Project RobynPy (Beta) - Robyn powered by Python

Robyn in Python
Addressing Challenges with a Multi-Faceted Approach

Our strategy includes:

  • Modular Design: Simplifying user interactions and enhancing maintainability through an abstract API layer and industry design principles.
  • Notebook Integration: Enhancing data analysis and visualization through Jupyter Notebook integration.
  • Community Engagement: Gathering feedback and facilitating community contributions through surveys and abstraction layers.
image

Core Components Layer
The core components layer in this Robyn MMM APIs architecture offers several key benefits through its modular design. By separating functionality into distinct components for data ingestion, modeling, analysis, visualization, and reporting, the architecture enables clear data flow and easier maintenance. Each component can be independently updated or scaled, while the modular structure promotes code reusability and efficient debugging. The layout supports a natural progression from data preprocessing through to final outputs, with dedicated components for quality control and business-focused results like budget allocation. This clean separation of concerns makes the system both technically robust and business-oriented.

Robyn API layer
This interface serves as the primary entry point for end-users, providing a comprehensive set of APIs that require user input throughout the marketing mix modeling workflow. By abstracting away complex backend processes, these APIs simplify user interactions, allowing them to focus on high-level tasks. For instance, the loadData() API encapsulates data ingestion, validation, and preprocessing, eliminating the need for user intervention in these intermediate steps. This streamlined interface enables users to efficiently navigate the workflow, while the underlying system handles intricate details.

Tutorials
With the introduction of the unified API interface, we can revamp and expand our tutorial offerings. The existing tutorial, demo.R/py, will be significantly refined, providing a more streamlined and intuitive learning experience. Furthermore, the abstract APIs will enable us to create a suite of additional tutorials, each focused on specific use cases and scenarios, allowing users to explore the full potential of the marketing mix modeling workflow. This enhanced tutorial framework will cater to diverse user needs, promoting easier adoption and mastery of the system.

sumalreddy17 and others added 17 commits November 22, 2024 10:18
Robyn one pager end to end flow for tutorial 1
* added formatting with black-formatter

* Added 4 new graphs to Pareto Optimizer + bug fixes

* corrected notebooks

* need to set cluster = true if you want bootstrap graph

* Added Pareto utils call to src notebook

---------

Co-authored-by: Dhaval Patel <[email protected]>
…_graph_twice

Fix spend exposure graph twice
* refresh requirements

* update requirements.txt

* cleanup files

* remove user paths
* debug modeling and pareto handoff

* check feature parity for feature engineering

* working modeling code

* update allocator codes to include fixes for mroas and channel spends

* cleared all notebook outputs

* remove suppressed plt close

* update prints to loggers

* update print to loggers

* fix instance logger files

* fix logger
* refactored pareto_optimizer code

* removed unused unit test

---------

Co-authored-by: Dhaval Patel <[email protected]>
…al release (#1173)

* revert ridge modeling to match convergence

* tidy up loggers

* clear notebooks, update gitignore

* remove debug files
* refactored pareto_optimizer code

* removed unused unit test

* Added logging for Pareto module

* cleaned up unused functions and unimplemented code

* cluster loggers

---------

Co-authored-by: Dhaval Patel <[email protected]>
* fix calculate decomp spend dist to use abs calc

* clear notebook outs

* update missing columns
* updated readme for python robyn

* added package version of Robyn R used during python implementation

---------

Co-authored-by: Dhaval Patel <[email protected]>
Moving tutorials into tests and organizing tests
* update visual fixes on notebook

* clear notebook outputs

* remove logger configuration on file levels

* remove unused imports
* update colab notebooks

* update with notebook content

* publish with notebook content

* update notebook code

* update notebooks

* update colab notebooks

* update colab notebooks

* update colab notebooks

* update notebooks

* update colab notebooks
@facebook-github-bot facebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Dec 8, 2024
Copy link
Contributor

@alxlyj alxlyj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me. Synced offline on some of the minor changes regarding release versions and READMEs.

@alxlyj alxlyj self-requested a review December 9, 2024 00:10
@sumane81 sumane81 merged commit 368806e into main Dec 9, 2024
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants