Skip to main content

General Class Balancer

This program finds a subset of your dataset with balanced confounding factors (also known as "data matching"), though it can work with any combination of categorical and continuous variables. Given a labeled dataset with any number of classes and a number of confounding factors for each datapoint, this matches data in each class to one another, such that the distributions of each confounding factor are the same in each class. This may be used to sample a training set on which a given deep learning model will not take confounding factors into account during its classification.

To install:

pip3 install general-class-balancer

To use with a Pandas dataframe:

import pandas as pd

df = pd.read_pickle('dementia_diagnostic_records.pkl')

# Match the label "dementia" by age and sex
selection = class_balance(df,class_col="Dementia",confounds=["Age","Sex"],plim=0.1)

# selection is an array of booleans. This takes a matched subset of the dataframe
df = df[selection]

This will match patients in the column "Dementia" by age and sex. Note that continuous labels are not supported, only class labels.

A version of this method was originally introduced in https://arxiv.org/abs/2002.07874 to ensure that deep learning classifications of sex based on brain activity did not take into account head motion or intracranial volume, both of which are statistically different between sexes and which affect measurements of brain activity, but which we did not want the machine learning model to consider. A more detailed explanation of the method may be found in that paper. Below is a pictural description of the algorithm (assuming plim = 0.10)

alt text

Everything in the presented code uses numpy arrays. The code, as well as a script that simulates data from random variables, is given. Simply run

python random_example_test.py

Release files for general-class-balancer 0.0.7

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

Source distribution (sdist)

Source distribution for general-class-balancer 0.0.7
File Size Uploaded
general_class_balancer-0.0.7.tar.gz 159.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for general-class-balancer 0.0.7
File Interpreter ABI Platform
general_class_balancer-0.0.7-py3-none-any.whl Python 3 none any Details

Total release size: 166.5 kB

Release files / general_class_balancer-0.0.7.tar.gz

Download URL general_class_balancer-0.0.7.tar.gz
Size 159.4 kB
Tags Source
SHA-256 checksum
How to use checksums
a7fc6cd88f7a63dfc32974c27b91fbea0b657c9ecd617956ea1d37f0ec5b0778
BLAKE2b-256 checksum
How to use checksums
193c2ec3f87d7c016cb3f2f725c264897c4f778871531e9f82e69ae0274089df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.0.1 CPython/3.12.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 16, 2024.

Transparency log

Release files / general_class_balancer-0.0.7-py3-none-any.whl

Download URL general_class_balancer-0.0.7-py3-none-any.whl
Size 7.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
da8d321bbb02d93450b630645604dfee60f774965827f710dbf135a465195581
BLAKE2b-256 checksum
How to use checksums
006355ecee0409b573bdf0725be8617ebb3ea496ebaeeea01e080e9ec1141fb1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.0.1 CPython/3.12.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 16, 2024.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.7 This release

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.1

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