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:

Prouction Error

Project description

DynamicML 🚀

Dynamic, model‑aware classical machine learning for image classification

CREATED BY SUNKARA SAI GANESH , KARROTHU MOURYA , KUDIRELLA SANMUKA SAI

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.0.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.0-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dynamicml-1.0.0.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.0.tar.gz
Algorithm Hash digest
SHA256 a3123908ab40a79567a3d15bfd217abfbfb8c97f7f36c4c899d1f70aca8b3f86
MD5 994789645f97fc49386af5d40b00f7af
BLAKE2b-256 8f4a97c6eff26a347a18a2084ebfd8b9482dee273aaa9493414a13ea118f2f6d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dynamicml-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 10.8 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 99f7b65255b4d8d0417c3e2315aeeeb393222c0553b01b02f105eabbee828636
MD5 e6053c5d96088367ba60ed16c13a5de3
BLAKE2b-256 df9d6a5a77c7acd442328b48252aae0602bf4cf2856e97d6720c224213762940

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