Skip to content

GorkemCin/Machine_Learning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 

Repository files navigation

👨‍💻 Görkem Cin

Machine Learning & Data Science

📍 Türkiye


🧠 Machine Learning Projects

This repository contains end-to-end Machine Learning projects covering both
Supervised and Unsupervised Learning approaches, built with real-world datasets and structured for learning, experimentation, and portfolio presentation.


🔹 Supervised Learning Portfolio

Models & Topics:

  • Linear & Multiple Linear Regression
  • K-Nearest Neighbors (KNN)
  • Decision Tree
  • Random Forest

Focus:

  • Classification & Regression problems
  • Feature engineering & preprocessing
  • Model evaluation and interpretation

📁 Folder: Machine_Learning/supervised/


🔸 Unsupervised Learning Portfolio

Models & Topics:

  • K-Means Clustering

Focus:

  • Customer Segmentation
  • Pattern discovery
  • Distance-based learning
  • Data scaling & cluster interpretation

📁 Folder: Machine_Learning/unsupervised/


📚 İçindekiler / Table of Contents

🔹 Supervised Learning Projects

🔹 Unsupervised Learning Projects


📊 Projects Overview / Proje Genel Bakışı

This repository contains a structured portfolio of Supervised and Unsupervised Machine Learning projects, focusing on end-to-end workflows from data preprocessing to model interpretation.

Bu repo, veri ön işleme aşamasından model yorumlamaya kadar uçtan uca süreçleri içeren Gözetimli (Supervised) ve Gözetimsiz (Unsupervised) makine öğrenmesi projelerini barındırır.


🧠 Supervised Learning Projects

🧩 Project 🔬 Technique / Metot 📌 Description / Açıklama ✅ Status
🌿 Project 1: Multiple Linear Regression Regression Predicting student performance using multiple numerical features.
Çoklu değişkenler kullanılarak öğrenci performansı tahmini.
✔ Completed
🏠 Project 2: K-Nearest Neighbors (KNN) Classification House price classification (low/high) using KNN algorithm.
Ev fiyatlarının (düşük/yüksek) KNN ile sınıflandırılması.
✔ Completed
🌳 Project 3: Decision Tree Classifier Classification Predicting drug class based on medical attributes using Decision Trees.
Tıbbi özelliklere göre ilaç sınıfı tahmini.
✔ Completed
🌲 Project 4: Random Forest Classifier Classification Binary classification with hyperparameter tuning using GridSearchCV.
GridSearchCV ile optimize edilmiş Random Forest modeli.
✔ Completed

🔍 Unsupervised Learning Projects

🧩 Project 🔬 Technique / Metot 📌 Description / Açıklama ✅ Status
🧠 Project 5: K-Means Clustering Clustering (Unsupervised) Customer segmentation using K-Means based on Age, Annual Income and Spending Score.
Yaş, gelir ve harcama skoruna göre müşteri segmentasyonu.
✔ Completed

🎯 Summary / Özet

  • 📊 Supervised Learning: Regression & classification problems with full ML pipelines
  • 🧠 Unsupervised Learning: Customer segmentation and clustering analysis
  • 🧰 Libraries: pandas, numpy, scikit-learn, matplotlib, seaborn
  • 🔍 Focus on EDA, preprocessing, modeling, evaluation, and interpretation

This portfolio demonstrates a solid foundation in machine learning concepts with practical, real-world datasets.
Bu portföy, gerçek dünya veri setleri üzerinde uygulamalı ve sistematik bir makine öğrenmesi yaklaşımını yansıtmaktadır.


🧠 Supervised Learning Projects

Gözetimli Öğrenme Projeleri

Bu bölümde etiketli (labeled) veriler kullanılarak geliştirilen regresyon ve sınıflandırma projeleri yer almaktadır.


🌳 Project 1: Multiple Linear Regression / Proje 1: Çoklu Doğrusal Regresyon

🎯 Problem Tanımı / Problem Definition

Bu projede, öğrenci performans verileri üzerinden çoklu doğrusal regresyon (Multiple Linear Regression) uygulanarak bir tahmin modeli geliştirilmiştir.
In this project, a prediction model has been built by applying Multiple Linear Regression on student performance data.


🔍 Kullanılan Konular / Topics Covered

  • 🔹 Veri temizleme / Data Cleaning
  • 🔹 Eksik verilerle başa çıkma / Handling missing data
  • 🔹 Özellik seçimi / Feature Selection
  • 🔹 Çoklu doğrusal regresyon / Multiple Linear Regression
  • 🔹 Model değerlendirme / Model Evaluation
  • 🔹 Hata metrikleri: MAE, MSE, RMSE, R²

