Projects & Packages

Open Source Projects & Packages

This page collects software projects that are more useful as technical assets than as generic blog posts: installable packages, documentation, source repositories, examples and research tooling.

The Python projects below are published on PyPI under DiogoRibeiro7. They are grouped here by purpose so readers can see what each package is for before jumping into package documentation. The Rust crates are on crates.io under DiogoRibeiro7, and the Ruby gem is on RubyGems under diogoribeiro7.

PyPI Packages

Package Current release Install Purpose
wifi-activity-recognition 0.2.0 pip install wifi-activity-recognition Human activity recognition using WiFi CSI and computer vision workflows.
tscv-vision 0.4.0 pip install tscv-vision NumPy-first structured representation engineering for time series.
pinnlab 0.6.1 pip install pinnlab Physics-informed neural network implementations.
setqca 0.2.0 pip install setqca Native Python toolkit for crisp-set and fuzzy-set qualitative comparative analysis.
gen-surv 3.1.2 pip install gen-surv Survival-data simulation with a known truth: twelve models from proportional hazards to multi-state processes.
pinn-rk 0.6.0 pip install pinn-rk Runge-Kutta physics-informed neural networks with time-discrete losses in PyTorch.
heavytails 0.6.3 pip install heavytails Heavy-tailed distributions, tail index estimators and extreme value diagnostics, vectorised over NumPy.
industrialstats 0.3.0 pip install industrialstats Industrial statistics and design of experiments: design generators, ANOVA, diagnostics, power and response surfaces.
pygeostats 0.1.0a2 pip install pygeostats Geostatistics with a Rust-accelerated core: variograms, kriging, point patterns and spatial autocorrelation.
sensor-modeling 0.2.0 pip install sensor-modeling Interpretable, probabilistic, privacy-preserving analysis of behavioural and ambient sensor data.
cfad 0.2.3 pip install cfad Characteristic-function detection of distributional-shape changes in financial time series.
oversampleqa 0.8.0 pip install oversampleqa Validation, audit and benchmarking of oversampling methods for imbalanced classification.
anomalybench 0.6.2 pip install anomalybench Benchmarking suite for anomaly detection algorithms with dataset loaders and a CLI.
imputation-methods 0.2.0 pip install imputation-methods A unified pandas API for more than forty missing-data imputation methods.
subspaceknn 0.2.0 pip install subspaceknn Interpretable k-nearest-neighbour classification by complementary selection of low-dimensional feature subspaces.
DataExcept 1.7.0 pip install DataExcept Structured, hierarchical exception classes for data science and machine learning pipelines.

Scientific Machine Learning

pinnlab

Physics-informed neural network implementations for experiments where differential equations, boundary conditions and neural approximators need to live in the same workflow.

1
pip install pinnlab

pinn-rk

Runge-Kutta PINNs for time-discrete physics-informed learning, including Gauss, Radau and Lobatto style losses in PyTorch.

1
pip install pinn-rk

Statistics, Survival Analysis and Research Methods

gen-surv

Simulate survival data with a known truth. Version 3 generates time-to-event datasets from twelve models spanning proportional hazards, accelerated failure time, competing risks, cure fractions, piecewise hazards, recurrent events and two illness-death processes, so an estimator can be tested against parameters you chose yourself. It started as a Python port of the R package genSurv and now goes well past the original's four models; it ships py.typed, and only the two scikit-survival conversion helpers need an optional extra.

1
pip install gen-surv

setqca

A native Python toolkit for crisp-set and fuzzy-set Qualitative Comparative Analysis. It belongs with the research-methods part of the site because it helps encode configurational arguments, not just fit predictive models.

1
pip install setqca

heavytails

Heavy-tailed distributions, tail index estimators and extreme value diagnostics with NumPy-backed vectorised evaluation. Densities, quantiles and samplers are derived from first principles, survival functions are computed directly so they hold far into the tail, and the applied layer covers peaks-over-threshold analysis, return levels, tail-risk measures, copulas and GARCH fitting.

1
pip install heavytails

industrialstats

Industrial statistics and design of experiments: reproducible design generators, ANOVA with Type I, II and III sums of squares, effect sizes, multiple comparisons, contrasts, mixed-effects models, diagnostics, power and sample-size calculations and response-surface optimisation, validated against textbook results and reference software. Pre-1.0, with provisional methods labelled as such.

1
pip install industrialstats

pygeostats

Geostatistics with a Rust-accelerated core: empirical and directional variograms, model fitting with a fit report, ordinary, simple, universal and anisotropic kriging with prediction variance, point-pattern statistics, spatial autocorrelation and spatial cross-validation, behind a fit / predict API that accepts NumPy arrays, pandas DataFrames and GeoPandas GeoDataFrames. Alpha pre-release, with its known limitations documented.

1
pip install pygeostats

Time Series, Signals and Activity Recognition

tscv-vision

Structured representation engineering for time series with a NumPy-first API. This package is a better fit for reusable transformations and experiments than one-off notebook code.

1
pip install tscv-vision

