DOBIN
DOBIN
- class DOBIN(frac=0.95, k=None)[source]
Distance based Outlier BasIs using Neighbors (DOBIN).
DOBIN is a pre-processing algorithm that constructs a set of basis vectors tailored for outlier detection as described by _[1]. DOBIN has a simple mathematical foundation and can be used as a dimension reduction tool for outlier detection tasks.
Method assumes normalized data, the original R code implementation uses:
from sklearn.preprocessing import MinMaxScaler, RobustScaler, StandardScalerThis prevents variables with large variances having disproportional influence on Euclidean distances. The original implelemtation _[1] usesMinMaxScalernormalization, and removes NA values before normalization.We emphasize that DOBIN is not an outlier detection method; rather it is a pre-processing step that can be used by any outlier detection method.
- Parameters:
- fracfloat (default=0.95)
The cut-off quantile for Y space (parameter q in _[1]).
- kint (default=None)
Number of nearest neighbours considered (parameter k_2 on page 9 in _[1])
- Attributes:
- _basispd.DataFrame
The basis vectors suitable for outlier detection (denoted as Theta in _[1]).
- _coordspd.DataFrame
The transformed coordinates of the data (denoted as tilde{X}, see equation 8 in _[1])
References
[1]Kandanaarachchi, Sevvandi, and Rob J. Hyndman. “Dimension reduction
for outlier detection using DOBIN.” Journal of Computational and Graphical Statistics 30.1 (2021): 204-219.
Examples
>>> from sktime.transformations.dobin import DOBIN >>> from sklearn.preprocessing import MinMaxScaler >>> import numpy as np >>> import pandas as pd >>> from sktime.datasets import load_uschange >>> _, X = load_uschange() >>> scaler = MinMaxScaler() >>> X = scaler.fit_transform(X) >>> model = DOBIN() >>> X_outlier = model.fit_transform(pd.DataFrame(X)) >>> X_outlier.head() DB0 DB1 DB2 DB3 0 1.151965 0.116488 0.286064 0.288140 1 1.191976 0.100772 0.050835 0.225985 2 1.221158 0.078031 0.034030 0.249676 3 1.042420 0.188494 0.218460 0.205251 4 1.224701 0.020028 -0.294705 0.199827
Methods
check_is_fitted([method_name])Check if the estimator has been fitted.
clone()Obtain a clone of the object with same hyper-parameters and config.
clone_tags(estimator[, tag_names])Clone tags from another object as dynamic override.
create_test_instance([parameter_set])Construct an instance of the class, using first test parameter set.
create_test_instances_and_names([parameter_set])Create list of all test instances and a list of names for them.
fit(X[, y])Fit transformer to X, optionally to y.
fit_transform(X[, y])Fit to data, then transform it.
get_class_tag(tag_name[, tag_value_default])Get class tag value from class, with tag level inheritance from parents.
get_class_tags()Get class tags from class, with tag level inheritance from parent classes.
get_config()Get config flags for self.
get_fitted_params([deep])Get fitted parameters.
get_param_defaults()Get object's parameter defaults.
get_param_names([sort])Get object's parameter names.
get_params([deep])Get a dict of parameters values for this object.
get_tag(tag_name[, tag_value_default, ...])Get tag value from instance, with tag level inheritance and overrides.
get_tags()Get tags from instance, with tag level inheritance and overrides.
get_test_params([parameter_set])Return testing parameter settings for the skbase object.
inverse_transform(X[, y])Inverse transform X and return an inverse transformed version.
is_composite()Check if the object is composed of other BaseObjects.
load_from_path(serial)Load object from file location.
load_from_serial(serial)Load object from serialized memory container.
reset()Reset the object to a clean post-init state.
save([path, serialization_format])Save serialized self to bytes-like object or to (.zip) file.
set_config(**config_dict)Set config flags to given values.
set_params(**params)Set the parameters of this object.
set_random_state([random_state, deep, ...])Set random_state pseudo-random seed parameters for self.
set_tags(**tag_dict)Set instance level tag overrides to given values.
transform(X[, y])Transform X and return a transformed version.
update(X[, y, update_params])Update transformer with X, optionally y.

