Phil Package API

Phil package.

class phil.DistributionImputer(missing_values=nan, random_state=None, threshold=1.0)[source]

Bases: BaseEstimator

Imputer that samples from empirical observed values.

fit(X, y)[source]
predict(X)[source]
class phil.ECT(config: ECTConfig)[source]

Bases: Magic

configure(**kwargs)[source]
generate(X: List[ndarray]) List[ndarray][source]
class phil.ECTConfig(*, num_thetas: int, radius: float, resolution: int, scale: int, normalize: bool = True, seed: int = 0)[source]

Bases: BaseModel

model_config: ClassVar[ConfigDict] = {}

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

normalize: bool
num_thetas: int
radius: float
resolution: int
scale: int
seed: int
class phil.GridGallery[source]

Bases: object

classmethod get(name: str) ImputationConfig[source]
class phil.ImputationConfig(*, methods: List[str], modules: List[str], grids: List[ParameterGrid])[source]

Bases: BaseModel

Configuration for imputation methods and parameter grids.

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.Phil(samples: int = 30, param_grid: str = 'default', magic: str = 'ECT', config=None, random_state=None)[source]

Bases: object

fit(df: DataFrame, max_iter: int = 5) DataFrame[source]
generate_descriptors() List[ndarray][source]
impute(df: DataFrame, max_iter: int = 10) List[ndarray][source]
transform(df: DataFrame, max_iter: int = 5) DataFrame[source]
class phil.PhilTransformer(samples: int = 30, param_grid: str | ImputationConfig = 'default', magic: str = 'ECT', config: dict | None = None, random_state: int | None = None, max_iter: int = 5)[source]

Bases: BaseEstimator, TransformerMixin

fit(X: DataFrame, y: Any = None) PhilTransformer[source]
transform(X: DataFrame) DataFrame[source]
class phil.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]
class phil.phil.Phil(samples: int = 30, param_grid: str = 'default', magic: str = 'ECT', config=None, random_state=None)[source]

Bases: object

fit(df: DataFrame, max_iter: int = 5) DataFrame[source]
generate_descriptors() List[ndarray][source]
impute(df: DataFrame, max_iter: int = 10) List[ndarray][source]
transform(df: DataFrame, max_iter: int = 5) DataFrame[source]

Scikit-learn compatible transformers for Phil.

class phil.transformers.PhilTransformer(samples: int = 30, param_grid: str | ImputationConfig = 'default', magic: str = 'ECT', config: dict | None = None, random_state: int | None = None, max_iter: int = 5)[source]

Bases: BaseEstimator, TransformerMixin

fit(X: DataFrame, y: Any = None) PhilTransformer[source]
transform(X: DataFrame) DataFrame[source]