sel-suod 0.1

Creator: bradpython12

Last updated:

Add to Cart

Description:

selsuod 0.1

Fork of: SUOD: Accelerating Large-scare Unsupervised Heterogeneous Outlier Detection
Please refer to the original package for more information about the base functionalities.
This fork forces SUOD to use pre-selected axis-parallel subspaces, such as those obtained after Feature Bagging or Feature Selection. These subspaces must be declared as a np.array, and can take any structure such that the operation X[:, subspace] yields the desired projected dataset.
It uses the same class declaration as base SUOD, only adding a new variable: subspaces, and changing the class name to sel_SUOD.
This fork additionally contains a number of QOL additions, like:

During initialization, if base_estimators is an array of length 1, it will sklearn.clone() the estimator once per each subspace.
During initialization, it will automatically check whether the number of detectors and estimators coincide.
It will, by default, not run approximation on any method unless the global flag for approximation is manually turned to true.

There should be no conflict between SUOD and sel_SUOD.
Take a look at the following code for a practical example:
base_estimators = [LOF()] #The class sel_SUOD automatically initizializes itself with subspaces.shape[0] clones of this array if len < 2.

#Creating exemplary subspaces
subspaces = [True]*20
subspaces.append(False)
subspaces = np.array([subspaces, subspaces])
subspaces[1][4] = False

model = sel_SUOD(base_estimators=base_estimators, subspaces=subspaces,
n_jobs=6, bps_flag=True,
contamination=contamination, approx_flag_global=True)
model.fit(X_train) # fit all models with X
predicted_scores = model.decision_function(X_test) # predict scores

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.