NhanPhamThanh-IT
SVM-Diabetes-Prediction
Jupyter Notebook

๐Ÿฉบ Machine Learning diabetes prediction model using Support Vector Machine (SVM) classifier. Analyzes 8 medical features (glucose, BMI, age, etc.) from Pima Indian dataset to predict diabetes risk with 75-80% accuracy. Built with Python, scikit-learn, pandas. Includes data preprocessing, model training, and prediction system for diabetes..

Last updated May 11, 2026
16
Stars
1
Forks
0
Issues
0
Stars/day
Attention Score
2
Language breakdown
No language data available.
โ–ธ Files click to expand
README

๐Ÿฉบ SVM Diabetes Prediction

๐Ÿค– Machine Learning Model for Diabetes Prediction using Support Vector Machine

Predicting diabetes risk using medical indicators with high accuracy SVM classification

Python Machine Learning License Jupyter scikit-learn pandas numpy


๐Ÿ“‹ Table of Contents

๐ŸŽฏ Project Overview

This project implements a Support Vector Machine (SVM) classifier to predict diabetes in patients based on medical diagnostic measurements. The model analyzes various health indicators to determine the likelihood of diabetes, providing a valuable tool for early diagnosis and preventive healthcare.

๐ŸŽฏ Objectives

  • Build an accurate diabetes prediction model using SVM
  • Analyze medical features that contribute to diabetes risk
  • Provide a reliable tool for healthcare screening
  • Demonstrate machine learning applications in medical diagnosis

๐Ÿฅ Medical Significance

  • Early Detection: Helps identify diabetes risk before symptoms appear
  • Preventive Care: Enables timely intervention and lifestyle modifications
  • Healthcare Efficiency: Assists medical professionals in screening processes
  • Data-Driven Decisions: Provides objective risk assessment based on measurable factors

๐Ÿ”ฌ Dataset Information

The project uses the Pima Indian Diabetes Database, a well-known medical dataset for diabetes prediction research.

๐Ÿ“Š Dataset Statistics

  • Total Samples: 768 patients
  • Features: 8 medical predictor variables
  • Target Classes: Binary (Diabetic/Non-Diabetic)
  • Class Distribution:
- Non-Diabetic: 500 instances (65.1%) - Diabetic: 268 instances (34.9%)

๐Ÿฉบ Medical Features

| Feature | Description | Unit | Range | | ---------------------------- | ---------------------------- | ------- | ---------- | | Pregnancies | Number of times pregnant | Count | 0-17 | | Glucose | Plasma glucose concentration | mg/dL | 0-199 | | BloodPressure | Diastolic blood pressure | mmHg | 0-122 | | SkinThickness | Triceps skin fold thickness | mm | 0-99 | | Insulin | 2-Hour serum insulin | mu U/ml | 0-846 | | BMI | Body mass index | kg/mยฒ | 0-67.1 | | DiabetesPedigreeFunction | Diabetes pedigree function | Score | 0.078-2.42 | | Age | Age of patient | Years | 21-81 |

๐ŸŽฏ Target Variable

  • Outcome:
- 0 = Non-Diabetic - 1 = Diabetic

๐Ÿš€ Features

โœจ Core Functionality

  • ๐Ÿ”ฌ Data Preprocessing: Comprehensive data cleaning and standardization
  • ๐Ÿค– SVM Classification: Linear kernel SVM implementation
  • ๐Ÿ“Š Model Evaluation: Accuracy assessment on training and testing sets
  • ๐Ÿ”ฎ Prediction System: Real-time diabetes risk prediction
  • ๐Ÿ“ˆ Performance Metrics: Detailed model performance analysis

๐Ÿ› ๏ธ Technical Features

  • Data Standardization: StandardScaler for feature normalization
  • Train-Test Split: Stratified sampling for balanced evaluation
  • Cross-Validation Ready: Extensible for k-fold validation
  • Modular Design: Clean, reusable code structure

โš™๏ธ Installation

๐Ÿ“‹ Prerequisites

  • Python 3.7 or higher
  • pip package manager
  • Jupyter Notebook (recommended)

๐Ÿ”ง Setup Instructions

  • Clone the Repository
git clone https://github.com/NhanPhamThanh-IT/SVM-Diabetes-Prediction.git
   cd SVM-Diabetes-Prediction
  • Create Virtual Environment (Recommended)
python -m venv diabetes_env

# Windows diabetes_env\Scripts\activate

# macOS/Linux source diabetes_env/bin/activate

  • Install Required Packages
pip install numpy pandas scikit-learn jupyter matplotlib seaborn

Or using requirements.txt:

pip install -r requirements.txt
  • Launch Jupyter Notebook
jupyter notebook SVM-Diabetes-Prediction.ipynb