wifi-activity-recognition

A package for human activity recognition using WiFi channel-state information and computer vision workflows. It sits at the intersection of sensing, signal processing and applied machine learning.

1
pip install wifi-activity-recognition

sensor-modeling

A research toolkit for behavioural and ambient sensor data in assisted living, digital health and smart-home studies: an end-to-end pipeline from heterogeneous sensor observations to explained alerts, built on Bernoulli autoregressive models, hidden Markov models, change-point detection and non-homogeneous Poisson processes. Research software, not a medical device.

1
pip install sensor-modeling

cfad

Characteristic-function anomaly detection for financial returns. Each rolling window's empirical characteristic function is compared with the Gaussian one fitted to that window's mean and variance, so the score reacts to tail and skewness changes rather than to level or volatility, and a two-sided Page-CUSUM turns scores into sequential alarms.

1
pip install cfad

Machine Learning Diagnostics and Engineering

oversampleqa

A diagnostic toolkit for oversampling in imbalanced classification. It hides part of the majority class and scores each synthetic sample by its nearest-neighbour distance to the hidden majority and to the real minority, so the hidden-majority error rate says how often an oversampler manufactures majority-like points. Benchmarks, a CLI and a plugin system for custom metrics come with it.

1
pip install oversampleqa

anomalybench

A benchmarking suite for anomaly detection: detectors, loaders for tabular, image, time-series and graph benchmark datasets, and a command line that compares detectors under one protocol. Optional extras add deep-learning, streaming and Prophet-based detectors. Python 3.12 only for now.

1
pip install anomalybench

imputation-methods

Forty-two missing-data imputation methods behind one pandas API: statistical, donor-based, time-series, nearest-neighbour, regression, iterative, matrix-completion, neural and ensemble imputers. Every imputer takes a numeric DataFrame and returns a new one, so swapping mean imputation for KNN, MICE, a Kalman filter or SoftImpute is a one-line change and the evaluation code stays the same.

1
pip install imputation-methods

subspaceknn

Interpretable k-nearest-neighbour classification. A kNN model is fitted on every small subset of features and a small voting ensemble is built by complementary selection, which adds the subspace that most improves the ensemble's out-of-fold predictions rather than the one that scores best alone. Every member lives in one, two or three dimensions, so a prediction is explained by a handful of pictures. A scikit-learn compatible estimator.

1
pip install subspaceknn

DataExcept

Structured, hierarchical exception classes for data science, machine learning and data engineering pipelines: over a hundred specific, catchable failure types with context, JSON export against a versioned schema, pickling across process boundaries and logging helpers. The exception layer that industrialstats and other packages here standardise on.

1
pip install DataExcept

Rust Crates

Crate Current release Install Purpose
copula-core 0.2.0 cargo add copula-core Copula modelling, simulation and dependence analysis.
uncertain-numerics 0.1.0 cargo add uncertain-numerics Probabilistic numerical methods with explicit uncertainty over computational quantities.

copula-core

Copula modelling, simulation and dependence analysis: Gaussian, Student-t, Archimedean, Marshall-Olkin and empirical copulas with CDF and PDF evaluation, sampling, tail dependence, rank-based dependence measures, goodness-of-fit statistics and information criteria, checked by property-based tests of the copula axioms. Parameter estimation sits behind the estimation feature. Experimental and pre-1.0.

1
cargo add copula-core

uncertain-numerics

Probabilistic numerics in Rust. Bayesian quadrature, active Bayesian quadrature and probabilistic linear solvers for dense symmetric positive-definite systems, each returning a validated Gaussian posterior whose variance states how much the computation still does not know. Calibration, misspecification and numerical stability are tested as part of correctness.

1
cargo add uncertain-numerics

Ruby Gems

datalog-theme

The DataLog Jekyll theme for data science and research writing, and the theme this site runs on: research-ready layouts, notebook conversion, MathJax tooling, syntax highlighting for Python, R, SQL and Julia, lazy-loaded visualisations, citation exports and a WCAG 2.1 AA interface.

1
gem "datalog-theme", "~> 0.9.0"

R Packages

myrpackage

A multilingual greeting and farewell package that serves as an example of proper R package structure.

Features:

  • Multilingual support (English, Spanish, French, Portuguese, German, Italian)
  • Comprehensive documentation with roxygen2
  • Full test coverage with testthat
  • Continuous integration with GitHub Actions
  • Proper package structure following R standards

View Documentation →


unconfoundedr

Test (un)confoundedness by comparing an effect from an RCT-like dataset to the same estimand from an observational dataset. Includes robust estimators, inference, and transportability tools.

Features:

  • IPW and AIPW (doubly robust) estimators for the marginal ATE
  • Bootstrap confidence intervals and Wald test
  • Transport modes: none, rct_to_obs, and auto (KS/energy shift detection)
  • Diagnostics for propensity overlap, stabilized weights, trimming, and transport ESS

View Documentation →


For source repositories, issues and development history, visit my GitHub profile.

Loading mathematical content