{"id":22848681,"url":"https://github.com/code-str8/churn-prediction-ml-app","last_synced_at":"2025-04-14T08:06:58.252Z","repository":{"id":222342515,"uuid":"756920941","full_name":"Code-str8/churn-prediction-ml-app","owner":"Code-str8","description":"Making a machine learning application using Streamlit to predict customer churn in a telecommunications company. ","archived":false,"fork":false,"pushed_at":"2024-03-14T18:26:49.000Z","size":9526,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-14T08:06:25.754Z","etag":null,"topics":["machinelearning","python","sql","streamlit"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Code-str8.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-13T15:10:26.000Z","updated_at":"2024-06-02T07:25:45.000Z","dependencies_parsed_at":"2025-02-06T10:38:46.338Z","dependency_job_id":null,"html_url":"https://github.com/Code-str8/churn-prediction-ml-app","commit_stats":null,"previous_names":["code-str8/churn-prediction-ml-app"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Code-str8%2Fchurn-prediction-ml-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Code-str8%2Fchurn-prediction-ml-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Code-str8%2Fchurn-prediction-ml-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Code-str8%2Fchurn-prediction-ml-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Code-str8","download_url":"https://codeload.github.com/Code-str8/churn-prediction-ml-app/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248843822,"owners_count":21170488,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["machinelearning","python","sql","streamlit"],"created_at":"2024-12-13T04:13:49.497Z","updated_at":"2025-04-14T08:06:58.219Z","avatar_url":"https://github.com/Code-str8.png","language":"Python","readme":"\n\n\n\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003e\u003cb\u003e✨Churn-Prediction-ML-app\u003c/b\u003e\u003c/h1\u003e\n\u003c/div\u003e\n\n\n\n### 📘Table of Contents\n1. [Setup](#setup)\n2. [Running the App](#running-the-app)\n3. [Usage](#usage)\n    - [Welcome Page](#welcome-page)\n    - [Login Page](#login-page)\n    - [Data Page](#data-page)\n    - [Predictor Page](#predictor-page)\n    - [Dashboard Page](#dashboard-page)\n    - [History Page](#history-page)\n4. [Models Used](#models-used)\n5. [Deployment](#deployment)\n6. [Further Development](#further-development)\n7. [Contributing](#contributing)\n8. [License](#license)\n\n\n# 📱➡️ Churn Predictor \u003ca name=\"about-project\"\u003e\u003c/a\u003e\n\n**Churn Predictor** a machine learning application using Streamlit to predict customer churn in a telecommunications company. This tool leverages predictive analytics to identify potential churners among subscribers. With Streamlit's interactive interface, stakeholders can easily explore churn prediction results, enabling proactive measures to retain customers\n\nFeatures\n1. **Gender**: Whether the customer is a male or a female\n2. **SeniorCitizen**: Employee attrition status\n3. **Partner**: Whether the customer has a partner or not (Yes, No);\n4. **Dependents**: Whether the customer has dependents or not (Yes, No);\n5. **Tenure**: Number of months the customer has stayed with the company;\n6. **PhoneService**: Whether the customer has phone service or not (Yes, No);\n7. **MultipleLines**: Whether the customer has multiple lines;\n8. **InternetService**: Customer’s internet service provider (DSL, Fiber Optic, No);\n9. **OnlineSecurity**: Whether the customer has online security or not (Yes, No, No Internet);\n10. **OnlineBackup**: Whether the customer has online backup or not (Yes, No, No Internet);\n11. **DeviceProtection**: Whether the customer has device protection or not (Yes, No, No internet service);\n12. **TechSupport**: Whether the customer has tech support or not (Yes, No, No internet);\n13. **StreamingTV**: Whether the customer has streaming TV or not (Yes, No, No internet service);\n14. **StreamingMovies**: Whether the customer has streaming movies or not (Yes, No, No Internet service);\n15. **Contract**: The contract term of the customer (Month-to-Month, One year, Two year);\n16. **PaperlessBilling**: Whether the customer has paperless billing or not (Yes, No);\n17. **PaymentMethod**: The customer’s payment method (Electronic check, Mailed check, Bank transfer(automatic), Credit card(automatic));\n18. **MonthlyCharges**: The amount charged to the customer monthly;\n19. **TotalCharges**: The total amount charged to the customer;\n20. **Churn**: Whether the customer churned or not (Yes or No).\n\n### Setup🔧 \u003ca name=\"setup\"\u003e\u003c/a\u003e\n \n1. **Clone Repository**: Clone the repository containing the Streamlit app code.\n2. **Install Dependencies**: Install the required dependencies using pip.\n3. **Data Setup**: Ensure you have a CSV dataset named `Lp2_df_coc.xlsx` placed inside a folder named `dataset` in the project directory.\n \n### 💻 Running the App \u003ca name=\"running-the-app\"\u003e\u003c/a\u003e\n\n### Prerequisites\n\nIn order to run this project you need:\n\n- Python\n- Streamlit\n \nTo run the app locally, execute the following command in the project directory:\n \n```bash\nstreamlit run 1_Welcome.py\n```\n \nThe app will start running locally and can be accessed through a web browser.\n \n### Usage \u003ca name=\"usage\"\u003e\u003c/a\u003e\n### Tech Stack  \n\u003cdetails\u003e\n  \u003csummary\u003eGUI\u003c/summary\u003e\n  \u003cul\u003e\n    \u003cli\u003e\u003ca href=\"\"\u003eStreamlit\u003c/a\u003e\u003c/li\u003e\n  \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eDatabase\u003c/summary\u003e\n  \u003cul\u003e\n    \u003cli\u003e\u003ca href=\"\"\u003eMicrosoft SQL Server\u003c/a\u003e\u003c/li\u003e\n  \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eLanguage\u003c/summary\u003e\n  \u003cul\u003e\n    \u003cli\u003e\u003ca href=\"\"\u003ePython\u003c/a\u003e\u003c/li\u003e\n  \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eModel\u003c/summary\u003e\n  \u003cul\u003e\n    \u003cli\u003e\u003ca href=\"\"\u003eSklearn\u003c/a\u003e\u003c/li\u003e\n  \u003c/ul\u003e\n\u003c/details\u003e\n\n#### Welcome Page \u003ca name=\"welcome-page\"\u003e\u003c/a\u003e\n- Provides an overview of the app and its purpose.\n\n ![Image](https://github.com/Code-str8/churn-prediction-ml-app/blob/main/assets/images/churn%20app%20ss%201.PNG)\n\n \n#### Login Page \u003ca name=\"login-page\"\u003e\u003c/a\u003e\n- New Users: Enter username and password to log in.\n- Credential: Username=admin and password=Admin01.\n\n  \n \n#### 📚 Data Page \u003ca name=\"data-page\"\u003e\u003c/a\u003e\n- Displays basic information about the dataset.\n- Shows summary statistics of numerical variables.\n- Provides the first few rows of the dataset.\n- Conducts univariate and bivariate analysis.\n- Presents additional analysis using pandas styling.\n\n  ![Image](https://github.com/Code-str8/churn-prediction-ml-app/blob/main/assets/images/churn%20app%20ss%202.PNG)\n \n#### 🔮 Predict Page \u003ca name=\"predictor-page\"\u003e\u003c/a\u003e\n- Online Prediction: Input customer details interactively to predict churn.\n\n   ![Image](https://github.com/Code-str8/churn-prediction-ml-app/blob/main/assets/images/churn%20app%20ss%204.PNG)\n \n#### 📊 Dashboard Page \u003ca name=\"dashboard-page\"\u003e\u003c/a\u003e\n- Provides visualizations and analytics related to customer churn.\n- Includes research questions and key performance indicators.\n- Offers insights through various charts and plots.\n\n  ![Image](https://github.com/Code-str8/churn-prediction-ml-app/blob/main/assets/images/churn%20app%20ss%203.PNG)\n \n#### ⏳ History Page \u003ca name=\"history-page\"\u003e\u003c/a\u003e\n- Tracks user interactions with the app.\n- Displays a history log of actions performed by the user.\n- Allows navigating back to previous points in history.\n\n  ![Image](https://github.com/Code-str8/churn-prediction-ml-app/blob/main/assets/images/churn%20app%20ss%205.PNG)\n \n### Models Used \u003ca name=\"models-used\"\u003e\u003c/a\u003e\n \n#### Supported Models\n1. Logistic Regression\n2. CatBoost\n \n#### Description\n- Logistic Regression: Supervised machine learning algorithm used for classification tasks.\n- CatBoost: Implementation of gradient boosted decision trees designed for speed and performance.\n \n#### Model Training\n- Data Preprocessing\n- Pipeline Creation\n- Model Training\n- Evaluation\n \n#### Model Selection\n- User Choice\n- Performance Comparison\n \n### 🎉Deployment \u003ca name=\"deployment\"\u003e\u003c/a\u003e\n \n- Streamlit: [Streamlit app](https://churn-prediction-ml-appgi-cacbbyzjm6uzakkyu2xgdk.streamlit.app/History)\n- Render: [Render app](https://churn-predictor-app.onrender.com)\n \n### Further Development \u003ca name=\"further-development\"\u003e\u003c/a\u003e\n \n- Model Tuning\n- Model Expansion\n- Model Monitoring\n\n## 👥 Authors\n\n🕵🏽‍♀️ **Alexander Ndunda**\n\n- GitHub: [GitHub Profile](https://github.com/Code-str8)\n- Medium: [Medium Handle](https://medium.com/@Codestr8)\n- LinkedIn: [LinkedIn Profile](https://linkedin.com/in/alexandernyambongo)\n\n \n### 💡Contributing \u003ca name=\"contributing\"\u003e\u003c/a\u003e\n \nContributions are welcome! If you have any suggestions, feature requests, or bug reports, please open an issue or create a pull request.\n \n### 🔐 License \u003ca name=\"license\"\u003e\u003c/a\u003e\n \nThis project is licensed under the [MIT](LICENSE). Feel free to use, modify, and distribute the code for personal and commercial purposes.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcode-str8%2Fchurn-prediction-ml-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcode-str8%2Fchurn-prediction-ml-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcode-str8%2Fchurn-prediction-ml-app/lists"}