Skip to main content

A lightweight binary image classification system built with scikit‑learn, focusing on k‑Nearest Neighbors (kNN) and classical ML models. It features dynamic, model‑aware image preprocessing (HOG, scaling, PCA) that adapts automatically to image characteristics, enabling efficient training and reliable inference for custom datasets.

Reason this release was yanked:

Production Error

Project description

DynamicML 🚀

Dynamic, model‑aware classical machine learning for image classification

CREATED BY SUNKARA SAI GANESH , KARROTHU MOURYA , KUDIRELLA SANMUKA SAI, DONTALA KIRAN KUMAR

DynamicML is a lightweight Python library built on top of scikit‑learn that enables binary image classification using classical machine learning models, with a strong focus on dynamic, model‑aware preprocessing. The library is designed to automatically adapt preprocessing pipelines based on image characteristics and model requirements, making it easy to experiment, benchmark, and deploy classical ML solutions for image data. Typically in just 2-4 lines of code.


✨ Key Features

  • ✅ Binary image classification using classical ML models
  • ✅ Dynamic preprocessing tailored to each model
  • ✅ Strong support for k‑Nearest Neighbors (kNN)
  • ✅ Multiple feature extraction strategies (pixels, HOG, PCA)
  • ✅ Modular, extensible, and deployment‑ready
  • ✅ No deep‑learning dependencies (lightweight & fast)

🎯 Project Goals

DynamicML is designed to:

  • Provide clear, principled preprocessing pipelines for image‑based ML
  • Avoid one‑size‑fits‑all preprocessing
  • Make classical ML viable for image classification tasks
  • Enable rapid experimentation and reproducibility
  • Serve as a learning and benchmarking framework for image ML

📦 Supported Models

DynamicML supports most classical classifiers available in scikit‑learn, including:

Linear Models

  • Logistic Regression
  • SGDClassifier
  • Perceptron
  • RidgeClassifier

Distance‑Based Models

  • k‑Nearest Neighbors (kNN)
  • Radius Neighbors
  • Nearest Centroid

Support Vector Machines

  • Linear SVM
  • Kernel SVM (RBF, Poly, Sigmoid)

Probabilistic Models

  • Gaussian Naive Bayes
  • Multinomial Naive Bayes
  • Complement Naive Bayes
  • Bernoulli Naive Bayes

Tree‑Based Models

  • Decision Tree
  • Random Forest
  • Extra Trees

Boosting & Ensembles

  • AdaBoost
  • Gradient Boosting
  • HistGradientBoosting
  • Bagging
  • Voting
  • Stacking

Neural & Bayesian

  • MLPClassifier
  • GaussianProcessClassifier

🖼️ Image Preprocessing Philosophy

DynamicML follows one core principle:

Preprocessing depends on both the image type and the model type.

Instead of applying the same pipeline to every model, DynamicML dynamically selects preprocessing steps such as:

  • Image resizing
  • Color conversion (RGB → Grayscale)
  • Feature extraction
  • Feature scaling
  • Dimensionality reduction

🧠 Feature Extraction Strategies

DynamicML supports multiple feature representations:

1. Flattened Pixels

  • Best for very small images
  • Used mainly for baselines

2. Histogram of Oriented Gradients (HOG)

  • Captures shape and edge information
  • Illumination‑invariant
  • Highly effective for kNN and SVM

3. PCA‑Compressed Features

  • Reduces dimensionality
  • Improves speed and generalization
  • Strongly recommended for distance‑based models

4. Binary / Thresholded Features

  • Useful for masks, silhouettes, and edge maps

🔄 Dynamic Preprocessing Logic

DynamicML automatically adapts preprocessing based on:

  • Image size
  • Image type (grayscale, binary, color)
  • Feature dimensionality
  • Model requirements (scaling, PCA, distance metrics)

Example logic:

If model is distance‑based → scaling required  
If feature dimension is high → apply PCA  
If image is large → use HOG instead of raw pixels  
If model is tree‑based → skip scaling

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dynamicml-1.0.1.tar.gz (10.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dynamicml-1.0.1-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

Details for the file dynamicml-1.0.1.tar.gz.

File metadata

  • Download URL: dynamicml-1.0.1.tar.gz
  • Upload date:
  • Size: 10.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for dynamicml-1.0.1.tar.gz
Algorithm Hash digest
SHA256 00d697db151b32d5452f9000b7b571cf21c870f6192b2d293327e88b616737d1
MD5 5bfd9dff85c135794f4ea89f358fe657
BLAKE2b-256 de8d6ea6ef236b0034b4939a262980d58c829e4b96a51968d559e2a314cd74ce

See more details on using hashes here.

File details

Details for the file dynamicml-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: dynamicml-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 10.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for dynamicml-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 eeb85a0183f201250b65c72fff3505dfe50849ba80805ab9bb355fbddf71a744
MD5 d415d72d00a2904b92b8f90fc494040a
BLAKE2b-256 6486ab30dc62bbc4ddc7f441af27729a09f1d86ac156ff30ec3b0c366b9821a6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page