๐Ÿ“ฆ Required Dependencies

numpy>=1.21.0
pandas>=1.3.0
scikit-learn>=1.0.0
jupyter>=1.0.0
matplotlib>=3.4.0  # For visualization (optional)
seaborn>=0.11.0    # For advanced plots (optional)

๐Ÿ’ป Usage

๐Ÿš€ Quick Start

  • Open the Jupyter Notebook
jupyter notebook SVM-Diabetes-Prediction.ipynb
  • Run All Cells
- Execute cells sequentially to train the model - Observe data analysis and preprocessing steps - View model training and evaluation results

๐Ÿ”ฎ Making Predictions

The model accepts 8 medical features to predict diabetes risk:

# Example prediction
import numpy as np

Input format: [Pregnancies, Glucose, BloodPressure, SkinThickness,

Insulin, BMI, DiabetesPedigreeFunction, Age]

sample_data = np.array([[5, 166, 72, 19, 175, 25.8, 0.587, 51]])

Standardize and predict

stddata = scaler.transform(sampledata) prediction = classifier.predict(std_data)

if prediction[0] == 0: print("๐ŸŸข The person is not diabetic") else: print("๐Ÿ”ด The person is diabetic")

๐Ÿ“Š Model Training Process

  • Data Loading: Import diabetes dataset
  • Exploratory Analysis: Statistical summary and data distribution
  • Data Preprocessing: Feature standardization using StandardScaler
  • Data Splitting: 80-20 train-test split with stratification
  • Model Training: Linear SVM classifier training
  • Evaluation: Accuracy calculation on both training and testing sets
  • Prediction: Individual risk assessment system

๐Ÿง  Machine Learning Approach

๐Ÿ”ฌ Support Vector Machine (SVM)

Why SVM for Diabetes Prediction?

  • Linear Separability: Finds optimal decision boundary between classes
  • High Dimensional Data: Effective with multiple medical features
  • Robust to Overfitting: Generalizes well on medical datasets
  • Margin Maximization: Creates reliable classification boundaries

โš™๏ธ Model Configuration

# SVM Classifier Setup
classifier = svm.SVC(kernel='linear')

Key Parameters:

- kernel='linear': Linear decision boundary

- C=1.0 (default): Regularization parameter

- gamma='scale': Kernel coefficient

๐Ÿ”„ Data Preprocessing Pipeline

  • Feature Extraction: Separate features (X) and target (Y)
  • Standardization: StandardScaler normalization
scaler = StandardScaler()
   Xscaled = scaler.fittransform(X)
  • Train-Test Split: Stratified 80-20 split
Xtrain, Xtest, Ytrain, Ytest = traintestsplit(
       X, Y, testsize=0.2, stratify=Y, randomstate=2
   )

๐Ÿ“Š Model Performance

๐ŸŽฏ Accuracy Metrics

The model achieves high accuracy on both training and testing datasets:

  • Training Accuracy: ~78-80%
  • Testing Accuracy: ~75-77%
  • Balanced Performance: Good generalization without overfitting

๐Ÿ“ˆ Performance Analysis

Strengths:

  • โœ… High accuracy on medical diagnostic task
  • โœ… Balanced performance across classes
  • โœ… Fast prediction capability
  • โœ… Interpretable linear decision boundary
Considerations:
  • ๐Ÿ“Š Dataset size limitations (768 samples)
  • ๐Ÿ”„ Potential for ensemble improvements
  • ๐Ÿ“ˆ Room for hyperparameter optimization

๐Ÿ“ Project Structure

SVM-Diabetes-Prediction/
โ”‚
โ”œโ”€โ”€ ๐Ÿ““ SVM-Diabetes-Prediction.ipynb   # Main Jupyter notebook
โ”œโ”€โ”€ ๐Ÿ“Š diabetes_data.csv               # Dataset file
โ”œโ”€โ”€ ๐Ÿ“ README.md                       # Project documentation
โ”œโ”€โ”€ ๐Ÿ“œ LICENSE                         # MIT License
โ”‚
โ”œโ”€โ”€ ๐Ÿ“ docs/                           # Documentation
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‹ dataset.md                  # Dataset documentation
โ”‚   โ””โ”€โ”€ ๐Ÿง  svm-algorithm.md            # SVM algorithm details
โ”‚
โ””โ”€โ”€ ๐Ÿ“ models/                         # Saved models (optional)
    โ””โ”€โ”€ ๐Ÿค– svmdiabetesmodel.pkl      # Trained model

๐Ÿ” Technical Implementation

๐Ÿงฉ Code Architecture

1. Data Import & Analysis

