TOPKATADChecker#
- class skfp.applicability_domain.TOPKATADChecker(threshold: float | None = None, n_jobs: int | None = None, verbose: int | dict = 0)#
TOPKAT (Optimal Prediction Space) method.
Defines applicability domain using the Optimal Prediction Space (OPS) approach introduced in the TOPKAT system [1]. The method transforms the input feature space into a normalized, centered and rotated space using PCA on a scaled [-1, 1] version of the training data (S-space). Each new sample is projected into the same OPS space, and a weighted distance (dOPS) from the center is computed.
Samples are considered in-domain if their dOPS is below a threshold. By default, this threshold is computed as \(5 * D / (2 * N)\), where: - :math:
Dis the number of input features, - :math:Nis the number of training samples.This method captures both the variance and correlation structure of the descriptors, and performs well for detecting global outliers in descriptor space.
- Parameters:
threshold (float, default=None) – Optional user-defined threshold for dOPS. If provided, overrides the default analytical threshold \(5 * D / (2 * N)\). Lower values produce stricter domains.
n_jobs (int, default=None) – The number of jobs to run in parallel.
transform_x_y()andtransform()are parallelized over the input molecules.Nonemeans 1 unless in ajoblib.parallel_backendcontext.-1means using all processors. See scikit-learn documentation onn_jobsfor more details.verbose (int or dict, default=0) – Controls the verbosity when filtering molecules. If a dictionary is passed, it is treated as kwargs for
tqdm(), and can be used to control the progress bar.
References
Examples
>>> import numpy as np >>> from skfp.applicability_domain import TOPKATADChecker >>> from sklearn.datasets import make_blobs >>> X_train, _ = make_blobs(n_samples=100, centers=2, n_features=5, random_state=0) >>> X_test = X_train[:5]
>>> topkat_ad_checker = TOPKATADChecker() >>> topkat_ad_checker.fit(X_train) TOPKATADChecker()
>>> topkat_ad_checker.predict(X_test) array([ True, True, True, True, True])
Methods
fit(X[, y])Fit applicability domain estimator.
fit_predict(X[, y])Perform fit on X and returns labels for X.
Get metadata routing of this object.
get_params([deep])Get parameters for this estimator.
predict(X)Predict labels (1 inside AD, 0 outside AD) of X according to fitted model.
Calculate the applicability domain score of samples.
set_params(**params)Set the parameters of this estimator.
- fit(X: ndarray, y: ndarray | None = None)#
Fit applicability domain estimator.
- Parameters:
X (array-like of shape (n_samples, n_features)) – The input samples.
y (any) – Unused, kept for scikit-learn compatibility.
- Returns:
self – Fitted estimator.
- Return type:
object
- fit_predict(X, y=None, **kwargs)#
Perform fit on X and returns labels for X.
Returns -1 for outliers and 1 for inliers.
- Parameters:
X ({array-like, sparse matrix} of shape (n_samples, n_features)) – The input samples.
y (Ignored) – Not used, present for API consistency by convention.
**kwargs (dict) –
Arguments to be passed to
fit.Added in version 1.4.
- Returns:
y – 1 for inliers, -1 for outliers.
- Return type:
ndarray of shape (n_samples,)
- get_metadata_routing()#
Get metadata routing of this object.
Please check User Guide on how the routing mechanism works.
- Returns:
routing – A
MetadataRequestencapsulating routing information.- Return type:
MetadataRequest
- get_params(deep=True)#
Get parameters for this estimator.
- Parameters:
deep (bool, default=True) – If True, will return the parameters for this estimator and contained subobjects that are estimators.
- Returns:
params – Parameter names mapped to their values.
- Return type:
dict
- predict(X: ndarray) ndarray#
Predict labels (1 inside AD, 0 outside AD) of X according to fitted model.
- Parameters:
X (array-like of shape (n_samples, n_features)) – The data matrix.
- Returns:
is_inside_applicability_domain – Returns 1 for molecules inside applicability domain, and 0 for those outside (outliers).
- Return type:
ndarray of shape (n_samples,)
- score_samples(X: ndarray) ndarray#
Calculate the applicability domain score of samples. It is defined as the weighted distance (dOPS) from the center of the training data in the OPS-transformed space. Lower values indicate higher similarity to the training data.
- Parameters:
X (array-like of shape (n_samples, n_features)) – The data matrix.
- Returns:
scores – Distance scores from the center of the Optimal Prediction Space (dOPS).
- Return type:
ndarray of shape (n_samples,)
- set_params(**params)#
Set the parameters of this estimator.
The method works on simple estimators as well as on nested objects (such as
Pipeline). The latter have parameters of the form<component>__<parameter>so that it’s possible to update each component of a nested object.- Parameters:
**params (dict) – Estimator parameters.
- Returns:
self – Estimator instance.
- Return type:
estimator instance