Projects

Applied machine-learning case studies

Technical projects presented as evidence of how I design experiments, evaluate models and report limitations. These are applied projects, not research publications, and their results are predictive, not causal.

More case studies

Further projects

Metrics are reported exactly as documented. Where a project has no public repository, the sources are the CV and the details are correspondingly limited.

Professional role — Data Scientist, PT Dunia Sempurna Teknologi (December 2024 – present)

Content Recommendation System for a Game Catalogue

How can a catalogue of more than 460 games generate personalised recommendations for registered users quickly enough to serve them through a backend API?

Data
Game metadata and categories for a catalogue of 460+ games.
Methods
  • Hybrid recommendation approach combining game metadata, categories and TF–IDF text features
  • Personalised top-3 recommendations for registered users
Metrics
  • Computation time per recommendation
Result
The recommender produces personalised top-3 recommendations with a mean computation time below one millisecond.
My contribution
Leads end-to-end development: defining data contracts, building data pipelines, designing the database and integrating the recommender with a backend API.
Limitations
  • The figures documented here concern speed and scale; measures of recommendation quality (offline ranking metrics or user feedback) are not reported.
Research relevance
An applied example of turning text features and structured metadata into a working system, including the data engineering that surrounds a model.
Tools
  • Python
  • SQL
Independent project

Telecommunication Customer Churn Prediction

Can a compact set of account features predict which telecom customers will churn, and how do resampling and tuning change the comparison between classifiers?

Data
Telco customer-churn dataset: 7,043 customers and 21 columns (1,869 churned, 5,174 retained).
Target
Churn (binary)
Methods
  • Exploratory data analysis and data-quality fixes (blank totals for new customers)
  • One-hot and ordinal encoding
  • Chi-square feature selection
  • SMOTE oversampling of the minority class in the training data
  • Hyperparameter tuning with GridSearchCV
Evaluation design
Stratified 80/20 train–test split; stratified cross-validation for the baseline comparison; tuned models evaluated on the held-out test set.
Models compared
  • Logistic Regression
  • Support Vector Machine
  • Decision Tree
  • Random Forest
  • K-Nearest Neighbours
  • Gaussian Naive Bayes
Metrics
  • ROC-AUC
  • Accuracy
  • F1-score
Result
After tuning, the SVM and Logistic Regression both reached a test ROC-AUC of 0.75; the SVM had the highest F1-score (0.61). Random Forest gained the most from SMOTE and had the highest test accuracy (0.75), but a lower ROC-AUC (0.70).
My contribution
Individual project: analysis, feature engineering, modelling and evaluation.
Limitations
  • Restricting the model to four features favours interpretability over predictive power.
  • Test-set ROC-AUC (0.75) was lower than the cross-validated ROC-AUC of the untuned baseline on the training folds (82.73 for Logistic Regression), which is worth investigating.
  • The model is predictive: it does not show that any feature causes churn.
Research relevance
Practice with imbalanced learning and with keeping preprocessing inside the training split to avoid leakage.
Tools
  • Python
  • Pandas
  • NumPy
  • scikit-learn
  • imbalanced-learn (SMOTE)
  • Matplotlib
  • Seaborn
  • Jupyter
Independent project

Laptop Pricing Analytics and Predictive Modelling

How accurately can supervised regression models estimate laptop prices, and which of several algorithms performs best?

Target
Laptop price
Methods
  • Supervised regression
  • Feature engineering
  • Preprocessing pipelines
Models compared
  • Seven regression algorithms, including XGBRegressor
Metrics
  • R²
  • RMSE
Result
Of the seven algorithms compared, XGBRegressor performed best, with an R² of 0.897 and an RMSE of 225.51.
My contribution
Individual project.
Limitations
  • The dataset, the price currency (and therefore the unit of the RMSE) and the validation split are not documented in the sources used for this site.
Research relevance
Structured-data regression and model comparison.
Tools
  • Python
  • scikit-learn
  • XGBoost