This project aims to model customer inertia and price insensitivity in subscription-based industries. The goal is to develop an optimal pricing strategy using reinforcement learning.
- Conduct a literature review on customer inertia and price insensitivity.
- Develop a mathematical model based on the literature.
- Implement the model in a reinforcement learning environment.
- Train and evaluate the model to determine optimal pricing strategies.
-
/src/: Main source directory containing all the code.
-
/models/: Contains mathematical models related to the project.
market_model.py: Implements thecalculate_market_sharefunction and other relevant models.
-
/env/: Contains the environment setup for reinforcement learning.
inertia_env.py: Implements theInertiaEnvclass and related logic.
-
/training/: Contains scripts for training the model.
train.py: Handles the training process and execution of the reinforcement learning model.config.py: Contains configuration settings for training, such as hyperparameters.
-
/utils/: Contains utility functions for reuse across the project.
helpers.py: Includes helper functions for various tasks.
-
main.py: The main entry point for running the simulation or training.
-
-
/data/: Directory for storing data-related files.
- results/: Stores results from training or simulations.
- logs/: Stores log files for tracking the training process.
-
/tests/: Directory for unit tests.
test_market_model.py: Tests for functions inmarket_model.py.test_inertia_env.py: Tests for theInertiaEnvclass.test_training.py: Tests for training scripts.
-
requirements.txt: Lists all dependencies required for the project.
-
README.md: Provides an overview of the project.
-
.gitignore: Specifies files and directories to be ignored by version control.
-
RL.ipynb: Jacob's initial reinforcement learning for customer inertia model.
note: I will likely be using RL.py to run the simulation because Jupyter is very computationally expensive for my computer.