Skip to main content

TDistributionClassifier

Author: Abdul Mofique Siddiqui
License: MIT
Install via pip:

pip install TDistributionClassifier

Import it in your Python code:

from TDistributionClassifier import TDistributionClassifier

Overview

TDistributionClassifier is a machine learning classifier designed to model classes using Student's t-distribution. This classifier is robust to outliers and performs effectively when data contains noise or extreme values. It is a versatile tool capable of handling both binary and multiclass classification tasks for both univariate (1D) and multivariate (multi-dimensional) data.


Installation

Install the package via pip:

pip install tdistributionclassifier

How It Works

  • Univariate Mode: For 1D features, each class is modeled using a univariate t-distribution.
  • Multivariate Mode: For multi-dimensional features, each class is modeled using a multivariate t-distribution.
  • Uses log-probabilities and the log-sum-exp trick for numerical stability.
  • Automatically detects the input dimensionality and selects the appropriate mode.

Getting Started

1. Import the package

from TDistributionClassifier import TDistributionClassifier

2. Initialize the classifier

clf = TDistributionClassifier()

3. Fit the model

clf.fit(X_train, y_train)
  • X_train: numpy array of shape (n_samples,) or (n_samples, n_features)
  • y_train: class labels

4. Predict class probabilities

probs = clf.predict_proba(X_test)
  • Returns a numpy array of shape (n_samples, n_classes) with class probabilities.

5. Predict class labels

labels = clf.predict(X_test)
  • Returns predicted class labels

API Reference

TDistributionClassifier()

Initializes the classifier. No arguments required.


.fit(X, y)

Fits the model to the training data.

  • Parameters:
    • X: numpy array of training features. Shape: (n_samples,) or (n_samples, n_features)
    • y: class labels. Shape: (n_samples,)

.predict_proba(X)

Returns predicted class probabilities.

  • Input:
    • X: Features. Shape: (n_samples,) or (n_samples, n_features)
  • Output:
    • probs: array of shape (n_samples, n_classes) with class probabilities

.predict(X)

Returns predicted class labels based on highest probability.

  • Input:
    • X: Features. Shape: (n_samples,) or (n_samples, n_features)
  • Output:
    • labels: array of shape (n_samples,) with class labels

Example Usage

Example 1: Binary Classification

from TDistributionClassifier import TDistributionClassifier
from sklearn.datasets import load_diabetes
from sklearn.model_selection import train_test_split

# Load data and binarize target
data = load_diabetes()
X = data.data
y = (data.target > 100).astype(int)  # Binary classification

# Split dataset
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)

# Initialize and train
clf = TDistributionClassifier()
clf.fit(X_train, y_train)

# Predict
probs = clf.predict_proba(X_test)
preds = clf.predict(X_test)

Example 2: Multiclass Classification

from TDistributionClassifier import TDistributionClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

# Load the Iris dataset (3 classes)
data = load_iris()
X = data.data
y = data.target  # Multiclass labels (3 classes)

# Split dataset
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)

# Initialize and train
clf = TDistributionClassifier()
clf.fit(X_train, y_train)

# Predict
probs = clf.predict_proba(X_test)
labels = clf.predict(X_test)

Internals

  • PDF Estimation: Uses scipy.stats.t (univariate) or scipy.stats.multivariate_t (multivariate).
  • Regularization: Adds small noise (1e-6 * I) to covariance matrices to ensure invertibility.
  • Numerical Stability: Log-probabilities with log-sum-exp used for probability normalization.

Notes

  • Supports both binary and multiclass classification.
  • Multivariate mode is triggered when input has >1 features.
  • The Student's t-distribution's heavy tails make it more resilient to extreme values compared to traditional Gaussian-based models.
  • If data is not linearly separable, consider applying feature transformation or dimensionality reduction before use.

Author

Abdul Mofique Siddiqui


License

This project is licensed under the MIT License.

Metadata

Release files for TDistributionClassifier 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for TDistributionClassifier 1.2.0
File Size Uploaded
tdistributionclassifier-1.2.0.tar.gz 4.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for TDistributionClassifier 1.2.0
File Interpreter ABI Platform
TDistributionClassifier-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 10.2 kB

Release files / tdistributionclassifier-1.2.0.tar.gz

Download URL tdistributionclassifier-1.2.0.tar.gz
Size 4.8 kB
Tags Source
SHA-256 checksum
How to use checksums
5bd01c6e4ab3934b4b7825ed071a147c4b07765bc60004df3880e014a22cad17
BLAKE2b-256 checksum
How to use checksums
5bb21c6ebcfada4e83714dcf9fd021c186616ab86afcb11b91f4d867a5d7cd17
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.1

Release files / TDistributionClassifier-1.2.0-py3-none-any.whl

Download URL TDistributionClassifier-1.2.0-py3-none-any.whl
Size 5.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c8b844791efba73848f588f476a21d260e91eb21f2646c84b53b08062300f28b
BLAKE2b-256 checksum
How to use checksums
4b3c6f147a5f993bd30f05d67eede9e7d2045bd035626e6762dc4493c322b0eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.1

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 release files

1.1.9

2 release files

1.1.8

2 release files

1.1.7

2 release files

1.1.6

2 release files

1.1.5

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page