🧪 Kullanılan Teknolojiler / Technologies Used

  • Python
  • Pandas
  • NumPy
  • scikit-learn
  • Matplotlib
  • seaborn
  • Jupyter Notebook

🏡 Project 2: K-Nearest Neighbors (KNN) / Proje 2: K-En Yakın Komşu (KNN)

📊 Problem Tanımı / Problem Definition

Bu projede House Prices veri seti kullanılarak, evlerin fiyatlarının düşük (0) veya yüksek (1) olarak sınıflandırılması amaçlanmıştır.
Amacımız, KNN algoritması ile ev fiyatlarını sınıflandırmak ve modelin başarımını değerlendirmektir.

In this project, the House Prices dataset is used to classify houses as either low (0) or high (1) priced.
The goal is to apply the KNN algorithm to classify house prices and evaluate the model performance.


📚 Kullanılan Konular / Topics Covered

  • Veri temizleme / Data Cleaning
  • Eksik verilerle başa çıkma / Handling Missing Data
  • Kategorik verilerin sayısallaştırılması / Categorical Encoding (TargetEncoder)
  • Özelliklerin ölçeklenmesi / Feature Scaling (StandardScaler)
  • KNN algoritması ile sınıflandırma / Classification with KNN
  • Model değerlendirme metrikleri / Model Evaluation Metrics
    • Accuracy, Precision, Recall, F1-score
    • Confusion Matrix

🛠️ Kullanılan Teknolojiler / Technologies Used

  • Python
  • Pandas
  • NumPy
  • scikit-learn
  • category_encoders
  • Matplotlib
  • Seaborn
  • Jupyter Notebook

💊 Project 3: Decision Tree Classifier / Proje 3: Karar Ağacı Sınıflandırıcı

🧩 Problem Tanımı / Problem Definition

Bu projede, ilaç sınıflandırması (drug classification) veri seti kullanılarak, hastaların yaş, tansiyon (BP), kolesterol, sodyum-potasyum oranı (Na_to_K) gibi özelliklerine göre alacakları ilacın (drugA, drugB, drugC, drugX, drugY) tahmin edilmesi amaçlanmıştır. Amaç, Decision Tree algoritması ile ilaç sınıflarını yüksek doğrulukla tahmin etmek ve modelin performansını değerlendirmektir.

In this project, we use a drug classification dataset to predict which drug a patient should receive based on features such as age, blood pressure (BP), cholesterol, and sodium-potassium ratio (Na_to_K). The objective is to classify drugs using a Decision Tree algorithm and evaluate the model’s performance.


📘 Kullanılan Konular / Topics Covered

  • Veri keşfi (EDA) / Exploratory Data Analysis
  • Veri görselleştirme / Data Visualization
  • Veri temizleme ve ön işleme / Data Cleaning & Preprocessing
  • Kategorik verilerin dönüştürülmesi / Categorical Encoding
  • Eğitim–test ayrımı / Train-Test Split
  • Decision Tree modeli kurulumu / Building a Decision Tree Classifier
  • Hiperparametre optimizasyonu / Hyperparameter Tuning (GridSearchCV)
  • Model değerlendirme / Model Evaluation
  • Accuracy, Precision, Recall, F1-score
  • Eğitim–test performans karşılaştırması
  • Confusion Matrix
  • Decision Tree görselleştirme

🛠 Kullanılan Teknolojiler / Technologies Used

  • Python
  • Pandas
  • NumPy
  • scikit-learn
  • Matplotlib
  • Seaborn
  • Jupyter Notebook

🎯 Projenin Kısa Özeti / Short Summary of the Project

Bu çalışmada, Decision Tree algoritması kullanılarak hastalara uygun ilaç sınıfının tahmini yapılmıştır. Veri ön işleme, model eğitimi, GridSearchCV ile hiperparametre optimizasyonu ve performans değerlendirme adımları uygulanmıştır. Optimizasyon sonrası model hem eğitim hem test verisinde yüksek doğruluk göstermiştir.

In this study, the Decision Tree algorithm is applied to predict the appropriate drug class for patients. Data preprocessing, model training, hyperparameter tuning with GridSearchCV, and performance evaluation steps were performed. The optimized model achieved high accuracy on both training and test sets.


🌲 Project 4: Random Forest Classification / Proje 4: Random Forest Sınıflandırma

🎯 Problem Tanımı / Problem Definition

Bu projede, medikal veriler kullanılarak Random Forest Classification algoritması ile ikili sınıflandırma problemi çözülmüştür. Amaç, bireylerin hedef sınıfa ait olup olmadığını doğru şekilde tahmin eden güçlü ve genellenebilir bir model geliştirmektir.

In this project, a Random Forest Classification model is built using medical data to solve a binary classification problem. The goal is to develop a robust and well-generalizing model that accurately predicts whether an individual belongs to the target class.