# Load and explore dataset
diabetesdataset = pd.readcsv('diabetes_data.csv')
diabetes_dataset.describe()
diabetesdataset['Outcome'].valuecounts()

2. Feature Engineering

# Separate features and target
X = diabetes_dataset.drop(columns='Outcome', axis=1)
Y = diabetes_dataset['Outcome']

3. Data Standardization

# Normalize features
scaler = StandardScaler()
Xstandardized = scaler.fittransform(X)

4. Model Training

# Train SVM classifier
classifier = svm.SVC(kernel='linear')
classifier.fit(Xtrain, Ytrain)

5. Model Evaluation

# Calculate accuracy
trainaccuracy = accuracyscore(Ytrain, classifier.predict(Xtrain))
testaccuracy = accuracyscore(Ytest, classifier.predict(Xtest))

๐Ÿ”ง Extensibility

The codebase is designed for easy extension:

  • Additional Kernels: RBF, polynomial, sigmoid
  • Hyperparameter Tuning: Grid search implementation
  • Cross-Validation: K-fold validation
  • Feature Selection: Recursive feature elimination
  • Ensemble Methods: Voting classifiers

๐Ÿ“ˆ Results & Analysis

๐Ÿ“Š Key Findings

  • Model Effectiveness: SVM demonstrates strong performance for diabetes prediction
  • Feature Importance: Glucose level and BMI are strong predictors
  • Generalization: Model maintains consistent accuracy across train/test sets
  • Clinical Relevance: Results align with medical knowledge of diabetes risk factors

๐ŸŽฏ Medical Insights

  • Glucose Levels: Primary indicator of diabetes risk
  • BMI Correlation: Strong relationship with diabetes occurrence
  • Age Factor: Increasing risk with age
  • Family History: Diabetes pedigree function significance

๐Ÿ› ๏ธ Technologies Used

๐Ÿ Core Technologies

  • Python: Primary programming language
  • Jupyter Notebook: Interactive development environment
  • NumPy: Numerical computations and array operations
  • Pandas: Data manipulation and analysis
  • Scikit-learn: Machine learning algorithms and tools

๐Ÿ“š Libraries & Frameworks

import numpy as np              # Numerical operations
import pandas as pd             # Data manipulation
from sklearn.preprocessing import StandardScaler    # Feature scaling
from sklearn.modelselection import traintest_split # Data splitting
from sklearn import svm         # Support Vector Machine
from sklearn.metrics import accuracy_score          # Model evaluation

๐Ÿ”ง Development Tools

  • Git: Version control
  • Markdown: Documentation
  • CSV: Data storage format

๐Ÿค Contributing

We welcome contributions to improve the diabetes prediction model! Here's how you can contribute:

๐ŸŒŸ Ways to Contribute

  • ๐Ÿ› Bug Reports: Report issues or bugs
  • ๐Ÿ’ก Feature Requests: Suggest new features or improvements
  • ๐Ÿ“ Documentation: Improve project documentation
  • ๐Ÿ”ฌ Model Enhancement: Optimize algorithms or add new models
  • ๐Ÿ“Š Data Analysis: Enhance data preprocessing or visualization

๐Ÿ“‹ Contribution Guidelines

  • Fork the Repository
  • Create Feature Branch
git checkout -b feature/your-feature-name
  • Make Changes
  • Add Tests (if applicable)
  • Commit Changes
git commit -m "Add: Your descriptive commit message"
  • Push to Branch
git push origin feature/your-feature-name
  • Create Pull Request

๐ŸŽฏ Areas for Improvement

  • Model Optimization: Hyperparameter tuning, cross-validation
  • Additional Algorithms: Random Forest, Gradient Boosting, Neural Networks
  • Data Visualization: Enhanced plots and statistical analysis
  • Web Interface: Flask/Django web application
  • Mobile App: Mobile diabetes risk calculator
  • API Development: REST API for model predictions

๐Ÿ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.

MIT License

Copyright (c) 2025 NhanPhamThanh-IT

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

๐Ÿ‘จโ€๐Ÿ’ป Author

NhanPhamThanh-IT

๐Ÿ™ Acknowledgments

  • Dataset Source: Pima Indian Diabetes Database
  • Inspiration: Medical machine learning applications
  • Community: Open source contributors and researchers
  • Libraries: Scikit-learn, Pandas, NumPy development teams

โญ If you found this project helpful, please give it a star! โญ

๐Ÿฉบ Advancing healthcare through machine learning ๐Ÿค–

GitHub stars GitHub forks GitHub watchers


Built with โค๏ธ for healthcare innovation | Last updated: July 2025

๐Ÿ”— More in this category

ยฉ 2026 GitRepoTrend ยท NhanPhamThanh-IT/SVM-Diabetes-Prediction ยท Updated daily from GitHub