基于重构误差 3.1 PCA “Therefore, outlier scores can be obtained as the sum of the projected distance of a sample on all eigenvectors.” 3.2 自编码器 “Similar to PCA, AE could be used to detect outlying objects in the data by calculating the reconstruction errors”
from pyod.models.knn import KNN
from pyod.models.lof import LOF
from pyod.models.iforest import IForest
from pyod.models.pca import PCA
from pyod.utils.utility import standardizer
from pyod.utils.data import generate_data
import pandas as pd
from pyod.utils.data import evaluate_print
from pyod.utils.example import visualize
import matplotlib.pyplot as plt
import numpy as np
from pyod.models.combination import aom, moa, average, maximization, median
from pyod.utils.utility import score_to_label
import math
from pyod.models.auto_encoder import AutoEncoder
def single_detector(X_train,detector_list,detector_list_names):
X_train_norm, X_test_norm = standardizer(X_train, X_test)
y_train_pred_all = pd.DataFrame()
for name, clf in zip(detector_list_names, detector_list):
clf.fit(X_train_norm)
y_train_pred = clf.labels_
y_train_pred_all[name] = y_train_pred
num = len(detector_list)
n_col = 4
n_row = math.ceil(num / n_col)
fig = plt.figure(figsize=(n_row * 5 + 3, n_col * 5))
colors