This is Udacity Machine Learning DevOps Engineer Nanodegree personal repo. This contains the projects built in this nanodegree to build DevOps skills required to automate the various aspects and stages of machine learning model building and monitoring.
Project 1: Predict Customer Churn with Clean Code In this project, you will implement your learnings to identify credit card customers that are most likely to churn. The completed project will include a Python package for a machine learning project that follows coding (PEP8) and engineering best practices for implementing software (modular, documented, and tested). The package will also have the flexibility of being run interactively or from the command-line interface (CLI).
This project will give you practice using your skills for testing, logging, and best coding practices from this lesson. It will also introduce you to a problem data scientists across companies face all the time. How do we identify (and later intervene with) customers who are likely to churn?
Project 2: Build an ML Pipeline for Short-term Rental Prices in NYC Consider you are working for a property management company renting rooms and properties for short periods of time on various platforms. You need to estimate the typical price for a given property based on the price of similar properties. Your company receives new data in bulk every week. The model needs to be retrained with the same cadence, necessitating an end-to-end pipeline that can be reused.
In this project you will build such a pipeline, similar to below.
Project 3: Deploying a Machine Learning Model on Heroku with FastAPI In this project, we applied the skills that we have acquired in this course to develop a classification model on publicly available Census Bureau data. We created unit tests to monitor the model performance on various slices of the data. Then, we deployed our model using the FastAPI package and create API tests. Both the slice-validation and the API tests will be incorporated into a CI/CD framework using GitHub Actions as well as used DVC for our data / model versioning.
Project 4: A Dynamic Risk Assessment System In this project we will create, deploy, and monitor a risk assessment ML model that will estimate the attrition risk of each of the company's 10,000 clients. If the model we create and deploy is accurate, it will enable the client managers to contact the clients with the highest risk and avoid losing clients and revenue. Also check for model drift and retrain the model if necessary.