Part of my data science portfolio - Building a machine learning system for binary classification of SMS messages.
Developing a spam detection system using ML techniques, currently focusing on establishing strong baseline models and evaluation metrics.
This project builds on prior work in text analysis (e.g., Word Cloud Visualization, Travel Blog Analysis) and classification (e.g., SME Closure Prediction). It establishes a solid foundation before diving into more sophisticated techniques, starting with strong baseline models and robust evaluation metrics to develop a deep understanding of the core challenges in classification.
- Python 3.9.13
- Data Processing: Pandas, NumPy
- Machine Learning: Scikit-learn
- NLP: NLTK
- Data Visualization: Matplotlib, Seaborn
/data-science-consulting-solutions
│
├── README.md # Project overview and basic information
├── LICENSE # License file for the project
├── requirements.txt # Python package dependencies
├── vs_code_setup.md # VS Code setup guide
├── notebooks/ # Jupyter notebooks
│ ├── 01_exploratory_analysis/# Exploratory data analysis
│ ├── 02_modeling/ # Model building and training
│ └── 03_evaluation/ # Model evaluation
├── src/ # Source code
│ ├── data/ # Data processing
│ ├── models/ # ML models
│ └── utils/ # Utility functions
├── tests/ # Unit tests
└── docs/ # Documentation
- Implemented initial baseline models (Logistic Regression, Random Forest)
- Basic text preprocessing and feature extraction
- Initial model evaluation completed
- Improve model performance by addressing class imbalance
- Enhance text preprocessing techniques
- Implement feature engineering
- Document findings and insights
- Using the UCI SMS Spam Collection Dataset from Kaggle
- Binary classification: spam vs ham (non-spam) messages
- Create virtual environment
python -m venv spam_detector_env
- Activate virtual environment
# Windows
spam_detector_env\Scripts\activate
# Mac/Linux
source spam_detector_env/bin/activate
- Install dependencies
pip install numpy pandas scikit-learn jupyter
This project is part of my journey to become a data scientist who solves real-world problems through data-driven solutions.