Skip to main content

Implemenation of the PQMass two sample test from Lemos et al. 2024

Project description

PQMass: Probabilistic Assessment of the Quality of Generative Models using Probability Mass Estimation

PyPI - Version CI Code style: black PyPI - Downloads arXiv

Implementation of the PQMass two sample test from Lemos et al. 2024 here

Install

Just do:

pip install pqm

Usage

This is the main use case:

from pqm import pqm_pvalue, pqm_chi2
import numpy as np

x_sample = np.random.normal(size = (500, 10))
y_sample = np.random.normal(size = (400, 10))

# To get pvalues from PQMass
pvalues = pqm_pvalue(x_sample, y_sample, num_refs = 100, re_tessellation = 50)
print(np.mean(pvalues), np.std(pvalues))

# To get chi^2 from PQMass
chi2_stat = pqm_chi2(x_sample, y_sample, num_refs = 100, re_tessellation = 50)
print(np.mean(chi2_stat), np.std(chi2_stat))

If your two samples are drawn from the same distribution, then the p-value should be drawn from the random uniform(0,1) distribution. This means that if you get a very small value (i.e., 1e-6), then you have failed the null hypothesis test, and the two samples are not drawn from the same distribution.

For the chi^2 metric, given your two sets of samples, if they come from the same distribution, the histogram of your chi² values should follow the chi² distribution. The peak of this distribution will be at DoF - 2, and the standard deviation will be √(2 * DoF). If your histogram shifts to the right of the expected chi² distribution, it suggests that the samples are out of distribution. Conversely, if the histogram shifts to the left, it indicates potential duplication or memorization (particularly relevant for generative models).

Developing

If you're a developer then:

git clone git@github.com:Ciela-Institute/PQM.git
cd PQM
git checkout -b my-new-branch
pip install -e .

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

pqm-0.5.1.tar.gz (289.1 kB view details)

Uploaded Source

Built Distribution

pqm-0.5.1-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

Details for the file pqm-0.5.1.tar.gz.

File metadata

  • Download URL: pqm-0.5.1.tar.gz
  • Upload date:
  • Size: 289.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.5

File hashes

Hashes for pqm-0.5.1.tar.gz
Algorithm Hash digest
SHA256 81fa6f4a2fcb725d79637a3b233b3c56aa1a73227bdc18aa34507fe53f7ac1d9
MD5 5e0476f7c875cd86303c359e10dbfacc
BLAKE2b-256 3eb9e458df15a308d2c2136fc2a2e1367ce2c29c681dac4d12dae98b21ea8da5

See more details on using hashes here.

File details

Details for the file pqm-0.5.1-py3-none-any.whl.

File metadata

  • Download URL: pqm-0.5.1-py3-none-any.whl
  • Upload date:
  • Size: 7.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.5

File hashes

Hashes for pqm-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ccaba248b03d2cb6388a24fe58f680708cb82ac02b98cb0e77e2ea0cf20df7c6
MD5 f59b499e0d2d9525bd2836c50ada96e9
BLAKE2b-256 0f1f840aa3bec85a6f4fd6f1d26945a274f42389057db7e5b79182bfd1951576

See more details on using hashes here.

Supported by

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