🔍 Kullanılan Konular / Topics Covered

  • Veri analizi ve ön işleme / Exploratory Data Analysis (EDA)
  • Eksik veri kontrolü / Missing value handling
  • Kategorik değişken kodlama / Categorical encoding
  • Özellik mühendisliği / Feature engineering
  • Random Forest Classification
  • Model değerlendirme / Model evaluation
  • Confusion Matrix & Classification Report
  • Feature Importance analizi
  • Hyperparameter Tuning (GridSearchCV)
  • Baseline vs Optimized model karşılaştırması

🧪 Kullanılan Teknolojiler / Technologies Used

  • Python
  • Pandas
  • NumPy
  • scikit-learn
  • Matplotlib
  • Seaborn
  • Jupyter Notebook

📊 Model Değerlendirme / Model Evaluation

  • Accuracy
  • Precision
  • Recall
  • F1-score
  • Confusion Matrix
  • Cross-Validation (CV) Accuracy

🏁 Sonuç & Değerlendirme / Conclusion

Bu çalışmada Random Forest modeli, baseline ayarlarla dahi güçlü ve dengeli bir performans sergilemiştir (~%88 accuracy). GridSearchCV ile yapılan hiperparametre optimizasyonu sonucunda test performansında anlamlı bir artış gözlemlenmemiştir. Bu durum, başlangıç modelinin zaten iyi genelleme yapan ve overfitting riski düşük bir yapıya sahip olduğunu göstermektedir.

Sonuç olarak, hiperparametre optimizasyonu her zaman performans artışı sağlamasa da, modelin doğru ayarlarla çalıştığını doğrulamak ve en iyi parametre kombinasyonunu güvenle seçmek açısından önemli bir adımdır.

In conclusion, although hyperparameter tuning did not significantly improve test performance, it confirmed that the baseline Random Forest model was already well-optimized and robust.


🔍 Unsupervised Learning Projects

Gözetimsiz Öğrenme Projeleri

Bu bölümde etiketlenmemiş (unlabeled) veriler üzerinde yapılan kümeleme ve keşifsel analiz projeleri bulunmaktadır.


🌐 Project 5: K-Means Clustering / Proje 5: K-Means Kümeleme

🎯 Problem Tanımı / Problem Definition

Bu projede, etiketsiz müşteri verileri kullanılarak K-Means Clustering algoritması ile müşteri segmentasyonu gerçekleştirilmiştir.
Amaç, müşterileri benzer davranış ve özelliklerine göre gruplandırarak anlamlı segmentler elde etmektir.

In this project, customer segmentation is performed using the K-Means clustering algorithm on unlabeled data.
The goal is to group customers based on similar characteristics and spending behavior.


🔍 Kullanılan Konular / Topics Covered

  • Veri analizi ve ön işleme / Exploratory Data Analysis (EDA)
  • Özellik seçimi / Feature selection
  • Veri ölçeklendirme / Feature scaling (StandardScaler)
  • K-Means Clustering
  • Optimal küme sayısı belirleme / Choosing optimal K (Elbow Method)
  • Küme etiketleme / Cluster labeling
  • Küme dağılım analizi / Cluster size analysis
  • 2D & 3D küme görselleştirme / Cluster visualization
  • Küme yorumlama ve segment analizi / Cluster interpretation

🧪 Kullanılan Teknolojiler / Technologies Used

  • Python
  • Pandas
  • NumPy
  • Scikit-learn
  • Matplotlib
  • Seaborn
  • Jupyter Notebook

📊 Model Değerlendirme / Model Evaluation

Bu projede gözetimsiz öğrenme kullanıldığı için klasik accuracy gibi metrikler yerine:

  • Küme dağılımı (Cluster sizes)
  • Küme merkezleri (Centroids)
  • Görsel ayrışma (2D & 3D plots)
  • Segmentlerin iş anlamlılığı

üzerinden değerlendirme yapılmıştır.


🧠 Sonuç & Değerlendirme / Conclusion

K-Means algoritması, müşteri verileri üzerinde anlamlı ve dengeli kümeler oluşturmuştur.
Elde edilen segmentler, müşteri davranışlarının farklı gelir ve harcama profilleri üzerinden net biçimde ayrıştığını göstermektedir.

In conclusion, K-Means clustering successfully identified distinct and interpretable customer segments,
demonstrating the effectiveness of unsupervised learning for customer segmentation tasks.

Bu proje, Unsupervised Learning yaklaşımının iş problemlerinde nasıl değer üretebileceğini açıkça ortaya koymaktadır.


📌 Created by Görkem Cin — 2025
⭐ Bu proje kişisel makine öğrenimi portföyümün bir parçasıdır.