biomedical_data_generator.meta.FeatureRoles

class biomedical_data_generator.meta.FeatureRoles(standalone_informative_indices, informative_anchor_indices, informative_proxy_indices, standalone_noise_indices, noise_anchor_indices, noise_proxy_indices, cluster_membership)[source]

Bases: object

Generative feature roles derived from a DatasetMeta.

A purely structural partition of the feature columns into six roles that the generator distinguishes. The six roles arise from two orthogonal distinctions:

  • Signal – relevance is derived per column: a feature is informative when it carries class-discriminative signal through either a class-dependent mean shift (the anchor’s shift, or a proxy’s attenuated propagation) or a class-dependent within-cluster correlation (differential co-expression); noise features carry neither. Because the predicate is per column, a single cluster may contribute columns to both informative and noise roles.

  • Cluster membership – a standalone feature is independent and belongs to no cluster. Within a correlated cluster, the structural anchor column is the only column shifted directly, and every other member is a proxy that inherits an attenuated version of the anchor’s behaviour through correlation.

Combining the two distinctions yields the six roles, one per index attribute below.

Parameters:
standalone_informative_indices

List of column indices for standalone informative features. These are independent informative features that are not part of any correlated cluster and therefore carry a class-separating mean shift on their own.

Type:

list[int]

informative_anchor_indices

List of column indices of anchors derived per column to carry class-discriminative signal: an anchor is informative iff its mean channel varies across classes or its within-cluster correlation varies across classes. Such anchors seed the within-cluster correlation shared by their proxies.

Type:

list[int]

informative_proxy_indices

List of column indices of proxy members (non-anchor members) derived per column to carry signal. A proxy is informative only when it inherits a nonzero attenuated mean shift or participates in a class-varying within-cluster correlation. The degree of mean attenuation follows the cluster’s correlation structure — roughly uniform for equicorrelated clusters and decaying with distance from the anchor for Toeplitz clusters. A proxy whose attenuated shift is zero and whose correlation is class-uniform is a noise proxy instead, so a single cluster may contribute to both proxy roles (for example, a mean-only cluster with zero within-cluster correlation yields an informative anchor and noise proxies).

Type:

list[int]

standalone_noise_indices

List of column indices for standalone noise features. These are independent noise features outside any cluster and carry no class-discriminating signal.

Type:

list[int]

noise_anchor_indices

List of column indices of anchors derived per column to carry no class-discriminative signal: neither the mean channel nor the within-cluster correlation varies across classes. They seed a within-cluster correlation that is identical across classes.

Type:

list[int]

noise_proxy_indices

List of column indices of proxy members (non-anchor members) derived per column to carry no signal: their attenuated mean shift is zero and their within-cluster correlation is class-uniform. They are correlated with their anchor and form purely structural, signal-free correlated blocks. A noise proxy may sit in the same cluster as an informative anchor.

Type:

list[int]

cluster_membership

Mapping from column_index to cluster_id for every column that belongs to a correlated cluster.

Type:

dict[int, int]

__init__(standalone_informative_indices, informative_anchor_indices, informative_proxy_indices, standalone_noise_indices, noise_anchor_indices, noise_proxy_indices, cluster_membership)
Parameters:
Return type:

None

Methods

__init__(standalone_informative_indices, ...)

Attributes

standalone_informative_indices

informative_anchor_indices

informative_proxy_indices

standalone_noise_indices

noise_anchor_indices

noise_proxy_indices

cluster_membership