Configuration

Configuration models for Phil’s imputation strategies.

class phil.imputation.config.CovarianceMatrix(*, matrix: List[List[float]], variables: List[str], citations: List[str])[source]

Bases: BaseModel

citations: List[str]
matrix: List[List[float]]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

variables: List[str]
class phil.imputation.config.CovariateSubset(*, predictors: List[str], citations: List[str])[source]

Bases: BaseModel

citations: List[str]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

predictors: List[str]
class phil.imputation.config.DomainKnowledge(*, covariate_subsets: Dict[str, CovariateSubset] | None = None, covariance_matrix: CovarianceMatrix | None = None)[source]

Bases: BaseModel

covariance_matrix: CovarianceMatrix | None
covariate_subsets: Dict[str, CovariateSubset] | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class phil.imputation.config.ImputationConfig(*, methods: List[str], modules: List[str], grids: List[ParameterGrid], domain_knowledge: DomainKnowledge | None = None)[source]

Bases: BaseModel

Configuration for imputation methods and parameter grids.

domain_knowledge: DomainKnowledge | None
grids: List[ParameterGrid]
methods: List[str]
model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

modules: List[str]
class phil.imputation.config.PreprocessingConfig(*, method: str, module: str = 'sklearn.preprocessing', params: ~typing.Dict[str, ~typing.Any] = <factory>)[source]

Bases: BaseModel

Configuration for data preprocessing steps.

method: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

module: str
params: Dict[str, Any]

Collection of predefined configurations for Phil.

class phil.gallery.GridGallery[source]

Bases: object

Collection of imputation grids optimized for specific domains.

Citations: - Sampling/Multiverse: Wayland et al. (2025) - https://www.nature.com/articles/s41560-025-01871-0 - Finance: Gu, Kelly, & Xiu (2020) on ML for asset pricing and robust ML portfolios. - Healthcare: Stekhoven & Bühlmann (2011) on MissForest and Chen et al. (2023) on clinical imputation. - Marketing: Anand & Mamidi (2020) / Zhang et al. (2025) on ML for consumer analytics. - Engineering: Thomas & Rajabi (2021) and Idri et al. (2016) on systematic reviews of engineering data.

classmethod get(name: str) ImputationConfig[source]
class phil.gallery.MagicGallery[source]

Bases: object

static get(method: str) BaseModel[source]
class phil.gallery.ProcessingGallery[source]

Bases: object

Collection of preprocessing configurations optimized for specific domains.

Citations: - Finance: RobustScaler for handling outliers in financial time series and asset data. - Marketing: TargetEncoder for high-cardinality features (e.g., zip codes, product IDs)

as discussed in Anand & Mamidi (2020).

classmethod get(name: str = 'default') Dict[str, PreprocessingConfig][source]