From f152098d58c6407985080db301548862b6837c27 Mon Sep 17 00:00:00 2001 From: jmq19950824 Date: Mon, 6 Jun 2022 08:50:57 +0800 Subject: [PATCH] first commit --- README.md | 74 +++ ...est_Tabular_None_irrelevant_features_dl.h5 | Bin 15944 -> 0 bytes ...est_Tabular_None_irrelevant_features_dl.h5 | Bin 256856 -> 0 bytes ...est_Tabular_None_irrelevant_features_dl.h5 | Bin 114584 -> 0 bytes baseline/FS/fit.py | 31 -- baseline/FS/model.py | 60 --- baseline/FS/run.py | 68 --- baseline/MOGAAL/MOGAAL_D.h5 | Bin 28688 -> 0 bytes baseline/MOGAAL/run.py | 204 --------- baseline/RCCDualGAN/RCC.py | 332 -------------- baseline/RCCDualGAN/RCCDualGAN_D.h5 | Bin 366872 -> 0 bytes baseline/RCCDualGAN/run.py | 425 ------------------ ...est_Tabular_None_irrelevant_features_dl.h5 | Bin 13960 -> 0 bytes baseline/SDAD/fit.py | 311 ------------- baseline/SDAD/model.py | 90 ---- baseline/SDAD/run.py | 389 ---------------- baseline/SDAD_GMM/fit.py | 198 -------- baseline/SDAD_GMM/run.py | 157 ------- baseline/SDAD_VAE/fit.py | 305 ------------- baseline/SDAD_VAE/model.py | 115 ----- baseline/SDAD_VAE/run.py | 118 ----- baseline/SOGAAL/SOGAAL_D.h5 | Bin 28688 -> 0 bytes baseline/SOGAAL/run.py | 157 ------- baseline/WSGAN/fit.py | 118 ----- baseline/WSGAN/model.py | 48 -- baseline/WSGAN/run.py | 81 ---- data_generator.py | 4 +- run.py | 2 +- 28 files changed, 77 insertions(+), 3210 deletions(-) delete mode 100644 baseline/DevNet/model/devnet_DB_test_Tabular_None_irrelevant_features_dl.h5 delete mode 100644 baseline/FEAWAD/model/devnet_DB_test_Tabular_None_irrelevant_features_dl.h5 delete mode 100644 baseline/FEAWAD/model/pretrained_autoencoder_DB_test_Tabular_None_irrelevant_features_dl.h5 delete mode 100644 baseline/FS/fit.py delete mode 100644 baseline/FS/model.py delete mode 100644 baseline/FS/run.py delete mode 100644 baseline/MOGAAL/MOGAAL_D.h5 delete mode 100644 baseline/MOGAAL/run.py delete mode 100644 baseline/RCCDualGAN/RCC.py delete mode 100644 baseline/RCCDualGAN/RCCDualGAN_D.h5 delete mode 100644 baseline/RCCDualGAN/run.py delete mode 100644 baseline/REPEN/model/REPEN_DB_test_Tabular_None_irrelevant_features_dl.h5 delete mode 100644 baseline/SDAD/fit.py delete mode 100644 baseline/SDAD/model.py delete mode 100644 baseline/SDAD/run.py delete mode 100644 baseline/SDAD_GMM/fit.py delete mode 100644 baseline/SDAD_GMM/run.py delete mode 100644 baseline/SDAD_VAE/fit.py delete mode 100644 baseline/SDAD_VAE/model.py delete mode 100644 baseline/SDAD_VAE/run.py delete mode 100644 baseline/SOGAAL/SOGAAL_D.h5 delete mode 100644 baseline/SOGAAL/run.py delete mode 100644 baseline/WSGAN/fit.py delete mode 100644 baseline/WSGAN/model.py delete mode 100644 baseline/WSGAN/run.py diff --git a/README.md b/README.md index a690a59..3194ef0 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,76 @@ # ADBench Official Implement of "ADBench: Anomaly Detection Benchmark". + + ### Quickly Implementation of ADBench + + # 1. 设置路径 + import os + import sys + + os.chdir('...') # 设置成你本地repo的地址 + sys.path.append('...') + + # 2. 加载目前已有的模型(如下表**Import**列所示) + from baseline.PyOD import PYOD + + # 3. 实例化 + ''' + PyOD相关的模型, 以及supervised相关的模型, 需要指定模型名称(如下表**Model**列所示) + ''' + model = PYOD(model_name='...') + + # 4. 训练 + model.fit(X_train, y_train) + + # 5. 预测 + score_test = model.predict_score(X_test) + + # 6. 评价 + from myutils import Utils + utils = Utils() + + result = utils.metric(y_true=y_test, y_score=score_test, pos_label=1) # 结果中包含计算的AUC-ROC以及AUC-PR + + + + ### Supported Benchmark Algorithms +| Model | Paper/Year | Type | DL | Import | Source | +| :-----: | :--------: | :--: | :--: | :-----------------: | :------: | +| [MCD]() | xxx, xxx | Unsupervised | ✗ | from baseline.PyOD import PYOD | [Link](https://pyod.readthedocs.io/en/latest/#) | +| [PCA]() | xxx, xxx | Unsupervised | ✗ | from baseline.PyOD import PYOD | [Link](https://pyod.readthedocs.io/en/latest/#) | +| [OCSVM]() | xxx, xxx | Unsupervised | ✗ | from baseline.PyOD import PYOD | [Link](https://pyod.readthedocs.io/en/latest/#) | +| [LOF]() | xxx, xxx | Unsupervised | ✗ | from baseline.PyOD import PYOD | [Link](https://pyod.readthedocs.io/en/latest/#) | +| [CBLOF]() | xxx, xxx | Unsupervised | ✗ | from baseline.PyOD import PYOD | [Link](https://pyod.readthedocs.io/en/latest/#) | +| [COF]() | xxx, xxx | Unsupervised | ✗ | from baseline.PyOD import PYOD | [Link](https://pyod.readthedocs.io/en/latest/#) | +| [HBOS]() | xxx, xxx | Unsupervised | ✗ | from baseline.PyOD import PYOD | [Link](https://pyod.readthedocs.io/en/latest/#) | +| [KNN]() | xxx, xxx | Unsupervised | ✗ | from baseline.PyOD import PYOD | [Link](https://pyod.readthedocs.io/en/latest/#) | +| [SOD]() | xxx, xxx | Unsupervised | ✗ | from baseline.PyOD import PYOD | [Link](https://pyod.readthedocs.io/en/latest/#) | +| [COPOD](https://arxiv.org/abs/2009.09463) | ICDM, 2020 | Unsupervised | ✗ | from baseline.PyOD import PYOD | [Link](https://pyod.readthedocs.io/en/latest/#) | +| [ECOD](https://arxiv.org/abs/2201.00382) | TKDE, 2022 | Unsupervised | ✗ | from baseline.PyOD import PYOD | [Link](https://pyod.readthedocs.io/en/latest/#) | +| [IForest*]() | xxx, xxx | Unsupervised | ✗ | from baseline.PyOD import PYOD | [Link](https://pyod.readthedocs.io/en/latest/#) | +| [FeatureBagging*]() | xxx, xxx | Unsupervised | ✗ | from baseline.PyOD import PYOD | [Link](https://pyod.readthedocs.io/en/latest/#) | +| [LSCP*]() | xxx, xxx | Unsupervised | ✗ | from baseline.PyOD import PYOD | [Link](https://pyod.readthedocs.io/en/latest/#) | +| [LODA*]() | xxx, xxx | Unsupervised | ✗ | from baseline.PyOD import PYOD | [Link](https://pyod.readthedocs.io/en/latest/#) | +| [SOGAAL](https://arxiv.org/pdf/1809.10816.pdf) | TKDE, 2019 | Unsupervised | ✓ | from baseline.PyOD import PYOD | [Link](https://pyod.readthedocs.io/en/latest/#) | +| [MOGAAL*](https://arxiv.org/pdf/1809.10816.pdf) | TKDE, 2019 | Unsupervised | ✓ | from baseline.PyOD import PYOD | [Link](https://pyod.readthedocs.io/en/latest/#) | +| [DAGMM](https://openreview.net/forum?id=BJJLHbb0-) | ICLR, 2018 | Unsupervised | ✓ | from baseline.DAGMM.run import DAGMM | [Link](https://github.com/mperezcarrasco/PyTorch-DAGMM) | +| [AutoEncoder]() | xxx, xxx | Semi-supervised^ | ✓ | from baseline.PyOD import PYOD | [Link](https://pyod.readthedocs.io/en/latest/#) | +| [GANomaly](https://arxiv.org/abs/1805.06725) | ACCV, 2018 | Semi-supervised^ | ✓ | from baseline.GANomaly.run import GANomaly | [Link]() | +| [XGBOD](https://arxiv.org/abs/1912.00290) | IJCNN, 2018 | Semi-supervised | ✗ | from baseline.PyOD import PYOD | [Link](https://pyod.readthedocs.io/en/latest/#) | +| [DeepSAD](https://arxiv.org/abs/1906.02694) | ICLR, 2019 | Semi-supervised | ✓ | from baseline.DeepSAD.src.run import DeepSAD | [Link](https://github.com/lukasruff/Deep-SAD-PyTorch) | +| [REPEN](https://arxiv.org/abs/1806.04808) | KDD, 2018 | Weakly-supervised | ✓ | from baseline.REPEN.run import REPEN | [Link]() | +| [DevNet](https://arxiv.org/abs/1911.08623) | KDD, 2019 | Weakly-supervised | ✓ | from baseline.DevNet.run import DevNet | [Link](https://github.com/GuansongPang/deviation-network) | +| [PReNet](https://arxiv.org/abs/1910.13601) | arxiv, 2020 | Weakly-supervised | ✓ | from baseline.PReNet.run import PReNet | [Link]() | +| [FEAWAD](https://arxiv.org/abs/2105.10500) | TNNLS, 2021 | Weakly-supervised | ✓ | from baseline.FEAWAD.run import FEAWAD | [Link](https://github.com/yj-zhou/Feature_Encoding_with_AutoEncoders_for_Weakly-supervised_Anomaly_Detection/blob/main/FEAWAD.py) | +| [LR]() | xxx, xxx | Supervised | ✗ | from baseline.Supervised import supervised | [Link]() | +| [NB]() | xxx, xxx | Supervised | ✗ | from baseline.Supervised import supervised | [Link]() | +| [SVM]() | xxx, xxx | Supervised | ✗ | from baseline.Supervised import supervised | [Link]() | +| [MLP]() | xxx, xxx | Supervised | ✓ | from baseline.Supervised import supervised | [Link]() | +| [RF](https://www.stat.berkeley.edu/~breiman/randomforest2001.pdf) | xxx, xxx | Supervised | ✗ | from baseline.Supervised import supervised | [Link]() | +| [LGB](https://proceedings.neurips.cc/paper/2017/file/6449f44a102fde848669bdd9eb6b76fa-Paper.pdf) | NIPS, 2017 | Supervised | ✗ | from baseline.Supervised import supervised | [Link](https://lightgbm.readthedocs.io/en/latest/) | +| [XGB](https://arxiv.org/abs/1603.02754) | KDD, 2016 | Supervised | ✗ | from baseline.Supervised import supervised | [Link](https://xgboost.readthedocs.io/en/stable/) | +| [ResNet](https://arxiv.org/pdf/2106.11959.pdf) | NIPS, 2019 | Supervised | ✓ | from baseline.FTTransformer.run import FTTransformer | [Link](https://yura52.github.io/rtdl/stable/index.html) | +| [FTTransformer](https://arxiv.org/pdf/2106.11959.pdf) | NIPS, 2019 | Supervised | ✓ | from baseline.FTTransformer.run import FTTransformer | [Link](https://yura52.github.io/rtdl/stable/index.html) | +- '*' denotes that this model is ensembled. +- '^' denotes that this semi-supervised model only uses normal samples in the training stage. + diff --git a/baseline/DevNet/model/devnet_DB_test_Tabular_None_irrelevant_features_dl.h5 b/baseline/DevNet/model/devnet_DB_test_Tabular_None_irrelevant_features_dl.h5 deleted file mode 100644 index 5f076552531003091273274c19ef270e2705cd03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15944 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 B@1Xzy diff --git a/baseline/FEAWAD/model/devnet_DB_test_Tabular_None_irrelevant_features_dl.h5 b/baseline/FEAWAD/model/devnet_DB_test_Tabular_None_irrelevant_features_dl.h5 deleted file mode 100644 index 6de6b91cd5df17f8614a0012306ab2d5ec27fbd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 256856 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�QR42=d5`~ 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

>x_gZyUR%flk% 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 A0RR91 diff --git a/baseline/FS/fit.py b/baseline/FS/fit.py deleted file mode 100644 index f8536eb..0000000 --- a/baseline/FS/fit.py +++ /dev/null @@ -1,31 +0,0 @@ -import os -import numpy as np -import torch -from torch import nn -from torch.autograd import Variable -from myutils import Utils -from torch.distributions import MultivariateNormal, Normal -from torch.distributions.distribution import Distribution - -def fit(train_loader, model, optimizer, epochs, device=None): - criterion = nn.BCELoss() - - for epoch in range(epochs): - for i, data in enumerate(train_loader): - - X, y = data - X = X.to(device); y = y.to(device) - X = Variable(X); y = Variable(y) - - # clear gradient - model.zero_grad() - - # loss forward - # 注意cv中由于batchnorm的存在要一起计算score - _, prob = model(X) - loss = criterion(prob, y) - - # loss backward - loss.backward() - # parameter update - optimizer.step() \ No newline at end of file diff --git a/baseline/FS/model.py b/baseline/FS/model.py deleted file mode 100644 index 24225d6..0000000 --- a/baseline/FS/model.py +++ /dev/null @@ -1,60 +0,0 @@ -import torch -from torch import nn - -class FS(nn.Module): - def __init__(self, input_size, act_fun): - super(FS, self).__init__() - - self.encoder = nn.Sequential( - nn.Linear(input_size, 128), - act_fun, - nn.Linear(128, 64), - act_fun - ) - - # if we add relu layer in the encoder, how to represent the direction for non-negative value? - - self.decoder = nn.Sequential( - nn.Linear(64, 128), - act_fun, - nn.Linear(128, input_size), - act_fun - ) - - self.reg_1 = nn.Sequential( - nn.Linear(input_size+64+1, 256), - act_fun - ) - - self.reg_2 = nn.Sequential( - nn.Linear(256+1, 32), - act_fun - ) - - self.reg_3 = nn.Sequential( - nn.Linear(32+1, 1), - nn.Sigmoid() - ) - - def forward(self, X): - # hidden representation - h = self.encoder(X) - - # reconstructed input vector - X_hat = self.decoder(h) - - # reconstruction residual vector - r = torch.sub(X_hat, X) - - # reconstruction error - e = r.norm(dim=1).reshape(-1, 1) - - # normalized reconstruction residual vector - r = torch.div(r, e) #div by broadcast - - # regression - feature = self.reg_1(torch.cat((h, r, e), dim=1)) - feature = self.reg_2(torch.cat((feature, e), dim=1)) - prob = self.reg_3(torch.cat((feature, e), dim=1)) - - return feature, prob.squeeze() \ No newline at end of file diff --git a/baseline/FS/run.py b/baseline/FS/run.py deleted file mode 100644 index 62605ac..0000000 --- a/baseline/FS/run.py +++ /dev/null @@ -1,68 +0,0 @@ -import pandas as pd -import numpy as np -import random -import os -import sys -from itertools import product -import matplotlib.pyplot as plt -from sklearn.model_selection import KFold, StratifiedKFold, train_test_split - -import torch -import torchvision -from torch import nn -from torch.autograd import Variable -from torch.utils.data import Subset, DataLoader, TensorDataset -from torchvision import datasets, transforms -import torch.nn.functional as F - -# import warnings -# warnings.filterwarnings("ignore") - -from myutils import Utils -from baseline.FS.model import FS -from baseline.FS.fit import fit - -class fs(): - def __init__(self, seed:int, model_name=None, - epochs:int=200, batch_size:int=256, act_fun=nn.ReLU(), - lr:float=1e-3, weight_decay:float=1e-6): - self.seed = seed - self.utils = Utils() - self.device = self.utils.get_device() - - #hyper-parameters - self.epochs = epochs - self.batch_size = batch_size - self.act_fun = act_fun - self.lr = lr - self.weight_decay = weight_decay - - def fit2test(self, data): - #data - X_train = data['X_train'] - y_train = data['y_train'] - X_test = data['X_test'] - y_test = data['y_test'] - - input_size = X_train.shape[1] #input size - X_test_tensor = torch.from_numpy(X_test).float() # testing set - X_train_tensor = torch.from_numpy(X_train).float() - train_tensor = TensorDataset(torch.from_numpy(X_train).float(), torch.tensor(y_train).float()) - train_loader = DataLoader(train_tensor, batch_size=self.batch_size, shuffle=False, drop_last=True) - - self.utils.set_seed(self.seed) - model = FS(input_size=input_size, act_fun=self.act_fun) - optimizer = torch.optim.RMSprop(model.parameters(), lr=self.lr, weight_decay=self.weight_decay) # optimizer - - # training - fit(train_loader=train_loader, model=model, optimizer=optimizer, epochs=self.epochs, device=self.device) - - #evaluating in the testing set - model.eval() - with torch.no_grad(): - _, score_test = model(X_test_tensor) - score_test = score_test.cpu().numpy() - - result = self.utils.metric(y_true=y_test, y_score=score_test) - - return result \ No newline at end of file diff --git a/baseline/MOGAAL/MOGAAL_D.h5 b/baseline/MOGAAL/MOGAAL_D.h5 deleted file mode 100644 index 8e75cb0298f562ab402cbf494b168e6a0dc697cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28688 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 self.args.stop_epochs: - stop = 1 - - # saving model - if (epoch + 1) == epochs: - # discriminator weights - discriminator.save(os.path.join('baseline','MOGAAL','MOGAAL_D.h5')) - - # Detection result - data_y = pd.DataFrame(data_y) - result = np.concatenate((p_value, data_y), axis=1) - result = pd.DataFrame(result, columns=['p', 'y']) - result = result.sort_values('p', ascending=True) - - return self - - # evaluate - def predict_score(self, X): - data_x = X - - discriminator_all = load_model(os.path.join('baseline', 'MOGAAL', 'MOGAAL_D.h5')) - p_value = discriminator_all.predict(data_x) - p_value = pd.DataFrame(p_value) - result = pd.DataFrame(p_value, columns=['p']) - result = result.sort_values('p', ascending=True) - score = np.array(1 - result['p']) - - return score \ No newline at end of file diff --git a/baseline/RCCDualGAN/RCC.py b/baseline/RCCDualGAN/RCC.py deleted file mode 100644 index dfb6357..0000000 --- a/baseline/RCCDualGAN/RCC.py +++ /dev/null @@ -1,332 +0,0 @@ -import math - -import numpy as np -import scipy.sparse -import scipy.sparse.linalg - -from scipy.sparse import csr_matrix, triu, find -from scipy.sparse.csgraph import minimum_spanning_tree, connected_components -from scipy.spatial import distance - - -class RccCluster: - """ - Computes a clustering following: Robust continuous clustering, (Shaha and Koltunb, 2017). - The interface is based on the sklearn.cluster module. - - Parameters - ---------- - k (int) number of neighbors for each sample in X - measure (string) distance metric, one of 'cosine' or 'euclidean' - clustering_threshold (float) threshold to assign points together in a cluster. Higher means fewer larger clusters - eps (float) numerical epsilon used for computation - verbose (boolean) verbosity - """ - - def __init__(self, k=10, measure='euclidean', clustering_threshold = 1, eps=1e-5, verbose=True): - - self.k = k - self.measure = measure - self.clustering_threshold = clustering_threshold - self.eps = eps - self.verbose = verbose - - self.labels_ = None - self.U = None - self.i = None - self.j = None - self.n_samples = None - - def compute_assignment(self, epsilon): - """ - Assigns points to clusters based on their representative. Two points are part of the same cluster if their - representative are close enough (their squared euclidean distance is < delta) - """ - for m in range(1, 100, 1): - diff = np.sum((self.U[self.i, :] - self.U[self.j, :]) ** 2, axis=1) - - # computing connected components. - is_conn = np.sqrt(diff) <= self.clustering_threshold * m * epsilon - #print(m) - G = scipy.sparse.coo_matrix((np.ones((2 * np.sum(is_conn),)), - (np.concatenate([self.i[is_conn], self.j[is_conn]], axis=0), - np.concatenate([self.j[is_conn], self.i[is_conn]], axis=0))), - shape=[self.n_samples, self.n_samples]) - - num_components, labels = connected_components(G, directed=False) - if num_components <=20: - # print(m) - # print(num_components) - return labels, num_components - break - - #20210106,error处理(源代码会报错) - if num_components > 20: - return labels, num_components - - - @staticmethod - def geman_mcclure(data, mu): - """ - Geman McClure function. See Bayesian image analysis. An application to single photon emission tomography (1985). - - Parameters - ---------- - data (array) 2d numpy array of data - mu (float) scale parameter - """ - return (mu / (mu + np.sum(data ** 2, axis=1))) ** 2 - - def compute_obj(self, X, U, lpq, i, j, lambda_, mu, weights, iter_num): - """ - Computes the value of the objective function. - - Parameters - ---------- - X (array) data points, 2d numpy array of shape (n_features, n_clusters) - U (int) representative points, 2d numpy array of shape (n_features, n_clusters) - lpq (array) penalty term on the connections - i (array) first slice of w, used for convenience - j (array) second slice of w, used for convenience - lambda_ (float) term balancing the contributions of the losses - mu (float) scale parameter - weights (array) weights of the connections - iter_num (int) current iteration, only used for printing to screen if verbose=True - """ - - # computing the objective as in equation [2] - data = 0.5 * np.sum(np.sum((X - U) ** 2)) - diff = np.sum((U[i, :] - U[j, :]) ** 2, axis=1) - smooth = lambda_ * 0.5 * (np.inner(lpq * weights, diff) + mu * - np.inner(weights, (np.sqrt(lpq + self.eps) - 1) ** 2)) - - # final objective - obj = data + smooth - # if self.verbose: - # print(' {} | {} | {} | {}'.format(iter_num, data, smooth, obj)) - - return obj - - @staticmethod - def m_knn(X, k, measure='euclidean'): - """ - This code is taken from: - https://bitbucket.org/sohilas/robust-continuous-clustering/src/ - The original terms of the license apply. - Construct mutual_kNN for large scale dataset - - If j is one of i's closest neighbors and i is also one of j's closest members, - the edge will appear once with (i,j) where i < j. - - Parameters - ---------- - X (array) 2d array of data of shape (n_samples, n_dim) - k (int) number of neighbors for each sample in X - measure (string) distance metric, one of 'cosine' or 'euclidean' - """ - - samples = X.shape[0] - batch_size = 1000000 - b = np.arange(k + 1) - b = tuple(b[1:].ravel()) - - z = np.zeros((samples, k)) - weigh = np.zeros_like(z) - - # This loop speeds up the computation by operating in batches - # This can be parallelized to further utilize CPU/GPU resource - - for x in np.arange(0, samples, batch_size): - start = x - end = min(x + batch_size, samples) - - w = distance.cdist(X[start:end], X, measure) - - y = np.argpartition(w, b, axis=1) - - z[start:end, :] = y[:, 1:k + 1] - weigh[start:end, :] = np.reshape(w[tuple(np.repeat(np.arange(end - start), k)), - tuple(y[:, 1:k + 1].ravel())], (end - start, k)) - del w - - ind = np.repeat(np.arange(samples), k) - - P = csr_matrix((np.ones((samples * k)), (ind.ravel(), z.ravel())), shape=(samples, samples)) - Q = csr_matrix((weigh.ravel(), (ind.ravel(), z.ravel())), shape=(samples, samples)) - - Tcsr = minimum_spanning_tree(Q) - P = P.minimum(P.transpose()) + Tcsr.maximum(Tcsr.transpose()) - P = triu(P, k=1) - - V = np.asarray(find(P)).T - return V[:, :2].astype(np.int32) - - def run_rcc(self, X, w, max_iter=100, inner_iter=4): - """ - Main function for computing the clustering. - - Parameters - ---------- - X (array) 2d array of data of shape (n_samples, n_dim). - w (array) weights for each edge, as computed by the mutual knn clustering. - max_iter (int) maximum number of iterations to run the algorithm. - inner_iter (int) number of inner iterations. 4 works well in most cases. - """ - - X = X.astype(np.float32) # features stacked as N x D (D is the dimension) - - w = w.astype(np.int32) # list of edges represented by start and end nodes - assert w.shape[1] == 2 - - # slice w for convenience - i = w[:, 0] - j = w[:, 1] - - # initialization - n_samples, n_features = X.shape - - n_pairs = w.shape[0] - - # precomputing xi - xi = np.linalg.norm(X, 2) - - # set the weights as given in equation [S1] (supplementary information), making sure to exploit the data - # sparsity - R = scipy.sparse.coo_matrix((np.ones((i.shape[0] * 2,)), - (np.concatenate([i, j], axis=0), - np.concatenate([j, i], axis=0))), shape=[n_samples, n_samples]) - - # number of connections - n_conn = np.sum(R, axis=1) - - # make sure to convert back to a numpy array from a numpy matrix, since the output of the sum() operation on a - # sparse matrix is a numpy matrix - n_conn = np.asarray(n_conn) - - # equation [S1] - weights = np.mean(n_conn) / np.sqrt(n_conn[i] * n_conn[j]) - weights = weights[:, 0] # squueze out the unnecessary dimension - - # initializing the representatives U to have the same value as X - U = X.copy() - - # initialize lpq to 1, that is all connections are active - # lpq is a penalty term on the connections - lpq = np.ones((i.shape[0],)) - - # compute delta and mu, see SI for details - epsilon = np.sqrt(np.sum((X[i, :] - X[j, :]) ** 2 + self.eps, axis=1)) - - # Note: suppress low values. This hard coded threshold could lead to issues with very poorly normalized data. - epsilon[epsilon / np.sqrt(n_features) < 1e-2] = np.max(epsilon) - - epsilon = np.sort(epsilon) - - # compute mu, see section Graduated Nonconvexity in the SI - mu = 3.0 * epsilon[-1] ** 2 - - # take the top 1% of the closest neighbours as a heuristic - top_samples = np.minimum(250.0, math.ceil(n_pairs * 0.01)) - - delta = np.mean(epsilon[:int(top_samples)]) - epsilon = np.mean(epsilon[:int(math.ceil(n_pairs * 0.01))]) - - # computation of matrix A = D-R (here D is the diagonal matrix and R is the symmetric matrix), see equation (8) - - R = scipy.sparse.coo_matrix((np.concatenate([weights * lpq, weights * lpq], axis=0), - (np.concatenate([i, j], axis=0), np.concatenate([j, i], axis=0))), - shape=[n_samples, n_samples]) - - D = scipy.sparse.coo_matrix((np.squeeze(np.asarray(np.sum(R, axis=1))), - ((range(n_samples), range(n_samples)))), - (n_samples, n_samples)) - - # initial computation of lambda (lambda is a reserved keyword in python) - # note: compute the largest magnitude eigenvalue instead of the matrix norm as it is faster to compute - - eigval = scipy.sparse.linalg.eigs(D - R, k=1, return_eigenvectors=False).real - - # lambda is a reserved keyword in python, so we use lambda_. Calculate lambda as per equation 9. - lambda_ = xi / eigval[0] - - # if self.verbose: - # print('mu = {}, lambda = {}, epsilon = {}, delta = {}'.format(mu, lambda_, epsilon, delta)) - # print(' Iter | Data \t | Smooth \t | Obj \t') - - # pre-allocate memory for the values of the objective function - obj = np.zeros((max_iter,)) - - inner_iter_count = 0 - - # start of optimization phase - - for iter_num in range(1, max_iter): - - # update lpq. Equation 5. - lpq = self.geman_mcclure(U[i, :] - U[j, :], mu) - - # compute objective. Equation 6. - obj[iter_num] = self.compute_obj(X, U, lpq, i, j, lambda_, mu, weights, iter_num) - - # update U. Equation 7. For efficiency we form sparse matrices R and D separately, then combine them. - - R = scipy.sparse.coo_matrix((np.concatenate([weights * lpq, weights * lpq], axis=0), - (np.concatenate([i, j], axis=0), np.concatenate([j, i], axis=0))), - shape=[n_samples, n_samples]) - - D = scipy.sparse.coo_matrix((np.asarray(np.sum(R, axis=1))[:, 0], ((range(n_samples), range(n_samples)))), - shape=(n_samples, n_samples)) - - M = scipy.sparse.eye(n_samples) + lambda_ * (D - R) - - # Solve for U. This could be further optimised through appropriate preconditioning. - U = scipy.sparse.linalg.spsolve(M, X) - - # check for stopping criteria - inner_iter_count += 1 - - # check for the termination conditions and modulate delta if necessary. - if (abs(obj[iter_num - 1] - obj[iter_num]) < 1e-1) or inner_iter_count == inner_iter: - if mu >= delta: - mu /= 2.0 - elif inner_iter_count == inner_iter: - mu = 0.5 * delta - else: - break - - eigval = scipy.sparse.linalg.eigs(D - R, k=1, return_eigenvectors=False).real - lambda_ = xi / eigval[0] - inner_iter_count = 0 - - # at the end of the run, assign values to the class members. - self.U = U.copy() - self.i = i - self.j = j - self.n_samples = n_samples - C, num_components = self.compute_assignment(epsilon) - - return U, C, num_components - - def fit(self, X): - """ - Computes the clustering and returns the labels - Parameters - ---------- - X (array) numpy array of data to cluster with shape (n_samples, n_features) - """ - - assert type(X) == np.ndarray - assert len(X.shape) == 2 - - # compute the mutual knn graph - # print(min(X.shape[0], self.k)) - mknn_matrix = self.m_knn(X, min(X.shape[0]-1, self.k), measure=self.measure) - - # perform the RCC clustering - U, C, num_components = self.run_rcc(X, mknn_matrix) - - # store the class labels in the appropriate class member to match the sklearn.cluster interface - self.labels_ = C.copy() - - # return the computed labels - return self.labels_, num_components diff --git a/baseline/RCCDualGAN/RCCDualGAN_D.h5 b/baseline/RCCDualGAN/RCCDualGAN_D.h5 deleted file mode 100644 index 680102acef7cf88064e04bf3e244abf7900f0f81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 366872 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

bzabM7)3%_> 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ÄAs5-D4G?PM5iPLBG0#9qi`XB6I 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

6tY3?Fv?v}Q=3iTV)5b?2E^v`LYn>Z%lv=Ns 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

  • 2`TJ*@@<~HD`gnnC=G^+};W_vi_`BF@ph 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�PtT=8YbUE-# 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 L+)4T!I!FH>fxp2a diff --git a/baseline/RCCDualGAN/run.py b/baseline/RCCDualGAN/run.py deleted file mode 100644 index 55c48e8..0000000 --- a/baseline/RCCDualGAN/run.py +++ /dev/null @@ -1,425 +0,0 @@ -from keras.layers import Input, Dense, Dropout -from keras.models import Sequential, Model -from keras.optimizers import SGD -import numpy as np -import pandas as pd -from collections import defaultdict -import matplotlib.pyplot as plt -import keras -import math -from scipy.special import comb -import argparse -from keras.models import load_model -from baseline.RCCDualGAN import RCC - -#local addtive packages -from tqdm import tqdm -from itertools import product -import random -import tensorflow as tf -import time -import os -from myutils import Utils -from sklearn.metrics import roc_curve,auc,average_precision_score,precision_score,recall_score,f1_score -import warnings -warnings.filterwarnings("ignore") - -class RccDualGAN(): - def __init__(self, seed, model_name='RCCDualGAN'): - self.seed = seed - self.utils = Utils() - - parser = argparse.ArgumentParser(description="Run RCC-Dual-GAN.") - # default = 1000,考虑到计算成本这里设置为100 - parser.add_argument('--max_iter', type=int, default=100, - help='The maximum number of iterations.') - parser.add_argument('--lr_d', type=float, default=0.01, - help='Learning rate of discriminator.') - parser.add_argument('--lr_g_unl', type=float, default=0.0001, - help='Learning rate of generator.') - parser.add_argument('--lr_g_out', type=float, default=0.0001, - help='Learning rate of generator.') - parser.add_argument('--decay', type=float, default=1e-6, - help='Decay.') - parser.add_argument('--batch_size', type=int, default=1000, - help='batch_size.') - parser.add_argument('--momentum', type=float, default=0.9, - help='Momentum.') - parser.add_argument('--nash_thr_1', type=float, default=0.5, - help='Threshold 1.') - parser.add_argument('--nash_thr_2', type=float, default=0.4, - help='Threshold 2.') - - # self.args = parser.parse_args() - self.args, unknown = parser.parse_known_args() - - # Sub-Generator - def create_generator(self, latent_size): - gen = Sequential() - gen.add(Dense(latent_size, input_dim=latent_size, activation='relu', kernel_initializer=keras.initializers.Identity(gain=1.0))) - gen.add(Dense(latent_size, activation='relu', kernel_initializer=keras.initializers.Identity(gain=1.0))) - latent = Input(shape=(latent_size,)) - fake_data = gen(latent) - return Model(latent, fake_data) - - # Sub-Discriminator - def create_sub_discriminator(self, size,latent_size): - dis = Sequential() - dis.add(Dense(size, input_dim=latent_size, activation='relu', kernel_initializer= keras.initializers.VarianceScaling(scale=1.0, mode='fan_in', distribution='normal', seed=None))) - dis.add(Dense(10, activation='relu', kernel_initializer=keras.initializers.VarianceScaling(scale=1.0, mode='fan_in', distribution='normal', seed=None))) - dis.add(Dense(1, activation='sigmoid',kernel_initializer=keras.initializers.VarianceScaling(scale=1.0, mode='fan_in', distribution='normal',seed=None))) - data = Input(shape=(latent_size,)) - fake = dis(data) - return Model(data, fake) - - # Discriminator - def create_discriminator(self, size,latent_size): - dis = Sequential() - dis.add(Dense(size, input_dim=latent_size, activation='relu', kernel_initializer= keras.initializers.VarianceScaling(scale=1.0, mode='fan_in', distribution='normal', seed=None))) - dis.add(Dense(10, activation='relu', kernel_initializer=keras.initializers.VarianceScaling(scale=1.0, mode='fan_in', distribution='normal', seed=None))) - dis.add(Dropout(0.2)) - dis.add(Dense(1, activation='sigmoid',kernel_initializer=keras.initializers.VarianceScaling(scale=1.0, mode='fan_in', distribution='normal',seed=None))) - data = Input(shape=(latent_size,)) - fake = dis(data) - return Model(data, fake) - - # Euclidean distance - def distEclud(self, x, weights): - dist = [] - for w in weights: - d = np.linalg.norm(x-w) - dist.append(d) - return np.array(dist) - - def fit(self, X_train, y_train, print_log=False): - # set seed - self.utils.set_seed(self.seed) - - data_out_x, data_unl_x, data_out_y, data_unl_y = X_train[y_train==1], X_train[y_train==0], y_train[y_train==1], y_train[y_train==0] - - if print_log: - print(data_unl_x) - print(data_unl_x.shape) - data_x = np.concatenate((data_out_x, data_unl_x), axis=0) - data_y = np.concatenate((data_out_y, data_unl_y), axis=0) - data_out_size = data_out_x.shape[0] - data_unl_size = data_unl_x.shape[0] - data_size = data_out_size + data_unl_size - latent_size = data_x.shape[1] - batch_size = min(self.args.batch_size, data_size) - batch_out_size = min(100, data_out_size) - batch_unl_size = min(batch_size - batch_out_size, data_unl_size) - mul = math.ceil(batch_unl_size / batch_out_size) - if print_log: - print("The dimensions of the outliers:{}*{}".format(data_out_size, latent_size)) - print("The dimensions of the unlabeled data:{}*{}".format(data_unl_size, latent_size)) - - names = locals() - eva_list = [] - eva_save = 1 - - # RCC - clusterer = RCC.RccCluster(measure='cosine') - if data_out_size > 2: - clu_out, k_out = clusterer.fit(data_out_x) - clu_out = pd.DataFrame(clu_out) - data_out_x = pd.DataFrame(data_out_x) - data_out_x_clu = np.concatenate((data_out_x, clu_out), axis=1) - elif data_out_size == 2: - clu_out = np.array([0] * (1) + [1] * (1)) - clu_out = pd.DataFrame(clu_out) - data_out_x_clu = np.concatenate((data_out_x, clu_out), axis=1) - k_out = 2 - else: - clu_out = np.array([0] * (1)) - clu_out = pd.DataFrame(clu_out) - data_out_x_clu = np.concatenate((data_out_x, clu_out), axis=1) - k_out = 1 - - clu_unl, k_unl = clusterer.fit(data_unl_x) - clu_unl = pd.DataFrame(clu_unl) - data_unl_x = pd.DataFrame(data_unl_x) - data_unl_x_clu = np.concatenate((data_unl_x, clu_unl), axis=1) - - # Divide data into different data subsets - for i in range(k_out): - names['data_out_x_' + str(i)] = [] - for idx in range(data_out_size): - for i in range(k_out): - if data_out_x_clu[idx, -1] == i: - names['data_out_x_clu_' + str(idx)] = data_out_x_clu[idx, :-1].reshape(1, latent_size) - if names['data_out_x_' + str(i)] == []: - names['data_out_x_' + str(i)] = names['data_out_x_clu_' + str(idx)] - else: - names['data_out_x_' + str(i)] = np.concatenate( - (names['data_out_x_' + str(i)], names['data_out_x_clu_' + str(idx)]), axis=0) - for i in range(k_unl): - names['data_unl_x_' + str(i)] = [] - for idx in range(data_unl_size): - for i in range(k_unl): - if data_unl_x_clu[idx, -1] == i: - names['data_unl_x_clu_' + str(idx)] = data_unl_x_clu[idx, :-1].reshape(1, latent_size) - if names['data_unl_x_' + str(i)] == []: - names['data_unl_x_' + str(i)] = names['data_unl_x_clu_' + str(idx)] - else: - names['data_unl_x_' + str(i)] = np.concatenate( - (names['data_unl_x_' + str(i)], names['data_unl_x_clu_' + str(idx)]), axis=0) - for i in range(k_out): - if print_log: - print(names['data_out_x_' + str(i)].shape) - for i in range(k_unl): - if print_log: - print(names['data_unl_x_' + str(i)].shape) - - for i in range(k_out): - names['stop_out_' + str(i)] = 0 - for i in range(k_unl): - names['stop_unl_' + str(i)] = 0 - - # Create sub-discriminator - for i in range(k_out): - names['discriminator_out_' + str(i)] = self.create_sub_discriminator(size = min(data_size, 1000), latent_size = latent_size) - names['discriminator_out_' + str(i)].compile( - optimizer=SGD(lr=self.args.lr_d, decay=self.args.decay, momentum=self.args.momentum), loss='binary_crossentropy') - for i in range(k_unl): - names['discriminator_unl_' + str(i)] = self.create_sub_discriminator(size = min(data_size, 1000), latent_size = latent_size) - names['discriminator_unl_' + str(i)].compile( - optimizer=SGD(lr=self.args.lr_d, decay=self.args.decay, momentum=self.args.momentum), loss='binary_crossentropy') - - # Create discriminator - discriminator_all = self.create_discriminator(size = min(data_size, 1000), latent_size = latent_size) - discriminator_all.compile(optimizer=SGD(lr=self.args.lr_d, decay=self.args.decay, momentum=self.args.momentum), - loss='binary_crossentropy', metrics=['accuracy']) - - # Create sub-generator and combine_model - for i in range(k_out): - names['generator_out_' + str(i)] = self.create_generator(latent_size) - latent = Input(shape=(latent_size,)) - names['fake_out_' + str(i)] = names['generator_out_' + str(i)](latent) - names['discriminator_out_' + str(i)].trainable = False - names['fake_out_' + str(i)] = names['discriminator_out_' + str(i)](names['fake_out_' + str(i)]) - names['combine_model_out_' + str(i)] = Model(latent, names['fake_out_' + str(i)]) - names['combine_model_out_' + str(i)].compile( - optimizer=SGD(lr=self.args.lr_g_out, decay=self.args.decay, momentum=self.args.momentum), loss='binary_crossentropy') - for i in range(k_unl): - names['generator_unl_' + str(i)] = self.create_generator(latent_size) - latent = Input(shape=(latent_size,)) - names['fake_unl_' + str(i)] = names['generator_unl_' + str(i)](latent) - names['discriminator_unl_' + str(i)].trainable = False - names['fake_unl_' + str(i)] = names['discriminator_unl_' + str(i)](names['fake_unl_' + str(i)]) - names['combine_model_unl_' + str(i)] = Model(latent, names['fake_unl_' + str(i)]) - names['combine_model_unl_' + str(i)].compile( - optimizer=SGD(lr=self.args.lr_g_unl, decay=self.args.decay, momentum=self.args.momentum), loss='binary_crossentropy') - - # Initialize the stop node - epochs = self.args.max_iter - stop_iter = epochs - stop_iter_all = np.array([stop_iter] * (int(k_out + k_unl))) - - # Start iteration - if print_log: - print('Training...') - for epoch in tqdm(range(epochs)): - if print_log: - print('Epoch {} of {}'.format(epoch + 1, epochs)) - - # Sample mini-batch data - for i in range(k_out): - names['data_out_x_' + str(i)] = pd.DataFrame(names['data_out_x_' + str(i)]) - names['data_out_batch_x_' + str(i)] = names['data_out_x_' + str(i)].sample( - n=math.ceil((names['data_out_x_' + str(i)].shape[0] * batch_out_size) / data_out_size), replace=False, - random_state=None, axis=0) - for i in range(k_unl): - names['data_unl_x_' + str(i)] = pd.DataFrame(names['data_unl_x_' + str(i)]) - names['data_unl_batch_x_' + str(i)] = names['data_unl_x_' + str(i)].sample( - n=math.ceil((names['data_unl_x_' + str(i)].shape[0] * batch_unl_size) / data_unl_size), replace=False, - random_state=None, axis=0) - - # Train sub-generators and sub-discriminators - for i in range(k_out): - names['data_out_batch_x_' + str(i)] = pd.DataFrame(names['data_out_batch_x_' + str(i)]) - # Train sub-discriminators - noise = np.random.uniform(0, 1, (int(names['data_out_batch_x_' + str(i)].shape[0]), latent_size)) - names['generated_data_out_' + str(i)] = names['generator_out_' + str(i)].predict(noise, verbose=0) - names['x_out_' + str(i)] = np.concatenate( - (names['data_out_batch_x_' + str(i)], names['generated_data_out_' + str(i)]), axis=0) - names['y_out_' + str(i)] = np.array([1] * (int(names['data_out_batch_x_' + str(i)].shape[0])) + [0] * ( - int(names['data_out_batch_x_' + str(i)].shape[0]))) - names['discriminator_out' + str(i)] = names['discriminator_out_' + str(i)].train_on_batch( - names['x_out_' + str(i)], names['y_out_' + str(i)]) - - # Train sub-generators - if names['stop_out_' + str(i)] == 0: - trick_out = np.array([1] * (names['data_out_batch_x_' + str(i)].shape[0])) - names['generator_out' + str(i)] = names['combine_model_out_' + str(i)].train_on_batch(noise, trick_out) - - # The evaluation of Nash equilibrium - if stop_iter_all[i] == epochs: - names['generated_data_out_' + str(i)] = pd.DataFrame(names['generated_data_out_' + str(i)]) - sample_num = min(10, names['data_out_batch_x_' + str(i)].shape[0]) - names['eva_nash_data_out_' + str(i)] = names['generated_data_out_' + str(i)].sample(sample_num, - replace=False, - random_state=None, - axis=0) - names['eva_nash_data_out_' + str(i)] = names['eva_nash_data_out_' + str(i)].values - names['nash_out_' + str(i)] = 0 - for idx in range(sample_num): - real = 0 - dists_out = self.distEclud(names['eva_nash_data_out_' + str(i)][idx,], names['x_out_' + str(i)]) - dists_out = pd.DataFrame(dists_out) - names['y_out_' + str(i)] = pd.DataFrame(names['y_out_' + str(i)]) - dists_out = np.concatenate((dists_out, names['y_out_' + str(i)]), axis=1) - dists_out = pd.DataFrame(dists_out, columns=['d', 'y']) - dists_out = dists_out.sort_values('d', ascending=True) - dists_out = dists_out.values - for index in range(max(sample_num, 2)): - if dists_out[index, 1] == 1: - real = real + 1 - gen_real = real / max(sample_num, 2) - if gen_real >= self.args.nash_thr_1: - names['nash_out_' + str(i)] = names['nash_out_' + str(i)] + 1 - names['nash_out_' + str(i)] = names['nash_out_' + str(i)] / max(sample_num, 2) - if names['nash_out_' + str(i)] >= self.args.nash_thr_2: - stop_iter_all[i] = epoch + 1 - # print("The {}th subset contains {} samples, the evaluation of Nash equilibrium is {}".format(i, sample_num, names['nash_out_' + str(i)])) - - for i in range(k_unl): - names['data_unl_batch_x_' + str(i)] = pd.DataFrame(names['data_unl_batch_x_' + str(i)]) - - # Train sub-discriminators - noise = np.random.uniform(0, 1, (int(names['data_unl_batch_x_' + str(i)].shape[0]), latent_size)) - names['generated_data_unl_' + str(i)] = names['generator_unl_' + str(i)].predict(noise, verbose=0) - names['x_unl_' + str(i)] = np.concatenate( - (names['data_unl_batch_x_' + str(i)], names['generated_data_unl_' + str(i)]), axis=0) - names['y_unl_' + str(i)] = np.array([1] * (int(names['data_unl_batch_x_' + str(i)].shape[0])) + [0] * ( - int(names['data_unl_batch_x_' + str(i)].shape[0]))) - names['discriminator_unl' + str(i)] = names['discriminator_unl_' + str(i)].train_on_batch( - names['x_unl_' + str(i)], names['y_unl_' + str(i)]) - - # Train sub-generators - if names['stop_unl_' + str(i)] == 0: - trick_unl = np.array([1] * (int(names['data_unl_batch_x_' + str(i)].shape[0]))) - names['generator_unl' + str(i)] = names['combine_model_unl_' + str(i)].train_on_batch(noise, trick_unl) - - # The evaluation of Nash equilibrium - if stop_iter_all[i + k_out] == epochs: - names['generated_data_unl_' + str(i)] = pd.DataFrame(names['generated_data_unl_' + str(i)]) - sample_num = min(10, names['data_unl_batch_x_' + str(i)].shape[0]) - names['eva_nash_data_unl_' + str(i)] = names['generated_data_unl_' + str(i)].sample(sample_num, - replace=False, - random_state=None, - axis=0) - names['eva_nash_data_unl_' + str(i)] = names['eva_nash_data_unl_' + str(i)].values - names['nash_unl_' + str(i)] = 0 - for idx in range(sample_num): - real = 0 - dists_unl = self.distEclud(names['eva_nash_data_unl_' + str(i)][idx,], names['x_unl_' + str(i)]) - dists_unl = pd.DataFrame(dists_unl) - names['y_unl_' + str(i)] = pd.DataFrame(names['y_unl_' + str(i)]) - dists_unl = np.concatenate((dists_unl, names['y_unl_' + str(i)]), axis=1) - dists_unl = pd.DataFrame(dists_unl, columns=['d', 'y']) - dists_unl = dists_unl.sort_values('d', ascending=True) - dists_unl = dists_unl.values - for index in range(max(sample_num, 2)): - if dists_unl[index, 1] == 1: - real = real + 1 - gen_real = real / max(sample_num, 2) - if gen_real >= self.args.nash_thr_1: - names['nash_unl_' + str(i)] = names['nash_unl_' + str(i)] + 1 - names['nash_unl_' + str(i)] = names['nash_unl_' + str(i)] / max(sample_num, 2) - if sample_num >= 2 and names['nash_unl_' + str(i)] >= self.args.nash_thr_2: - names['stop_unl_' + str(i)] = 1 - stop_iter_all[i + k_out] = epoch + 1 - elif names['nash_unl_' + str(i)] >= self.args.nash_thr_2: - stop_iter_all[i + k_out] = epoch + 1 - # print("The {}th subset contains {} samples, the evaluation of Nash equilibrium is {}".format(i, sample_num, names['nash_unl_' + str(i)])) - - if stop_iter == epochs: - stop_iter = max(stop_iter_all) - else: - for i in range(k_unl): - names['stop_unl_' + str(i)] = 1 - - # Train discriminators - for i in range(k_out): - if i == 0: - data_out_batch = names['data_out_batch_x_' + str(i)] - else: - data_out_batch = np.concatenate((data_out_batch, names['data_out_batch_x_' + str(i)]), axis=0) - for i in range(k_unl): - if i == 0: - data_unl_batch = names['data_unl_batch_x_' + str(i)] - else: - data_unl_batch = np.concatenate((data_unl_batch, names['data_unl_batch_x_' + str(i)]), axis=0) - for i in range(k_out): - noise_all = np.random.uniform(0, 1, (int(mul * names['data_out_batch_x_' + str(i)].shape[0]), latent_size)) - names['generated_data_out_all_' + str(i)] = names['generator_out_' + str(i)].predict(noise_all, verbose=0) - if i == 0: - x_out_all = np.concatenate((data_out_batch, names['generated_data_out_all_' + str(i)]), axis=0) - else: - x_out_all = np.concatenate((x_out_all, names['generated_data_out_all_' + str(i)]), axis=0) - for i in range(k_unl): - noise_all = np.random.uniform(0, 1, (math.ceil(batch_unl_size / k_unl), latent_size)) - names['generated_data_unl_all_' + str(i)] = names['generator_unl_' + str(i)].predict(noise_all, verbose=0) - if i == 0: - x_unl_all = np.concatenate((data_unl_batch, names['generated_data_unl_all_' + str(i)]), axis=0) - else: - x_unl_all = np.concatenate((x_unl_all, names['generated_data_unl_all_' + str(i)]), axis=0) - - x_all = np.concatenate((x_unl_all, x_out_all), axis=0) - y_all = np.array([1] * (int(data_unl_batch.shape[0])) + [0] * (x_all.shape[0] - data_unl_batch.shape[0])) - discriminator_all_loss = discriminator_all.train_on_batch(x_all, y_all) - - # The selection of optimal model - eva_x = discriminator_all.predict(data_x) - eva_x = pd.DataFrame(eva_x) - eva_y = np.array([0] * (int(data_out_x.shape[0])) + [1] * (data_unl_x.shape[0])) - eva_y = pd.DataFrame(eva_y) - eva_xy = np.concatenate((eva_x, eva_y), axis=1) - eva_xy = pd.DataFrame(eva_xy, columns=['x', 'y']) - eva_xy = eva_xy.sort_values('x', ascending=True) - eva_xy = eva_xy.values - eva = 0 - for i in range(eva_xy.shape[0]): - if eva_xy[i, 1] == 0: - eva = eva + i + 1 - eva = eva / (data_x.shape[0] * data_out_x.shape[0]) - eva_list.append(eva) - if eva_save >= eva: - eva_save = eva - discriminator_all.save(os.path.join('baseline','RCCDualGAN','RCCDualGAN_D.h5')) - - if stop_iter == epochs: - stop_iter = max(stop_iter_all) - else: - for i in range(k_unl): - names['stop_unl_' + str(i)] = 1 - - # 评估并保存检测结果 - if epoch % 100 == 0: - p_value = discriminator_all.predict(data_x) - p_value = pd.DataFrame(p_value) - data_y = pd.DataFrame(data_y) - result = np.concatenate((p_value, data_y), axis=1) - result = pd.DataFrame(result, columns=['p', 'y']) - result = result.sort_values('p', ascending=True) - # print(result) - - fpr, tpr, _ = roc_curve(y_true=result['y'], y_score=1 - result['p'], pos_label=1) - aucroc = auc(fpr, tpr) - aucpr = average_precision_score(y_true=result['y'], y_score=1 - result['p'], pos_label=1) - if print_log: - print(f'AUCROC value in training set :{round(aucroc * 100, 2)}') - print(f'AUCPR value in training set :{round(aucpr * 100, 2)}') - - return self - - def predict_score(self, X, phase=None): - data_x = X - discriminator_all = load_model(os.path.join('baseline', 'RCCDualGAN', 'RCCDualGAN_D.h5')) - p_value = discriminator_all.predict(data_x) - result = pd.DataFrame(p_value, columns=['p']) - result = result.sort_values('p', ascending=True) - score = np.array(1 - result['p']) - - return score \ No newline at end of file diff --git a/baseline/REPEN/model/REPEN_DB_test_Tabular_None_irrelevant_features_dl.h5 b/baseline/REPEN/model/REPEN_DB_test_Tabular_None_irrelevant_features_dl.h5 deleted file mode 100644 index c102e9193a8d10cb4078c12c5af1eca142d1dd1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13960 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 E0jGc#6aWAK diff --git a/baseline/SDAD/fit.py b/baseline/SDAD/fit.py deleted file mode 100644 index 0d91553..0000000 --- a/baseline/SDAD/fit.py +++ /dev/null @@ -1,311 +0,0 @@ -import os -import numpy as np -import torch -from torch.autograd import Variable -from myutils import Utils -import matplotlib.pyplot as plt -import seaborn as sns -from torch.distributions import MultivariateNormal, Normal -from torch.distributions.distribution import Distribution - -#实例化utils -utils = Utils() - -#calculate the GaussianKDE with Pytorch -class GaussianKDE(Distribution): # 已经检验过与sklearn计算结果一致 - def __init__(self, X, bw, lam=1e-4): - """ - X : tensor (n, d) - `n` points with `d` dimensions to which KDE will be fit - bw : numeric - bandwidth for Gaussian kernel - """ - self.X = X - self.bw = bw - self.dims = X.shape[-1] - self.n = X.shape[0] - self.mvn = MultivariateNormal(loc=torch.zeros(self.dims), - covariance_matrix=torch.eye(self.dims)) - self.lam = lam - - def sample(self, num_samples): - idxs = (np.random.uniform(0, 1, num_samples) * self.n).astype(int) - norm = Normal(loc=self.X[idxs], scale=self.bw) - return norm.sample() - - def score_samples(self, Y, X=None): - """Returns the kernel density estimates of each point in `Y`. - Parameters - ---------- - Y : tensor (m, d) - `m` points with `d` dimensions for which the probability density will - be calculated - X : tensor (n, d), optional - `n` points with `d` dimensions to which KDE will be fit. Provided to - allow batch calculations in `log_prob`. By default, `X` is None and - all points used to initialize KernelDensityEstimator are included. - Returns - ------- - log_probs : tensor (m) - log probability densities for each of the queried points in `Y` - """ - if X == None: - X = self.X - - # 注意此处取log当值接近0时会产生正负无穷的数 - # 利用with autograd.detect_anomaly()检测出算法发散的原因在于torch.log变量值接近0,需要探究接近0的原因 - log_probs = torch.log( - (self.bw ** (-self.dims) * - torch.exp(self.mvn.log_prob( - (X.unsqueeze(1) - Y) / self.bw))).sum(dim=0) / self.n + self.lam) - - return log_probs - - def log_prob(self, Y): - """Returns the total log probability of one or more points, `Y`, using - a Multivariate Normal kernel fit to `X` and scaled using `bw`. - Parameters - ---------- - Y : tensor (m, d) - `m` points with `d` dimensions for which the probability density will - be calculated - Returns - ------- - log_prob : numeric - total log probability density for the queried points, `Y` - """ - - X_chunks = self.X.split(1000) - Y_chunks = Y.split(1000) - - log_prob = 0 - - for x in X_chunks: - for y in Y_chunks: - log_prob += self.score_samples(y, x).sum(dim=0) - - return log_prob - -def loss_overlap(s_u, s_a, seed, bw_u=None, bw_a=None, x_num=1000, n_u=None, n_a=None, - resample=False, pseudo=True, plot=False, pro=False): - - if bw_u is None and bw_a is None: - d = 1 # one-dimension data - - # Scott's Rule, which requires the data from the normal distribution. - # This may be inappropriate when the neural network output can be arbitrary distribution - # bw_u = n_u ** (-1. / (d + 4)) - # bw_a = n_a ** (-1. / (d + 4)) - - # Silverman's Rule - bw_u = (n_u * (d + 2) / 4.) ** (-1. / (d + 4)) - bw_a = (n_a * (d + 2) / 4.) ** (-1. / (d + 4)) - - if not resample: - # we remove the duplicated anomalies, since they may not be helpful for estimating the overall distribution - unique, inverse = torch.unique(s_a, sorted=True, return_inverse=True, dim=0) - perm = torch.arange(inverse.size(0), dtype=inverse.dtype, device=inverse.device) - inverse, perm = inverse.flip([0]), perm.flip([0]) - perm = inverse.new_empty(unique.size(0)).scatter_(0, inverse, perm) - s_a = s_a[perm] - else: - assert len(s_u) == len(s_a) - - # set seed - utils.set_seed(seed) - - # reshape - s_u = s_u.reshape(-1, 1) - s_a = s_a.reshape(-1, 1) - - # kde_u = GaussianKDE(X=s_u, bw=bw * torch.std(s_u, unbiased=True)) - # kde_a = GaussianKDE(X=s_a, bw=bw * torch.std(s_a, unbiased=True)) - - kde_u = GaussianKDE(X=s_u, bw=bw_u) - kde_a = GaussianKDE(X=s_a, bw=bw_a) - - if pseudo and s_u.size(0) > s_a.size(0): - # using the fitted KDE to generate pseudo anomaly scores - # s_a = kde_a.sample(s_u.size(0)) - - # generate pseudo anomaly scores for the difference number of unlabeled data and labeled anomalies - s_a = torch.cat((s_a, kde_a.sample(s_u.size(0) - s_a.size(0))), dim=0) - - if plot: - sns.distplot(s_a.detach(), color='red', kde=False, bins=50) - plt.title('Pseudo score of abnormal data') - plt.show() - - # we observe that refit the KDE with pseudo scores would deterioriate model performance - # kde_a = GaussianKDE(X=s_a, bw=bw_a) - - xmin = torch.min(torch.min(s_u), torch.min(s_a)) - xmax = torch.max(torch.max(s_u), torch.max(s_a)) - - dx = 0.2 * (xmax - xmin) - xmin -= dx - xmax += dx - - x = torch.linspace(xmin.detach(), xmax.detach(), x_num) - kde_u_x = torch.exp(kde_u.score_samples(x.reshape(-1, 1))) - kde_a_x = torch.exp(kde_a.score_samples(x.reshape(-1, 1))) - - if plot: - plt.plot(x, kde_u_x.detach(), color='blue') - plt.plot(x, kde_a_x.detach(), color='red') - plt.show() - - if pro: - # find the intersection point (could be multiple points) - intersection_points_idx = torch.where(torch.diff(torch.sign(kde_a_x - kde_u_x)))[0] - if intersection_points_idx.size(0) == 1: - # print(f'one intersection point') - c = x[intersection_points_idx] - - x_u, x_a = x.clone(), x.clone() - x_u[x_u < c] = 0; x_a[x_a > c] = 0 - area_u = torch.trapz(kde_u_x, x_u) - area_a = torch.trapz(kde_a_x, x_a) - - - elif intersection_points_idx.size(0) == 2: - # print(f'two intersection points') - c1 = x[intersection_points_idx[0]] - c2 = x[intersection_points_idx[1]] - - assert c1 <= c2 - - x_u, x_a = x.clone(), x.clone() - x_u[x_u < c1] = 0; x_a[x_a > c2] = 0 - area_u = torch.trapz(kde_u_x, x_u) - area_a = torch.trapz(kde_a_x, x_a) - - else: - # print('The intersection points are more than 2!') - # raise NotImplementedError - - c1 = x[intersection_points_idx[0]] - c2 = x[intersection_points_idx[-1]] - - assert c1 <= c2 - - x_u, x_a = x.clone(), x.clone() - x_u[x_u < c1] = 0; x_a[x_a > c2] = 0 - area_u = torch.trapz(kde_u_x, x_u) - area_a = torch.trapz(kde_a_x, x_a) - - area = area_u + area_a - - else: - inters_x = torch.min(kde_u_x, kde_a_x) - area = torch.trapz(inters_x, x) - - return area - -def fit(train_loader, model, optimizer, epochs, print_loss=False, device=None, - bw_u=None, bw_a=None, - resample=False, noise=False, pseudo=True, - X_val_tensor=None, y_val=None, early_stopping=False, tol=5): - ''' - noise: whether to add Gaussian noise of the output score of labeled anomalies - bw_u: the bandwidth of unlabeled samples - bw_a: the bandwidth of labeled anomalies - early_stopping: whether to use early stopping based on the performance in validation set - tol: the tolerance for early stopping - ''' - - # margin loss for keeping the order of score between normal samples and anomalies - ranking_loss = torch.nn.MarginRankingLoss() - if X_val_tensor is not None: - score_val_epoch = np.empty([X_val_tensor.size(0), epochs]) - else: - score_val_epoch = None - - best_metric_val = 0.0 - tol_count = 0 - - for epoch in range(epochs): - model.train() - for i, data in enumerate(train_loader): - - X, y = data - X = X.to(device); y = y.to(device) - X = Variable(X); y = Variable(y) - - # removing duplicate samples - unique, inverse = torch.unique(X, sorted=True, return_inverse=True, dim=0) - perm = torch.arange(inverse.size(0), dtype=inverse.dtype, device=inverse.device) - inverse, perm = inverse.flip([0]), perm.flip([0]) - perm = inverse.new_empty(unique.size(0)).scatter_(0, inverse, perm) - - X_unique = X[perm] - y_unique = y[perm] - - n_u = torch.where(y_unique == 0)[0].size(0) - n_a = torch.where(y_unique == 1)[0].size(0) - - # clear gradient - model.zero_grad() - - # loss forward - # 注意cv中由于batchnorm的存在要一起计算score - _, score = model(X) - - # 由于vae的计算方式p(z|x),即每个x样本其实有其专属的高斯分布,需要逐个样本(正常样本、异常样本)计算loss并求平均 - idx_u = torch.where(y == 0)[0] - idx_a = torch.where(y == 1)[0] - - score_u = score[idx_u] - score_a = score[idx_a] - - if noise: #additionally inject Gaussian noise for improving robustness - score_a = score_a + torch.zeros_like(score_a).normal_(0.0, 1.0) - - # # loss forward - # loss_1 = loss_overlap(s_u=score_u, s_a=score_a, seed=utils.unique(epoch, i), - # resample=resample, pseudo=pseudo, - # bw_u=bw_u, bw_a=bw_a, n_u=n_u, n_a=n_a, pro=False) - # - # loss_2 = ranking_loss(score_a, score_u, torch.ones_like(score_a)) - # # combine the loss - # loss = loss_1 + loss_2 - - loss = loss_overlap(s_u=score_u, s_a=score_a, seed=utils.unique(epoch, i), - resample=resample, pseudo=pseudo, - bw_u=bw_u, bw_a=bw_a, n_u=n_u, n_a=n_a, pro=True) - - # loss backward - loss.backward() - # parameter update - optimizer.step() - - if (i % 50 == 0) & print_loss: - print('[%d/%d] [%d/%d] Loss: %.4f' % (epoch + 1, epochs, i, len(train_loader), loss)) - - # storing the network output score in validation set - if X_val_tensor is not None: - model.eval() - with torch.no_grad(): - _, score_val = model(X_val_tensor) - score_val_epoch[:, epoch] = score_val.detach().numpy() - - - # using the validation set for early stopping - if early_stopping: - # the metric in validation set - metric_val = utils.metric(y_true=y_val, y_score=score_val)['aucpr'] - - if best_metric_val < metric_val: - best_metric_val = metric_val - tol_count = 0 - - # save model - torch.save(model, os.path.join(os.getcwd(),'baseline','SDAD','model','SDAD.pt')) - else: - tol_count += 1 - - if tol_count >= tol: - print(f'Early stopping in epoch: {epoch}') - break - - return score_val_epoch \ No newline at end of file diff --git a/baseline/SDAD/model.py b/baseline/SDAD/model.py deleted file mode 100644 index 2241476..0000000 --- a/baseline/SDAD/model.py +++ /dev/null @@ -1,90 +0,0 @@ -import torch -from torch import nn - - -class SDAD(nn.Module): - def __init__(self, input_size, act_fun): - super(SDAD, self).__init__() - - # self.feature = nn.Sequential( - # nn.Linear(input_size, 20), - # act_fun, - # ) - - self.feature = nn.Sequential( - nn.Linear(input_size, 100), - act_fun, - nn.Linear(100, 20), - act_fun - ) - - self.reg = nn.Sequential( - nn.Linear(20, 1), - nn.BatchNorm1d(num_features=1) - ) - - def forward(self, X): - feature = self.feature(X) - score = self.reg(feature) - - return feature, score.squeeze() - -# improving the score distribution based anomaly detection (SDAD) by the backbone in: -# "Feature Encoding with AutoEncoders for Weakly-supervised Anomaly Detection" -class SDAD_pro(nn.Module): - def __init__(self, input_size, act_fun): - super(SDAD_pro, self).__init__() - - self.encoder = nn.Sequential( - nn.Linear(input_size, 128), - act_fun, - nn.Linear(128, 64), - act_fun - ) - - # if we add relu layer in the encoder, how to represent the direction for non-negative value? - - self.decoder = nn.Sequential( - nn.Linear(64, 128), - act_fun, - nn.Linear(128, input_size), - act_fun - ) - - self.reg_1 = nn.Sequential( - nn.Linear(input_size+64+1, 256), - act_fun - ) - - self.reg_2 = nn.Sequential( - nn.Linear(256+1, 32), - act_fun - ) - - self.reg_3 = nn.Sequential( - nn.Linear(32+1, 1), - nn.BatchNorm1d(num_features=1) - ) - - def forward(self, X): - # hidden representation - h = self.encoder(X) - - # reconstructed input vector - X_hat = self.decoder(h) - - # reconstruction residual vector - r = torch.sub(X_hat, X) - - # reconstruction error - e = r.norm(dim=1).reshape(-1, 1) - - # normalized reconstruction residual vector - r = torch.div(r, e) #div by broadcast - - # regression - feature = self.reg_1(torch.cat((h, r, e), dim=1)) - feature = self.reg_2(torch.cat((feature, e), dim=1)) - score = self.reg_3(torch.cat((feature, e), dim=1)) - - return feature, score.squeeze() \ No newline at end of file diff --git a/baseline/SDAD/run.py b/baseline/SDAD/run.py deleted file mode 100644 index 8f3ae41..0000000 --- a/baseline/SDAD/run.py +++ /dev/null @@ -1,389 +0,0 @@ -import pandas as pd -import numpy as np -import random -import os -import sys -from itertools import product -import matplotlib.pyplot as plt -from sklearn.model_selection import KFold, StratifiedKFold, train_test_split - -import torch -import torchvision -from torch import nn -from torch.autograd import Variable -from torch.utils.data import Subset, DataLoader, TensorDataset -from torchvision import datasets, transforms -import torch.nn.functional as F - -# import warnings -# warnings.filterwarnings("ignore") - -from myutils import Utils -from baseline.SDAD.model import SDAD, SDAD_pro -from baseline.SDAD.fit import fit - -class sdad(): - def __init__(self, seed:int, model_name='SDAD', - epochs:int=200, batch_size:int=256, act_fun=nn.ReLU(), - lr:float=1e-2, mom=0.7, weight_decay:float=1e-2, - resample=False, noise=False, pseudo=True, - select_bw=False, select_epoch=False, early_stopping=False, - bw_u:int=10, bw_a:int=10, analysis=False): - ''' - noise: whether to add Gaussian noise for the output score of anomalies - select_bw: whether to use the validation set for selecting the best bandwidth. In practice, we observe that - the bandwidth would significantly affect the model performance - select_epoch: whether to use the validation set for selecting the best epoch to prevent overfitting problem - early stopping: whether to use the validation set for early stopping - ''' - - self.seed = seed - self.utils = Utils() - self.device = self.utils.get_device() - - #hyper-parameters - self.epochs = epochs - self.batch_size = batch_size - self.act_fun = act_fun - self.lr = lr - self.mom = mom - self.weight_decay = weight_decay - - self.resample = resample - self.noise = noise - self.pseudo = pseudo - - self.select_bw = select_bw - self.select_epoch = select_epoch - self.early_stopping = early_stopping - - #change the current hyper-parameter - # self.epochs = 200 - # self.lr = 1e-3 - # self.select_bw = False - # self.select_epoch = True - # self.early_stopping = False - - self.epochs = 20 - self.lr = 1e-3 - self.select_bw = False - self.select_epoch = False - self.early_stopping = False - - if self.select_bw: - self.bw_pool = [0.01, 0.1, 1.0, 10.0, 100] - else: - # self.bw_u = bw_u - # self.bw_a = bw_a - - self.bw_u = 1.0 - self.bw_a = 1.0 - - self.model_init = SDAD_pro - self.analysis = analysis - - def fit2test(self, data): - #data - X_train = data['X_train'] - y_train = data['y_train'] - X_test = data['X_test'] - y_test = data['y_test'] - - input_size = X_train.shape[1] #input size - X_test_tensor = torch.from_numpy(X_test).float() # testing set - - # using the training set as validation set - X_val = X_train.copy() - y_val = y_train.copy() - - X_val_tensor = torch.from_numpy(X_val).float() # validation set - - # resampling - X_train, y_train = self.utils.sampler(X_train, y_train, self.batch_size) - # X_train, y_train = self.utils.sampler_2(X_train, y_train, step=20) - - X_train_tensor = torch.from_numpy(X_train).float() - train_tensor = TensorDataset(torch.from_numpy(X_train).float(), torch.tensor(y_train)) - train_loader = DataLoader(train_tensor, batch_size=self.batch_size, shuffle=False, drop_last=True) - - # grid search for the best bandwidth based on the training data - # the choice of bandwidth would significantly affect the performance of model - # we recommend to use the k-fold method for selecting the best bandwidth - - if self.select_bw: - bw_val_select = [] - epoch_val_select = [] - - bw_combination = list(product(self.bw_pool, self.bw_pool)) - for bw_u, bw_a in bw_combination: - try: - self.utils.set_seed(self.seed) - model = self.model_init(input_size=input_size, act_fun=self.act_fun) #model initialization - optimizer = torch.optim.SGD(model.parameters(), lr=self.lr, momentum=self.mom, - weight_decay=self.weight_decay) # optimizer - - # fit - if self.select_epoch: # using the validation set for selecting the best epoch - score_val_epoch = fit(train_loader=train_loader, model=model, optimizer=optimizer, - epochs=self.epochs, - resample=self.resample, noise=self.noise, pseudo=self.pseudo, - bw_u=bw_u, bw_a=bw_a, - device=self.device, X_val_tensor=X_val_tensor) - - aucpr_val_epoch = [] - for i in range(score_val_epoch.shape[1]): - result_val = self.utils.metric(y_true=y_val, y_score=score_val_epoch[:, i]) - aucpr_val_epoch.append(result_val['aucpr']) - - bw_val_select.append(np.max(aucpr_val_epoch)) - epoch_val_select.append(np.argmax(aucpr_val_epoch) + 1) - - print(f'Grid search for: {bw_u, bw_a},' - f'The best aucpr in validation set: {np.max(aucpr_val_epoch)}') - - elif self.early_stopping: # using the validation set for early stopping - _ = fit(train_loader=train_loader, model=model, optimizer=optimizer, - epochs=self.epochs, - resample=self.resample, noise=self.noise, pseudo=self.pseudo, - bw_u=bw_u, bw_a=bw_a, - device=self.device, X_val_tensor=X_val_tensor, y_val=y_val, - early_stopping=True) - - # load the best model - model = torch.load(os.path.join(os.getcwd(),'baseline','SDAD','model','SDAD.pt')) - model.eval() - - with torch.no_grad(): - score_val = model(X_val_tensor) - - result_val = self.utils.metric(y_true=y_val, y_score=score_val) - - bw_val_select.append(result_val['aucpr']) - print(f'Grid search for: {bw_u, bw_a},' - f"The best aucpr in validation set: {result_val['aucpr']}") - - else: # do nothing - _ = fit(train_loader=train_loader, model=model, optimizer=optimizer, - epochs=self.epochs, - resample=self.resample, noise=self.noise, pseudo=self.pseudo, - bw_u=bw_u, bw_a=bw_a, - device=self.device, X_val_tensor=X_val_tensor) - - with torch.no_grad(): - _, score_val = model(X_val_tensor) - score_val = score_val.cpu().numpy() - result_val = self.utils.metric(y_true=y_val, y_score=score_val) - - bw_val_select.append(result_val['aucpr']) - - print(f'Grid search for: {bw_u, bw_a},' - f"The aucpr in validation set: {result_val['aucpr']}") - - except Exception as e: - bw_val_select.append(0.0) - epoch_val_select.append(self.epochs) - print(f'error for bw: {(bw_u, bw_a)}, the error message: {e}') - pass - - bw_best = bw_combination[np.argmax(bw_val_select)] - - if self.select_epoch: - epoch_best = epoch_val_select[np.argmax(bw_val_select)] - elif self.early_stopping: - epoch_best = None - else: - epoch_best = self.epochs - - print(f'The best bandwidth: {bw_best}, the best epoch: {epoch_best}') - - else: - if self.select_epoch: - self.utils.set_seed(self.seed) - model = self.model_init(input_size=input_size, act_fun=self.act_fun) - optimizer = torch.optim.SGD(model.parameters(), lr=self.lr, momentum=self.mom, - weight_decay=self.weight_decay) # optimizer - - # fit - score_val_epoch = fit(train_loader=train_loader, model=model, optimizer=optimizer, - epochs=self.epochs, - resample=self.resample, noise=self.noise, pseudo=self.pseudo, - bw_u=self.bw_u, bw_a=self.bw_a, device=self.device, - X_val_tensor=X_val_tensor) - - aucpr_val_epoch = [] - for i in range(score_val_epoch.shape[1]): - result_val = self.utils.metric(y_true=y_val, y_score=score_val_epoch[:, i]) - aucpr_val_epoch.append(result_val['aucpr']) - - bw_best = (self.bw_u, self.bw_a) - epoch_best = np.argmax(aucpr_val_epoch) + 1 - - print(f'Using the default bandwidth..., the best epoch: {epoch_best}') - - elif self.early_stopping: - self.utils.set_seed(self.seed) - model = self.model_init(input_size=input_size, act_fun=self.act_fun) - optimizer = torch.optim.SGD(model.parameters(), lr=self.lr, momentum=self.mom, - weight_decay=self.weight_decay) # optimizer - - # fit - _ = fit(train_loader=train_loader, model=model, optimizer=optimizer, - epochs=self.epochs, - resample=self.resample, noise=self.noise, pseudo=self.pseudo, - bw_u=self.bw_u, bw_a=self.bw_a, device=self.device, - X_val_tensor=X_val_tensor, y_val=y_val, early_stopping=True) - - bw_best = (self.bw_u, self.bw_a) - epoch_best = None - - print(f'Using the default bandwidth..., the best model has been saved...') - - else: - bw_best = (self.bw_u, self.bw_a) - epoch_best = self.epochs - - # refit - if self.early_stopping: - model = torch.load(os.path.join(os.getcwd(),'baseline','SDAD','model','SDAD.pt')) - - else: - X_train = data['X_train'] - y_train = data['y_train'] - X_train, y_train = self.utils.sampler(X_train, y_train, self.batch_size) - # X_train, y_train = self.utils.sampler_2(X_train, y_train, step=20) - train_tensor = TensorDataset(torch.from_numpy(X_train).float(), torch.tensor(y_train)) - train_loader = DataLoader(train_tensor, batch_size=self.batch_size, shuffle=False, drop_last=True) - - self.utils.set_seed(self.seed) - model = self.model_init(input_size=input_size, act_fun=self.act_fun) - optimizer = torch.optim.SGD(model.parameters(), lr=self.lr, momentum=self.mom, - weight_decay=self.weight_decay) # optimizer - - # training - _ = fit(train_loader=train_loader, model=model, optimizer=optimizer, epochs=epoch_best, - resample=self.resample, noise=self.noise, pseudo=self.pseudo, - bw_u=bw_best[0], bw_a=bw_best[1], device=self.device) - - #evaluating in the testing set - model.eval() - with torch.no_grad(): - _, score_test = model(X_test_tensor) - score_test = score_test.cpu().numpy() - - result = self.utils.metric(y_true=y_test, y_score=score_test) - - if self.analysis: - return model, result - else: - return result - -''' -below is the original code for selecting the bandwidth -''' -# #resampling -# X_train, y_train = self.utils.sampler(X_train, y_train, self.batch_size) -# -# X_train_tensor = torch.from_numpy(X_train).float() -# train_tensor = TensorDataset(torch.from_numpy(X_train).float(), torch.tensor(y_train)) -# train_loader = DataLoader(train_tensor, batch_size=self.batch_size, shuffle=False, drop_last=True) -# -# #grid search for the best bandwidth based on the training data -# #the choice of bandwidth would significantly affect the performance of model -# #we recommend to use the k-fold method for selecting the best bandwidth -# -# bw_aucpr = [] -# for bw in self.bw_pool: -# try: -# self.utils.set_seed(self.seed) -# model = self.model_init(input_size=input_size, act_fun=self.act_fun) -# optimizer = torch.optim.SGD(model.parameters(), lr=self.lr, momentum=self.mom, -# weight_decay=self.weight_decay) # optimizer -# -# # fit -# fit(train_loader=train_loader, model=model, optimizer=optimizer, epochs=self.epochs, -# noise=self.noise, bw=bw, device=self.device) -# -# model.eval() -# with torch.no_grad(): -# _, score_train = model(X_train_tensor) -# score_train = score_train.squeeze().numpy() -# result_train = self.utils.metric(y_true=y_train, y_score=score_train) -# aucpr_train = result_train['aucpr'] -# -# bw_aucpr.append(aucpr_train) -# except: -# pass -# bw_aucpr.append(0.0) -# print(f'error for bw: {bw}') -# -# print(f'The best bandwidth: {self.bw_pool[np.argmax(bw_aucpr)]}') -# bw_best = self.bw_pool[np.argmax(bw_aucpr)] -# -# #refit -# self.utils.set_seed(self.seed) -# model = self.model_init(input_size=input_size, act_fun=self.act_fun) -# optimizer = torch.optim.SGD(model.parameters(), lr=self.lr, momentum=self.mom, weight_decay=self.weight_decay) #optimizer -# -# # training -# fit(train_loader=train_loader, model=model, optimizer=optimizer, epochs=self.epochs, -# noise=self.noise, bw=bw_best, device=self.device) - - -''' -below is the code for the k-folds selection for bandwidth -''' -# kf = KFold(n_splits=5) -# bw_aucpr = np.zeros((5, 5)) -# -# for i, (train_idx, val_idx) in enumerate(kf.split(y_train)): -# X_train_kf, X_val_kf = X_train[train_idx], X_train[val_idx] -# y_train_kf, y_val_kf = y_train[train_idx], y_train[val_idx] -# -# #resampling -# X_train_kf, y_train_kf = self.utils.sampler(X_train_kf, y_train_kf, self.batch_size) -# X_val_tensor = torch.from_numpy(X_val_kf).float() -# -# train_tensor = TensorDataset(torch.from_numpy(X_train_kf).float(), torch.tensor(y_train_kf)) -# train_loader = DataLoader(train_tensor, batch_size=self.batch_size, shuffle=False, drop_last=True) -# -# for j, bw in enumerate(self.bw_pool): -# try: -# self.utils.set_seed(self.seed) -# model = self.model_init(input_size=input_size, act_fun=self.act_fun) -# optimizer = torch.optim.SGD(model.parameters(), lr=self.lr, momentum=self.mom, -# weight_decay=self.weight_decay) # optimizer -# -# # fit -# fit(train_loader=train_loader, model=model, optimizer=optimizer, epochs=self.epochs, -# noise=self.noise, bw=bw, device=self.device) -# -# model.eval() -# with torch.no_grad(): -# _, score_val = model(X_val_tensor) -# score_val = score_val.squeeze().numpy() -# result_val = self.utils.metric(y_true=y_val_kf, y_score=score_val) -# aucpr_val = result_val['aucpr'] -# -# bw_aucpr[i, j] = aucpr_val -# except: -# pass -# bw_aucpr[i, j] = 0.0 -# print(f'error for fold: {i}; bw: {bw}') -# -# bw_aucpr = np.mean(bw_aucpr, axis=0) #average performance among k-folds -# print(f'The best bandwidth: {self.bw_pool[np.argmax(bw_aucpr)]}') -# bw_best = self.bw_pool[np.argmax(bw_aucpr)] -# -# # refit -# X_train, y_train = self.utils.sampler(X_train, y_train, self.batch_size) -# train_tensor = TensorDataset(torch.from_numpy(X_train).float(), torch.tensor(y_train)) -# train_loader = DataLoader(train_tensor, batch_size=self.batch_size, shuffle=False, drop_last=True) -# -# self.utils.set_seed(self.seed) -# model = self.model_init(input_size=input_size, act_fun=self.act_fun) -# optimizer = torch.optim.SGD(model.parameters(), lr=self.lr, momentum=self.mom, -# weight_decay=self.weight_decay) # optimizer -# -# # training -# fit(train_loader=train_loader, model=model, optimizer=optimizer, epochs=self.epochs, -# noise=self.noise, bw=bw_best, device=self.device) \ No newline at end of file diff --git a/baseline/SDAD_GMM/fit.py b/baseline/SDAD_GMM/fit.py deleted file mode 100644 index 3d3a4ad..0000000 --- a/baseline/SDAD_GMM/fit.py +++ /dev/null @@ -1,198 +0,0 @@ -import os -import numpy as np -from tqdm import tqdm - -from myutils import Utils -import matplotlib.pyplot as plt - - -from other_utils.gmm.gmm import GaussianMixture - -import numpy as np -import matplotlib.pyplot as plt -import sklearn.datasets as datasets - -import torch -from torch import nn -from torch import optim -import torch.nn.functional as F -import torch.distributions as D -from torch.distributions import MultivariateNormal, Normal -from torch.distributions.distribution import Distribution -from torch.autograd import Variable - -#实例化utils -utils = Utils() - -def my_gmm(x, n_components:int=3, num_iter:int=100, lr:float=0.001, momentum:float=0.9): - ''' - refer: https://stackoverflow.com/questions/65755730/estimating-mixture-of-gaussian-models-in-pytorch - refer: https://pytorch.org/docs/stable/distributions.html#categorical - ''' - # parameters initialization - x = x.detach() - - logits = torch.ones(n_components, requires_grad=True) - means = torch.randn((n_components, x.size(1)), requires_grad=True) - log_vars = torch.randn((n_components, x.size(1)), requires_grad=True) - - # model parameters - parameters = [logits, means, log_vars] - optimizer = optim.SGD(parameters, lr=lr, momentum=momentum) - - for i in range(num_iter): - mix = D.Categorical(F.softmax(logits, dim=0)) - comp = D.Independent(D.Normal(means, torch.exp(log_vars / 2)), 1) # mean and std - gmm = D.MixtureSameFamily(mix, comp) - - # clear gradient - optimizer.zero_grad() - # loss forward - loss = -gmm.log_prob(x.detach()).mean() - # loss backward - loss.backward(retain_graph=True) - # update - optimizer.step() - - # refit - mix = D.Categorical(F.softmax(logits, dim=0)) - comp = D.Independent(D.Normal(means, torch.exp(log_vars / 2)), 1) # mean and std - gmm = D.MixtureSameFamily(mix, comp) - - return gmm - -def loss_overlap(s_u, s_a, seed, x_num=1000, resample=False, pseudo=True, plot=False): - if not resample: - # we remove the duplicated anomalies, since they may not be helpful for estimating the overall distribution - unique, inverse = torch.unique(s_a, sorted=True, return_inverse=True, dim=0) - perm = torch.arange(inverse.size(0), dtype=inverse.dtype, device=inverse.device) - inverse, perm = inverse.flip([0]), perm.flip([0]) - perm = inverse.new_empty(unique.size(0)).scatter_(0, inverse, perm) - s_a = s_a[perm] - else: - assert len(s_u) == len(s_a) - - # set seed - utils.set_seed(seed) - - # reshape - s_u = s_u.reshape(-1, 1) - s_a = s_a.reshape(-1, 1) - - # estimate the GMM model - gmm_u = my_gmm(s_u) - gmm_a = my_gmm(s_a) - - if pseudo: - # using the fitted GMM to generate pseudo anomaly scores - s_a = gmm_a.sample(torch.tensor([s_u.size(0)])) - - xmin = torch.min(torch.min(s_u), torch.min(s_a)) - xmax = torch.max(torch.max(s_u), torch.max(s_a)) - - dx = 0.2 * (xmax - xmin) - xmin -= dx - xmax += dx - - x = torch.linspace(xmin.detach(), xmax.detach(), x_num) - pdf_u_x = torch.exp(gmm_u.log_prob(x.reshape(-1, 1))) - pdf_a_x = torch.exp(gmm_a.log_prob(x.reshape(-1, 1))) - - if plot: - plt.plot(x, pdf_u_x, color='blue') - plt.plot(x, pdf_a_x, color='red') - - inters_x = torch.min(pdf_u_x, pdf_a_x) - area = torch.trapz(inters_x, x) - - return area - -def fit(train_loader, model, optimizer, epochs, print_loss=False, device=None, - resample=False, noise=False, pseudo=True, - X_val_tensor=None, y_val=None, early_stopping=False, tol=5): - ''' - noise: whether to add Gaussian noise of the output score of labeled anomalies - early_stopping: whether to use early stopping based on the performance in validation set - tol: the tolerance for early stopping - ''' - - # margin loss for keeping the order of score between normal samples and anomalies - ranking_loss = torch.nn.MarginRankingLoss() - if X_val_tensor is not None: - score_val_epoch = np.empty([X_val_tensor.size(0), epochs]) - else: - score_val_epoch = None - - best_metric_val = 0.0 - tol_count = 0 - - for epoch in tqdm(range(epochs)): - model.train() - for i, data in enumerate(train_loader): - - - - X, y = data - X = X.to(device); y = y.to(device) - X = Variable(X); y = Variable(y) - - # clear gradient - model.zero_grad() - - # loss forward - # 注意由于batchnorm的存在要一起计算score - _, score = model(X) - - idx_u = torch.where(y == 0)[0] - idx_a = torch.where(y == 1)[0] - - score_u = score[idx_u] - score_a = score[idx_a] - - if noise: #additionally inject Gaussian noise for improving robustness - score_a = score_a + torch.zeros_like(score_a).normal_(0.0, 1.0) - - # loss forward - loss_1 = loss_overlap(s_u=score_u, s_a=score_a, seed=utils.unique(epoch, i), - resample=resample, pseudo=pseudo) - - loss_2 = ranking_loss(score_a, score_u, torch.ones_like(score_a)) - # combine the loss - # loss = loss_1 + loss_2 - loss = loss_2 - - # loss backward - loss.backward() - # parameter update - optimizer.step() - - # if (i % 50 == 0) & print_loss: - # print('[%d/%d] [%d/%d] Loss: %.4f' % (epoch + 1, epochs, i, len(train_loader), loss)) - - # storing the network output score in validation set - if X_val_tensor is not None: - model.eval() - with torch.no_grad(): - _, score_val = model(X_val_tensor) - score_val_epoch[:, epoch] = score_val.detach().numpy() - - - # using the validation set for early stopping - if early_stopping: - # the metric in validation set - metric_val = utils.metric(y_true=y_val, y_score=score_val)['aucpr'] - - if best_metric_val < metric_val: - best_metric_val = metric_val - tol_count = 0 - - # save model - torch.save(model, os.path.join(os.getcwd(),'baseline','SDAD','model','SDAD_GMM.pt')) - else: - tol_count += 1 - - if tol_count >= tol: - print(f'Early stopping in epoch: {epoch}') - break - - return score_val_epoch \ No newline at end of file diff --git a/baseline/SDAD_GMM/run.py b/baseline/SDAD_GMM/run.py deleted file mode 100644 index f03ef47..0000000 --- a/baseline/SDAD_GMM/run.py +++ /dev/null @@ -1,157 +0,0 @@ -import pandas as pd -import numpy as np -import random -import os -import sys -from itertools import product -import matplotlib.pyplot as plt -from sklearn.model_selection import KFold, StratifiedKFold, train_test_split - -import torch -import torchvision -from torch import nn -from torch.autograd import Variable -from torch.utils.data import Subset, DataLoader, TensorDataset -from torchvision import datasets, transforms -import torch.nn.functional as F - -# import warnings -# warnings.filterwarnings("ignore") - -from myutils import Utils -from baseline.SDAD.model import SDAD, SDAD_pro -from baseline.SDAD_GMM.fit import fit - -class sdad_gmm(): - def __init__(self, seed:int, model_name='SDAD_GMM', - epochs:int=200, batch_size:int=256, act_fun=nn.ReLU(), - lr:float=1e-2, mom=0.7, weight_decay:float=1e-2, - resample=False, noise=False, pseudo=True, - select_epoch=False, early_stopping=False): - ''' - noise: whether to add Gaussian noise for the output score of anomalies - select_epoch: whether to use the validation set for selecting the best epoch to prevent overfitting problem - early stopping: whether to use the validation set for early stopping - ''' - - self.seed = seed - self.utils = Utils() - self.device = self.utils.get_device() - - #hyper-parameters - self.epochs = epochs - self.batch_size = batch_size - self.act_fun = act_fun - self.lr = lr - self.mom = mom - self.weight_decay = weight_decay - - self.resample = resample - self.noise = noise - self.pseudo = pseudo - - self.select_epoch = select_epoch - self.early_stopping = early_stopping - - #change the current hyper-parameter - self.epochs = 200 - self.lr = 1e-3 - self.select_epoch = True - self.early_stopping = False - - self.model_init = SDAD_pro - - def fit2test(self, data): - #data - X_train = data['X_train'] - y_train = data['y_train'] - X_test = data['X_test'] - y_test = data['y_test'] - - input_size = X_train.shape[1] #input size - X_test_tensor = torch.from_numpy(X_test).float() # testing set - - # using the training set as validation set - X_val = X_train.copy() - y_val = y_train.copy() - X_val_tensor = torch.from_numpy(X_val).float() # validation set - - # resampling - X_train, y_train = self.utils.sampler(X_train, y_train, self.batch_size) - - X_train_tensor = torch.from_numpy(X_train).float() - train_tensor = TensorDataset(torch.from_numpy(X_train).float(), torch.tensor(y_train)) - train_loader = DataLoader(train_tensor, batch_size=self.batch_size, shuffle=False, drop_last=True) - - if self.select_epoch: - self.utils.set_seed(self.seed) - model = self.model_init(input_size=input_size, act_fun=self.act_fun) - optimizer = torch.optim.SGD(model.parameters(), lr=self.lr, momentum=self.mom, - weight_decay=self.weight_decay) # optimizer - - # fit - score_val_epoch = fit(train_loader=train_loader, model=model, optimizer=optimizer, - epochs=self.epochs, - resample=self.resample, noise=self.noise, pseudo=self.pseudo, - device=self.device, - X_val_tensor=X_val_tensor) - - aucpr_val_epoch = [] - for i in range(score_val_epoch.shape[1]): - result_val = self.utils.metric(y_true=y_val, y_score=score_val_epoch[:, i]) - aucpr_val_epoch.append(result_val['aucpr']) - - epoch_best = np.argmax(aucpr_val_epoch) + 1 - - print(f'Selecting the epoch... the best epoch: {epoch_best}') - - elif self.early_stopping: - self.utils.set_seed(self.seed) - model = self.model_init(input_size=input_size, act_fun=self.act_fun) - optimizer = torch.optim.SGD(model.parameters(), lr=self.lr, momentum=self.mom, - weight_decay=self.weight_decay) # optimizer - - # fit - _ = fit(train_loader=train_loader, model=model, optimizer=optimizer, - epochs=self.epochs, - resample=self.resample, noise=self.noise, pseudo=self.pseudo, - device=self.device, - X_val_tensor=X_val_tensor, y_val=y_val, early_stopping=True) - - epoch_best = None - - print(f'Earlystopping... the best model has been saved...') - - else: - epoch_best = self.epochs - - # refit - if self.early_stopping: - model = torch.load(os.path.join(os.getcwd(),'baseline','SDAD','model','SDAD_GMM.pt')) - - else: - X_train = data['X_train'] - y_train = data['y_train'] - X_train, y_train = self.utils.sampler(X_train, y_train, self.batch_size) - train_tensor = TensorDataset(torch.from_numpy(X_train).float(), torch.tensor(y_train)) - train_loader = DataLoader(train_tensor, batch_size=self.batch_size, shuffle=False, drop_last=True) - - self.utils.set_seed(self.seed) - model = self.model_init(input_size=input_size, act_fun=self.act_fun) - optimizer = torch.optim.SGD(model.parameters(), lr=self.lr, momentum=self.mom, - weight_decay=self.weight_decay) # optimizer - - # training - _ = fit(train_loader=train_loader, model=model, optimizer=optimizer, epochs=epoch_best, - resample=self.resample, noise=self.noise, pseudo=self.pseudo, - device=self.device) - - #evaluating in the testing set - model.eval() - with torch.no_grad(): - _, score_test = model(X_test_tensor) - score_test = score_test.cpu().numpy() - - result = self.utils.metric(y_true=y_test, y_score=score_test) - - return result \ No newline at end of file diff --git a/baseline/SDAD_VAE/fit.py b/baseline/SDAD_VAE/fit.py deleted file mode 100644 index 9d327f8..0000000 --- a/baseline/SDAD_VAE/fit.py +++ /dev/null @@ -1,305 +0,0 @@ -import os -import numpy as np -import torch -from torch.autograd import Variable -from myutils import Utils -import matplotlib.pyplot as plt -import seaborn as sns -from torch.distributions import MultivariateNormal, Normal -from torch.distributions.distribution import Distribution - -#实例化utils -utils = Utils() - -#calculate the GaussianKDE with Pytorch -class GaussianKDE(Distribution): # 已经检验过与sklearn计算结果一致 - def __init__(self, X, bw, lam=1e-4): - """ - X : tensor (n, d) - `n` points with `d` dimensions to which KDE will be fit - bw : numeric - bandwidth for Gaussian kernel - """ - self.X = X - self.bw = bw - self.dims = X.shape[-1] - self.n = X.shape[0] - self.mvn = MultivariateNormal(loc=torch.zeros(self.dims), - covariance_matrix=torch.eye(self.dims)) - self.lam = lam - - def sample(self, num_samples): - idxs = (np.random.uniform(0, 1, num_samples) * self.n).astype(int) - norm = Normal(loc=self.X[idxs], scale=self.bw) - return norm.sample() - - def score_samples(self, Y, X=None): - """Returns the kernel density estimates of each point in `Y`. - Parameters - ---------- - Y : tensor (m, d) - `m` points with `d` dimensions for which the probability density will - be calculated - X : tensor (n, d), optional - `n` points with `d` dimensions to which KDE will be fit. Provided to - allow batch calculations in `log_prob`. By default, `X` is None and - all points used to initialize KernelDensityEstimator are included. - Returns - ------- - log_probs : tensor (m) - log probability densities for each of the queried points in `Y` - """ - if X == None: - X = self.X - - # 注意此处取log当值接近0时会产生正负无穷的数 - # 利用with autograd.detect_anomaly()检测出算法发散的原因在于torch.log变量值接近0,需要探究接近0的原因 - log_probs = torch.log( - (self.bw ** (-self.dims) * - torch.exp(self.mvn.log_prob( - (X.unsqueeze(1) - Y) / self.bw))).sum(dim=0) / self.n + self.lam) - - return log_probs - - def log_prob(self, Y): - """Returns the total log probability of one or more points, `Y`, using - a Multivariate Normal kernel fit to `X` and scaled using `bw`. - Parameters - ---------- - Y : tensor (m, d) - `m` points with `d` dimensions for which the probability density will - be calculated - Returns - ------- - log_prob : numeric - total log probability density for the queried points, `Y` - """ - - X_chunks = self.X.split(1000) - Y_chunks = Y.split(1000) - - log_prob = 0 - - for x in X_chunks: - for y in Y_chunks: - log_prob += self.score_samples(y, x).sum(dim=0) - - return log_prob - -def loss_overlap(s_u, s_a, seed, bw_u=None, bw_a=None, x_num=1000, n_u=None, n_a=None, - resample=False, pseudo=True, plot=False, pro=False): - - if bw_u is None and bw_a is None: - d = 1 # one-dimension data - - # Scott's Rule, which requires the data from the normal distribution. - # This may be inappropriate when the neural network output can be arbitrary distribution - # bw_u = n_u ** (-1. / (d + 4)) - # bw_a = n_a ** (-1. / (d + 4)) - - # Silverman's Rule - bw_u = (n_u * (d + 2) / 4.) ** (-1. / (d + 4)) - bw_a = (n_a * (d + 2) / 4.) ** (-1. / (d + 4)) - - if not resample: - # we remove the duplicated anomalies, since they may not be helpful for estimating the overall distribution - unique, inverse = torch.unique(s_a, sorted=True, return_inverse=True, dim=0) - perm = torch.arange(inverse.size(0), dtype=inverse.dtype, device=inverse.device) - inverse, perm = inverse.flip([0]), perm.flip([0]) - perm = inverse.new_empty(unique.size(0)).scatter_(0, inverse, perm) - s_a = s_a[perm] - else: - assert len(s_u) == len(s_a) - - # set seed - utils.set_seed(seed) - - # reshape - s_u = s_u.reshape(-1, 1) - s_a = s_a.reshape(-1, 1) - - # kde_u = GaussianKDE(X=s_u, bw=bw * torch.std(s_u, unbiased=True)) - # kde_a = GaussianKDE(X=s_a, bw=bw * torch.std(s_a, unbiased=True)) - - kde_u = GaussianKDE(X=s_u, bw=bw_u) - kde_a = GaussianKDE(X=s_a, bw=bw_a) - - if pseudo and s_u.size(0) > s_a.size(0): - # using the fitted KDE to generate pseudo anomaly scores - # s_a = kde_a.sample(s_u.size(0)) - - # generate pseudo anomaly scores for the difference number of unlabeled data and labeled anomalies - s_a = torch.cat((s_a, kde_a.sample(s_u.size(0) - s_a.size(0))), dim=0) - - if plot: - sns.distplot(s_a.detach(), color='red', kde=False, bins=50) - plt.title('Pseudo score of abnormal data') - plt.show() - - # we observe that refit the KDE with pseudo scores would deterioriate model performance - # kde_a = GaussianKDE(X=s_a, bw=bw_a) - - xmin = torch.min(torch.min(s_u), torch.min(s_a)) - xmax = torch.max(torch.max(s_u), torch.max(s_a)) - - dx = 0.2 * (xmax - xmin) - xmin -= dx - xmax += dx - - x = torch.linspace(xmin.detach(), xmax.detach(), x_num) - kde_u_x = torch.exp(kde_u.score_samples(x.reshape(-1, 1))) - kde_a_x = torch.exp(kde_a.score_samples(x.reshape(-1, 1))) - - if plot: - plt.plot(x, kde_u_x.detach(), color='blue') - plt.plot(x, kde_a_x.detach(), color='red') - plt.show() - - if pro: - # find the intersection point (could be multiple points) - intersection_points_idx = torch.where(torch.diff(torch.sign(kde_a_x - kde_u_x)))[0] - if intersection_points_idx.size(0) == 1: - # print(f'one intersection point') - c = x[intersection_points_idx] - - x_u, x_a = x.clone(), x.clone() - x_u[x_u < c] = 0; x_a[x_a > c] = 0 - area_u = torch.trapz(kde_u_x, x_u) - area_a = torch.trapz(kde_a_x, x_a) - - - elif intersection_points_idx.size(0) == 2: - # print(f'two intersection points') - c1 = x[intersection_points_idx[0]] - c2 = x[intersection_points_idx[1]] - - assert c1 <= c2 - - x_u, x_a = x.clone(), x.clone() - x_u[x_u < c1] = 0; x_a[x_a > c2] = 0 - area_u = torch.trapz(kde_u_x, x_u) - area_a = torch.trapz(kde_a_x, x_a) - - else: - print('The intersection points are more than 2!') - # raise NotImplementedError - - c1 = x[intersection_points_idx[0]] - c2 = x[intersection_points_idx[-1]] - - assert c1 <= c2 - - x_u, x_a = x.clone(), x.clone() - x_u[x_u < c1] = 0; x_a[x_a > c2] = 0 - area_u = torch.trapz(kde_u_x, x_u) - area_a = torch.trapz(kde_a_x, x_a) - - area = area_u + area_a - - else: - inters_x = torch.min(kde_u_x, kde_a_x) - area = torch.trapz(inters_x, x) - - return area - - -def loss_overlap_formula(m1, m2, s1, s2, thres=1e-4, coarse=False): - d1 = torch.distributions.normal.Normal(loc=m1, scale=s1) - d2 = torch.distributions.normal.Normal(loc=m2, scale=s2) - - if m1 >= m2: - area = torch.tensor(1.0, requires_grad=True) - - # When the standard deviations are the same, the densities intersect at the midpoint of the means. - elif torch.abs(s1 - s2) <= thres: - c = (m1 + m2) / 2.0 - - # overlap area - area = 1.0 - d1.cdf(c) + d2.cdf(c) - - else: - c1 = torch.pow( - torch.pow(m1 - m2, 2.0) + 2.0 * (torch.pow(s1, 2.0) - torch.pow(s2, 2.0)) * torch.log(torch.div(s1, s2)), - 0.5) - c1 = m1 * s2 - s1 * c1 - c1 = m2 * torch.pow(s1, 2.0) - s2 * c1 - c1 = torch.div(c1, torch.pow(s1, 2.0) - torch.pow(s2, 2.0)) - - c2 = torch.pow( - torch.pow(m1 - m2, 2.0) + 2.0 * (torch.pow(s1, 2.0) - torch.pow(s2, 2.0)) * torch.log(torch.div(s1, s2)), - 0.5) - c2 = m1 * s2 + s1 * c2 - c2 = m2 * torch.pow(s1, 2.0) - s2 * c2 - c2 = torch.div(c2, torch.pow(s1, 2.0) - torch.pow(s2, 2.0)) - - # overlap area,实验发现是否考虑两个交点对于重叠面积的计算影响挺大的 - if coarse: - area = 1.0 - d1.cdf(c2) + d2.cdf(c2) - else: - area = 1.0 - d1.cdf(c2) + d2.cdf(c2) - d2.cdf(c1) + d1.cdf(c1) - - return area - -def fit(train_loader, model, optimizer, epochs, print_loss=False, device=None, - bw_u=None, bw_a=None, - resample=False, noise=False, pseudo=True, - X_val_tensor=None, y_val=None, early_stopping=False, tol=5): - ''' - noise: whether to add Gaussian noise of the output score of labeled anomalies - bw_u: the bandwidth of unlabeled samples - bw_a: the bandwidth of labeled anomalies - early_stopping: whether to use early stopping based on the performance in validation set - tol: the tolerance for early stopping - ''' - - # margin loss for keeping the order of score between normal samples and anomalies - ranking_loss = torch.nn.MarginRankingLoss() - - best_metric_val = 0.0 - tol_count = 0 - - for epoch in range(epochs): - model.train() - for i, data in enumerate(train_loader): - - X, y = data - X = X.to(device); y = y.to(device) - X = Variable(X); y = Variable(y) - - # removing duplicate samples - unique, inverse = torch.unique(X, sorted=True, return_inverse=True, dim=0) - perm = torch.arange(inverse.size(0), dtype=inverse.dtype, device=inverse.device) - inverse, perm = inverse.flip([0]), perm.flip([0]) - perm = inverse.new_empty(unique.size(0)).scatter_(0, inverse, perm) - - X_unique = X[perm] - y_unique = y[perm] - - n_u = torch.where(y_unique == 0)[0].size(0) - n_a = torch.where(y_unique == 1)[0].size(0) - - # clear gradient - model.zero_grad() - - # loss forward - # 注意cv中由于batchnorm的存在要一起计算score - _, mu, std, _ = model(X) - - # 由于vae的计算方式p(z|x),即每个x样本其实有其专属的高斯分布,需要逐个样本(正常样本、异常样本)计算loss并求平均 - idx_u = torch.where(y == 0)[0] - idx_a = torch.where(y == 1)[0] - - # loss = loss_overlap(s_u=score_u, s_a=score_a, seed=utils.unique(epoch, i), - # resample=resample, pseudo=pseudo, - # bw_u=bw_u, bw_a=bw_a, n_u=n_u, n_a=n_a, pro=True) - - loss = loss_overlap_formula(m1=torch.mean(mu[idx_u]), m2=torch.mean(mu[idx_a]), - s1=torch.mean(std[idx_u]), s2=torch.mean(std[idx_a])) - - # loss backward - loss.backward() - # parameter update - optimizer.step() - - if (i % 50 == 0) & print_loss: - print('[%d/%d] [%d/%d] Loss: %.4f' % (epoch + 1, epochs, i, len(train_loader), loss)) \ No newline at end of file diff --git a/baseline/SDAD_VAE/model.py b/baseline/SDAD_VAE/model.py deleted file mode 100644 index 738afd7..0000000 --- a/baseline/SDAD_VAE/model.py +++ /dev/null @@ -1,115 +0,0 @@ -import torch -from torch import nn - - -class SDAD_VAE(nn.Module): - def __init__(self, input_size, act_fun): - super(SDAD_VAE, self).__init__() - - self.feature = nn.Sequential( - nn.Linear(input_size, 100), - act_fun, - nn.Linear(100, 20), - act_fun - ) - - self.mu = nn.Sequential( - nn.Linear(20, 1) - ) - - self.log_var = nn.Sequential( - nn.Linear(20, 1) - ) - - def sample(self, mu, std): - # sampling from normal distribution (could be vector) - # 这边用到了Reparameterization Trick使得梯度可以传播 - z = mu + torch.randn_like(std) * std - return z - - def forward(self, X): - feature = self.feature(X) - # mu and std - mu, log_var = self.mu(feature), self.log_var(feature) - mu = mu.squeeze() - log_var = log_var.squeeze() - std = torch.exp(log_var / 2) - - # sampling - score = self.sample(mu, std) - - return feature, mu, std, score.squeeze() - -class SDAD_pro_VAE(nn.Module): - def __init__(self, input_size, act_fun): - super(SDAD_pro_VAE, self).__init__() - - self.encoder = nn.Sequential( - nn.Linear(input_size, 128), - act_fun, - nn.Linear(128, 64), - act_fun - ) - - # if we add relu layer in the encoder, how to represent the direction for non-negative value? - - self.decoder = nn.Sequential( - nn.Linear(64, 128), - act_fun, - nn.Linear(128, input_size), - act_fun - ) - - self.reg_1 = nn.Sequential( - nn.Linear(input_size+64+1, 256), - act_fun - ) - - self.reg_2 = nn.Sequential( - nn.Linear(256+1, 32), - act_fun - ) - - self.mu = nn.Sequential( - nn.Linear(32+1, 1) - ) - - self.log_var = nn.Sequential( - nn.Linear(32+1, 1) - ) - - def sample(self, mu, std): - # sampling from normal distribution (could be vector) - # 这边用到了Reparameterization Trick使得梯度可以传播 - z = mu + torch.randn_like(std) * std - return z - - def forward(self, X): - # hidden representation - h = self.encoder(X) - - # reconstructed input vector - X_hat = self.decoder(h) - - # reconstruction residual vector - r = torch.sub(X_hat, X) - - # reconstruction error - e = r.norm(dim=1).reshape(-1, 1) - - # normalized reconstruction residual vector - r = torch.div(r, e) #div by broadcast - - # regression - feature = self.reg_1(torch.cat((h, r, e), dim=1)) - feature = self.reg_2(torch.cat((feature, e), dim=1)) - - # mu and std - mu, log_var = self.mu(torch.cat((feature, e), dim=1)), self.log_var(torch.cat((feature, e), dim=1)) - mu = mu.squeeze() - log_var = log_var.squeeze() - std = torch.exp(log_var / 2) - - # sampling - score = self.sample(mu, std) - return feature, mu, std, score.squeeze() \ No newline at end of file diff --git a/baseline/SDAD_VAE/run.py b/baseline/SDAD_VAE/run.py deleted file mode 100644 index da65b21..0000000 --- a/baseline/SDAD_VAE/run.py +++ /dev/null @@ -1,118 +0,0 @@ -import pandas as pd -import numpy as np -import random -import os -import sys -from itertools import product -import matplotlib.pyplot as plt -from sklearn.model_selection import KFold, StratifiedKFold, train_test_split - -import torch -import torchvision -from torch import nn -from torch.autograd import Variable -from torch.utils.data import Subset, DataLoader, TensorDataset -from torchvision import datasets, transforms -import torch.nn.functional as F - -# import warnings -# warnings.filterwarnings("ignore") - -from myutils import Utils -from baseline.SDAD_VAE.model import SDAD_VAE, SDAD_pro_VAE -from baseline.SDAD_VAE.fit import fit - -class sdad_vae(): - def __init__(self, seed:int, model_name='SDAD_VAE', - epochs:int=200, batch_size:int=256, act_fun=nn.ReLU(), - lr:float=1e-2, mom=0.7, weight_decay:float=1e-2, - resample=False, noise=False, pseudo=True, - select_bw=False, select_epoch=False, early_stopping=False, - bw_u:int=10, bw_a:int=10, analysis=False): - ''' - noise: whether to add Gaussian noise for the output score of anomalies - select_bw: whether to use the validation set for selecting the best bandwidth. In practice, we observe that - the bandwidth would significantly affect the model performance - select_epoch: whether to use the validation set for selecting the best epoch to prevent overfitting problem - early stopping: whether to use the validation set for early stopping - ''' - - self.seed = seed - self.utils = Utils() - self.device = self.utils.get_device() - - #hyper-parameters - self.epochs = epochs - self.batch_size = batch_size - self.act_fun = act_fun - self.lr = lr - self.mom = mom - self.weight_decay = weight_decay - - self.resample = resample - self.noise = noise - self.pseudo = pseudo - - self.select_bw = select_bw - self.select_epoch = select_epoch - self.early_stopping = early_stopping - - #change the current hyper-parameter - self.epochs = 20 - self.lr = 1e-3 - self.select_bw = False - self.select_epoch = False - self.early_stopping = False - - if self.select_bw: - self.bw_pool = [0.01, 0.1, 1.0, 10.0, 100] - else: - # self.bw_u = bw_u - # self.bw_a = bw_a - - self.bw_u = 1.0 - self.bw_a = 1.0 - - # self.model_init = SDAD_VAE - self.model_init = SDAD_pro_VAE - self.analysis = analysis - - def fit2test(self, data): - #data - X_train = data['X_train'] - y_train = data['y_train'] - X_test = data['X_test'] - y_test = data['y_test'] - - input_size = X_train.shape[1] #input size - X_test_tensor = torch.from_numpy(X_test).float() # testing set - - # resampling - X_train, y_train = self.utils.sampler(X_train, y_train, self.batch_size) - - X_train_tensor = torch.from_numpy(X_train).float() - train_tensor = TensorDataset(torch.from_numpy(X_train).float(), torch.tensor(y_train)) - train_loader = DataLoader(train_tensor, batch_size=self.batch_size, shuffle=False, drop_last=True) - - self.utils.set_seed(self.seed) - model = self.model_init(input_size=input_size, act_fun=self.act_fun) - optimizer = torch.optim.RMSprop(model.parameters(), lr=self.lr, momentum=self.mom, - weight_decay=self.weight_decay) # optimizer - - # training - fit(train_loader=train_loader, model=model, optimizer=optimizer, epochs=self.epochs, - resample=self.resample, noise=self.noise, pseudo=self.pseudo, - bw_u=self.bw_u, bw_a=self.bw_a, device=self.device) - - #evaluating in the testing set - model.eval() - with torch.no_grad(): - _, _, _, score_test = model(X_test_tensor) - score_test = score_test.cpu().numpy() - - result = self.utils.metric(y_true=y_test, y_score=score_test) - - if self.analysis: - return model, result - else: - return result \ No newline at end of file diff --git a/baseline/SOGAAL/SOGAAL_D.h5 b/baseline/SOGAAL/SOGAAL_D.h5 deleted file mode 100644 index b86d4485787e4b580e4746bbada57093775f70f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28688 zcmeHP2V4|O(q9k}5RqU&K?FoGAaU85S$0}PKoLYRfMk%YFMg~?&^P6RZmyX?5atY)_vp# z%P|C(j0{7Hq1bgR{_{n2DMkn>;=H)rTXZ8KN>fDX4oTsS1Ve@)C{q>D6-Di9_7DmJa zXs>zxQPIKSVSM@^eg^_e68snTCBwfH-!m9J1sNf!t6ZL8E^1GvtG(GizH|M<{Qj_= zF2fbIBY@(YTz$IQ5#r$+9u^QBDCqK!=(rKewK>u+FM}6{A;PGKY6}~5!$spU&B=yAwKbZ-x1~$>M!sn42BBdm=*Y` zgoMzl#qLL(elKTtDFycV&)c~`KCxX+8YGbFn_UWX0z9O;{EFDF#Qf<)gd9snj1wnJ zwd)#*z)|rp;iyFZiJv#tH_0@Hjy&21B%*GrIf-Kfh4h zH^e78x(hjNwx;$JfnV0v)6^EaB0g!Mwg6Q@nb1e^=T=bO1$Z={?Dmb}E2v!!eAljx zKrieBlhm#8**-D8L0-a|(Lp{Df}Y&MVnagoG);^>_#OGh#CH+3`GfF@F)n9uAG!SG_DVg;l7Qy9gD1;+>mZNlWY;Nu$; zJkKYFzvl5N+EM-?u>w(I`Mu5#_7QN2dg3pSVf=MDm|vG~vV!%PU)EhmoP45!eZqYG zr~C3*!UDSuDw$nQd+GlDJye8Tvx3RwMuqhq3iXUB?#2@8)3_32W%Xn%h{ zKCfW%69m&I5bX~{arKW1kN#eOuBxJOMEM8ChVZ2ojzg$b!e)QBqzk3sn0T+>EfuxN zHw^v&_;VB^l2t6}4+R2Ax?}hEr~y+jpx;r0-?IeqEF1Bwd_T$2!GWRS!G40ae$Dgu z8t}h9&jP>lqqlK$t|K)R<|E_>VP2_~l{#(J_3>pT}qES^>IjJ|sL^;K}&*9p)1i@8!$)4AJ~v zqQWEM1yY9k^WBcGa2eodge3e7XrT!_=UiqL}0r8R7(l|?q2+Ofr{cG;y8eJxA=%S zo{(ZL>`=_tI!Tz9vHg>R{D)Wj7I*#U8!p0lD&yzpB;ELbW&gVn=pIiM z+jX1T_c(~{*5P~dpU!pnBUgF}n-cd^A&OI;5y>I;BZ?Z|^P!^rEX_YH%71i4aa_7P zUf=wS;9N(QA>3wu3rs6%juZKCa|W|FgZV`ikQK+Ne+1?C{makd#%DzHL5dpsqjQ~E z!-b6EdH%8gUzGpP2z2*DBSnLqulfC`zlNwqWO1G;%8UJn;rG>kniJbkcRwP}SSmW# z>C<(t)7^dq=Q_&#R>k%rdhGcc_Y%uxVjv9HvJJmc1o31xUqCU1`2!ErK+GdN5<p z35K-r>_s$S35F0c2}vPAQ&dG;ly=Ye;QIstr;_GSk<6NmfijGNOGNxV`J)z;OG*kG z6r61dt{xJtx?MN?s-mXnzcT{e{g9?uSkd|<&Wf#CoEO`xKnDdEDopa zLDyDpp>@s>xY6`acwN&;UWHB?h(y?Q-H;aWIO`x>?;HYk%|^nt4Rx^2K@Rvg+0aTV zDe$(QCU{_fl7~G%Ku-*0L&LdwKy%Srh{Ug@J)II^Mq3&0xi$rNo|fP}ypslf2iZg0 z0Rtd;!Gw-4*$?~*_t4G(QuLjUb3wkUQTGo+X}DXi?;>PxWps+(DN8@Lbe>bE9Ze#L;FG+ zD+e$?9!5H9bFhda7~Yu!pZKT&#f#ar^@xZ{2MXx&jmc#oL$HS*r!Mieh@ptZ7@Jg5mw4Ig>*3BOWk++g?u|f|1 zX8dNlja~)R`qcs>tHYc%e&=|7D~j>cx7jf5{AL`EDWFNYT;3h4=RD^+EpY5@EZrjg z44=}o2arBKh_)DE3g*l*z}v5H2IEiYgMlLk0IA9D_;Q=w^vCTbxaERe+O&K= z*(;7lJJ-<6;y`e7XFss^76~1*w}E+Q{dpZXl3|E?2?QBAF!6j9-m_pK)Y)bPXS}rq zkFvb+ExaXQkU=QD=F%>B#CaH8Dm4#2dfx-+m`H)qP9`95LOt$1r5AjfwimxWSsz3w z4uA(-iaFjVhQWX$2#?)y275i_;f9^*5J}L6p6APXThv?W?Jh&`x*iZ5l#GN;xr4!H z-IcJma47vAq~p{GE(q0-fsRTQ^lpw3J$yzYJ{G3IPti?yibgW%-$xx@v#x@wntJeA ze;wWsyGH2sW+W{1q3APxuF_A^(qXujCwL#Biu+O}cv&-zM{COCn}YqosMZ2#9k3to zxb6&k-q}K%S8t+ET^bLKZ^eR?k|c0sXB>#BJ7H9z1et0MMP000)M7!XvCe`s3(&_Hp$WoOO#;L6e6YOttcZg^%9hx1&)IJ9{3G zIZ%XaKip40R9KAnzjT@2pJD(bZ%qX^_0)JEun>&t^?(!P+?ONW>kRwJQ$u>8bAJ$K za2HpdATq*rr*I2M!+wvl=$zPi+T-(tU&BmlatsX3_{S!>9+0 zYTAZ74&VS2W(V#$xsuaayNi|?p2{hH8HjUldDACuDbjm;F98Si2vDbUjAu7|3N0~i zHY~cJ392I<>3+`;uxT3u4zdV@nKrg(DttCJNfxEC5&UET{JwucfDC#KN=DUwG|jlfn7^>v4RS74C8WGCuv% zHoRfxQm{EFkWM@p3{PKtMW4LN0+}O{=&&q(u(aO*`g7q$-o|H{U~yO)cwZtQkOVu%tj1Yht`nFC;gOD(vRza7eNm4_)6 z1)%oC9?($Sf$Mb?FwAE zk~L<+b(2?s{8TS^<)s&%Zm9$3=eXi?o#P<;?p!$iZ3^v=zUH~f)X}cR_B5DP4#Pgk z0K2|BY00c7w0VUVaH?8C%ZH@V6Z&Yu6j>Sk{gE-ybCnznMoi!{(`;JqP9{_`NP|d@Yd>m?U5^H;0oOnK51A5ubLs|7#dzM!VLsrk_Zk?k=MF*NLHP5q^R#L(2dW)=1Pi2Y zf~MDp0P8~&Jd`X6cJy4v`Rwa~FYK{`PE)J_F^(Ew^u$BJ%zGJcvPuolDZdWaix>=Q z?`H7=Hk{2EvSbAFzU#X=dy4oD(-VlYZ3O z2`1zZfyZ@T@Lq+z<~(|l09oe?@oW9U@#c}bpslbD?7>e!%TYr>N3;$vvY-fm-N1lp zr{{usJi!?~R$mZ}~=76#@l~BLJ72LW#5B6YJf)Ak@ zz<(GIcv!fD;#*SS+WM8SbZRNQXuk!{>>&eh1cgAGu^wRQMFV&;Bm>9pB;sl%p>UQ| z2|(*e+O}aLY|lFgFf)D7XI&L%!_4iq)<;Id;aY5Xb;v=yCFRn_Gz|>KD=- z?z+&S8p80jy>ygyC;d_NI+*HnpFTb*k3Qk50^S{2O}j)NGka@8((qv;bY@d@T~Ro1 z;OLw9e$Ub1$>pB7%yx_}EZq%rEB1j+H(fY~JU750(+E1mdmA3ScPm`#oQQ9B389y$ z8pEEYN|0J$1ainP4_xo+#ujyU(Bp zZj6C8L3{Cmv8&*6jiW%R={9b;HxGa1?*gW|UIP1XmeGTaH`IEm&xLsfqXBQV1&Eke zh3j5x;`p`__{{6lG(9F8&uNjT4=vV&)A#L%EyV|LGTnqXEKDD?=a}M@GaEj=)st=? zXb!bylyQ}P!=P_vEi6zshDKL-c#or1P+BS%On+)c?+o_@%!owLD1QZaTr~jt6{+C8 z#*KvY25*Mgh84hZLL7Zz=9b#~`y}u<{o}O_t;b-(ge35Ek`EXas0Uxqv;nP04MFTm zMbJ=M4strucr(YYqG|If@LZNF{klwz{|u}MX9m_mZ(=l%e7=HXGNOz=e>5CyO;Dyw zHlVze)%IZI8%5Z=UYg@`JO@rIw4qBS`h#4a6|naA2R^-=Am-YJKbXkm)eWoV>>YC$ z`l{ta?S_6(BRdBijGuy^XfgwZ%G05ldM?m4yH49RQ*_lED|r1w9W6sogb9($A#!Pk z*_ahmpuSTw^jbEOZY*fz^}T(S_OSq9gGn`A*FzQ8b6v(UJ2wKfme@ctzY;LjSDRVo zL_xQ73*HN>@z7Vr3hq9Q1Fgth-usK$_#5f*bp6(HdR$c;kgF!~BhtB`wX!dVdnp^e|-Go3#F@;cpO`i34FriH)C?E^OXAHa8|;c)WorQjeV z8orL{4~7-@gKkq&@%M*%fH$eH=*|Q;uwX$BEMmxkONA|XSVAdnawHpgtJ{FfR5Ez& zF_!LWECtB}*5sjU7QiAg3R=|914CU3LHLEM_*~aFwCA1_`jw9#tfT$Ffx8mm+BrvB z(s?s)pW_nXeLe`fem23U9#zDx`+vd{4Bqh6)3fkK&uTova1G4Us|H%O>hvC~XZXqY z&p8}g5%%(m$9HCA&@u1KXz7@3pmdEt7<^+LENR|IH=dIOcRlQBJ)2KGg-yyFx?;~XP-g9jn-?#FyWKkR zBfHm|r6%#f+gu8meUt)LrMo%vhlc{^r>pSgSLe`EPx9#6x>aD5B~I^q_=YZS9}67T zX3-uiuAxmt4P=% z8scSYPH@zHzU`RxhMo_#=;1kw=$H}Bc!z&F9Ufr~OWQtzlG5w6RP`;IITokS4qV0= zQyEK}ybHyp0(-$xDWC9?fl<(pQ^A``GvSc*ZSV<~gww}-q$^*2#1AhDf~9qKz$rHo zGM+!>q+4I1GuKT4F#ITPvuO>T`zf3EV1hH4y=xd)(l~(LBDt29tqtb6c48o_@i52p zMk@Y}ago;$ioh208r*N`GTKu;6L=;b<22`H;y1=j0a3R5Xf&`8>e^h#=g7#y!Lobk zxG4iUtZe~sc=cmmFfIjkX4eB|o;+QGtHTnwnHSr;FRp&8o?a5O5!ak42_tp(f`$pb z@aSA=5b&CT->a;I*IF}hD!UlWe&-3xEoXx4I1ZS!r=&JD@)mqC!53bWQUZr!wV_t= zOdxk_CS5l15}mr(5At60!{a5l!}Gxdp(HO3ti2x%#;calhLNRs(S0sH_4pYOxmpb* zs3_4hJPq-~&9CtI6&0|fE(tHf(|Mk5YamHp=6qx-fQ9E~!Htf4={1Tw@xzk(aN8S8 z9M7KuUZ*=lk2*u3=`P8U+N=!cCl$c8Pa~jZkspMzJ@7eW=FuItZ_UcpH1HPPOwQ}n z0Ki+^N*|MT0p|c(+&(0eny2bDRug)8UUX6dsIPPylA=b}#*x%;+Z!7)LFMhvHi2b2B{quhC zoyZT0Pnv~D|GTXd-`+b>?E0R#>+>POhZw?-H~#Q@;;!#LM9L=o7UUm$?_{ayeL@)# z;6L-zIa7rAkyC$PV=vBBhMKE30oHh(T07rTjx3%^H#(Ye7HB*)n`Ld!yC6}_yS!mN zJv00WGQWHXw%q9z@7nRw0jd=;^pg5_wRf^KgQ#4a^VTnJb26I6t8zn8~%ar3mh_w;k_^W>6ZsIX+NDI(B$%VD9c_A z3T7RFGxdjzyL{#yYWQn3LQc+BmziA%VSdcNE`DGXTIrLg9gIweIfNq@+9}t;UX+$L^gY6`a9~zC3j@= z=(mWcTqV)oY)p-OlR+Lei6Wd<-a##tw8-{dRcOO4Q)0k#H_Ws67W&3et0w!EIjM3+ zvF3eJG4Z)QrB;u(&dfk>4)LKq2UE%0Kn@7=t~rr+ii&tSl63hvhJ5xUzvc_z?$2)M z#m)D>O68m1s;TNIsm?yNhkTi%WVXBVLCvFOuP7Tm9n$^WVdRu&Z>sM{cXITS9n^?e ztVZMP0BUHIV$FbNZF1XjlCrN2L`E2XsJT0`H+g!SVQq!ibn4dIYwX|GqF>Zs2>e3e z7XrT!_)kONkM?bb4#E-r{?o~S+Gu~t`;Q{|c&R_w_~W$I)*7n*a3JC9Bx4Px>b%|C#=hqJFQ;5_a%M`kUh_nwvWgQ>(9M8C{-=giPycI#7{;rbLGln{*IU!`5kNKM5-`__Z>c?7fv6#Y#b` zA}8dO?G?l|rIN5OUyK>|bU|)47?bVQ=dlqQ=7i;OS=2=*nL1|pfJ}~P)Q0?q8wDjC&_x8YMXwmA_j__FJ*5`o#z<%x73M);AL;te)OrDO1;xvk%v^$|f%$ z?X+0^J4R%p!EJlU%#;Z9)aJQdXGarEzqdYWm!C$`7fusX2su*2#{jL^tHWle zbx@}zh7xc0WRs2WR48vfU99-91y{S5FL8KcUvkdEWXwDK2uW8<(2k4=ySy;;J z=IW+IM=X3;Ii(x46EiZ6}3u>43mCHXtWlgc3TOuhbsqDPI$nri_}K(_cTf{HEIs7)FE%jE7y!1z#zBg zQ0!v!vKk{jg8OJJlX9vYP9>_`#)>z;Kw`&L5J{oui4^}A80~b^1LHkv%6FTybMl$U!>n8cS9^o(UGxfFdU`UcQ*adVuk3?8*_%X+V(i1R z(%x`$>StoICVfe(eKPEw)~Y0sV6nqG(@|;OP0G;HgnhP_L6i?EMC%`0QP+HLlF_|W z37yAH#3i*R;(_80^nAMqvqsO@lxXUO#I2H{{10VvH`<;?2e>@OhVQedZXpaLHGTo| zYV3CI?)Zb`)Ej&}g8OkVsJf$D9%3Z3_cC;Rl?FHc*-Wg`Qwu$OB#KgKe!yMSno5oJ zv?SijZe=T9np?B4T%I_lDnSMK$Y5dNFR{E;qmkx56N!@7y5#GkN!X;eFD5HmO_>Rk z*{g$WHE`R!8O;KN3!eQ^g!N8`ytahqPa$jnwWdP_r&5pOOWD>m1z6u zA=p`89+o3n!o7WX0>&uhk8Mc{_943;sXS*On@f#C)fKhb&6irKFQb-lvvk&x!Hl)! z=71!uWku}%PS!!fo|8wk99xXNN|j_r%|FSkz1fD=bzVd}YnrR4F7HGW6gN;WCRbw9 zWuCE)TWm%w3(5&ReK*=NWh3zzdybSIsYQ1mv_<0c=V8Ydr*f|>_rnr)Odt!3+t3v6 zfy9ElUYO^i5~6g83e{fx9y>xV;SSQWLn~Aj5Y{srGV|_A;tsin=#xBvT=``OYx$a5 zW<>EIQ?s5ckZC?cP+J#C?u1uT*e9zhj5Az|tg9edk@l+)>vPdahN%tVWYkV9+&hk# zG*WGU)PfsC#m%g0omeinYDXb@ef%o4aOYuC*Yy_hSdKx-J)em-SihuR`mxzkZfm&v znA=d_`Q>E5zGjj+F_a)CTN3+<*AmZ0bP_hD3d{&4OVf50OOopzN1nOCtM>G0MxQ=l zuxC5EQs}h#tiE$ikgeoDIGYcE*vYG;u4pOnFEy&fC;|bW3P84mT zsZ5Y+qQAn^YAPAO_YX8EX@5L;KYjxHb`cQtwj_*>3Dn zZpXM8IyI<4RRgsa>>|U>juB6I6v3;%NR;ijVnuIKV9xL!VyYw4hYWgeL|to|!Iga| zgRRU^V5`JUqwZZ8g7`O8B1<1Y!r{wJGXEq-5=xu6RpFKB>-det;@pwgY9`HP`P@Lq z++(4Y7q?JOJrW7O$aIP^wbFR^4G&Bud+a4%ww@&yOdCSJ!6J!?TBFI)7pu`N znH#a`^WSlYov%YKr!|o;_pC)vd{iLvKg*JXH})V0)h{Mh?k6yZ>WwqaC@a-n&NI7f+>_;FPaJne=(|VI$J^aeAFEQ#IqEpKesU0I=h8qpujs*M>h2`!KJ{e> zvDctgGdEB>UK_LXHufSeOB`K5=9Zr6H=tnGSNhTg`IZyOCXoeivdzv}zc>;5C zObW3f3=&rP4qO*h4ol5w#x&(#k_+q4v9faHkk6eh#FM@(^08zEp?mlux8cMxG)XHN zIUTeX?Y-v~_oJi~mJ-?*ozBRnZbitEPV1DZ_tuYzx|Sq%Zl8dfw>oaz-OeA#kY^WJ zmt}TgPD}T(EKVIJ<`_OEhHtIJ9v(c*oTm8R#3L^Yx$$fX2AcbGuSgw2H&XI7(_4rwuwqX?9zH*o42SUYK>kBP>Oni93o zQFQqU32N`=F!FIlHZifhKhZmT0uh(YeED-lIxs_y>e3I6Wtb~uu!g=*Dw~nexZn*AAOSa+&-17b*>!!a)>|_ zZqBFF_bnni0-~wgi%%m-m8)vTzA9r!guLWtnGV5>UDi`qebOkaXJg6c@Ds%HP057c z5`sLNxy__3s)uRk`U7Ox+m%$)Gy|?{>~*v(&7FPUt#^$?x;Lw=|9-?;L4&kcLa9gn zbjfSBKE!pq^T-#|gX2*2(54+&klhYaeo!w$3aKC*E1by#R6ClM?!f)LX9AHK zAW!NSug7}N$Yt*6f1J6lav|z@RuS8EVG8%yI3;Y<+1{l79BXXsJw;^fjY!1ixH-#R zUIih*10pxRgVjqm1HEuN8QGN74|_Ne=dOLGiN!=XnEEX;Ci}lNCYNwdql>24qib*2 zvWGanq`>hC?(R`*NzYNK$nqIU*n>mIS$aVr{^z_+>NSKjAA)< z`DH!p;NvvHQ1?7B?cfT`t^aeA#K;58S8wm55hF)oM{y@^i=RGrQSue_YV!wdvUw-# z%hQ>N$*QqLc~TR~Sl>VxOYcJT$L&Tt>h2LOJ+@Exo6Cgk|w z-Dt@}35;&L&Hpb=I2a{jmbg7RbiF70GK@Sc|#ZK8O5_)kEVFWxNS8`6Fj}G$Z5Kkp~tG5%X>Tc-RxlzpI zarcAN>#){r zU4y==n2#EV7-D+qHQYQn46BipL<# z4_WL&@PZfU^Gik5vy-P`?$X8F%A4yk7Z*t~YfdY=YhMXLOr4KS>0ioHo3pMaB>X6Q z!zli9&~g)Ot(zI;Fe97#@{U0cdJ;)^97rUp@_ng1@~%mT@@wXWMMueX6B;SUATzEP z{QN58?jtJSR%7otBE5Aw5ZGrgUAi(=ZM7S$H?+eZxDxdmq~la&D@fz zo21Vh65Zf_neu#PMKmY0Qg>HhL&mK<&psp1t6}9Tw;#IwlIrV`DTH+`FU-WW7dewB;Q%)0P79&F9%rk~d5_jk zsmHvVWyr-!qlpfc6r!BSr3McjjD1m4B+j(e5kt30kTy@eF!{Dv=I4P5rgG_f(NpVg zqETxyxQ_GsVh&!Pxshv^VI`9XBgD%_B; diff --git a/baseline/SOGAAL/run.py b/baseline/SOGAAL/run.py deleted file mode 100644 index 5737569..0000000 --- a/baseline/SOGAAL/run.py +++ /dev/null @@ -1,157 +0,0 @@ -from keras.layers import Input, Dense -from keras.models import Sequential, Model -from keras.optimizers import SGD -import numpy as np -import pandas as pd -from collections import defaultdict -import keras -import math -import argparse -from keras.models import load_model -import os -from sklearn.metrics import roc_curve, auc, average_precision_score -from myutils import Utils -import warnings -warnings.filterwarnings("ignore") - -class SOGAAL(): - def __init__(self, seed, model_name='SOGAAL'): - self.seed = seed - self.utils = Utils() - - parser = argparse.ArgumentParser(description="Run SO-GAAL.") - parser.add_argument('--k', type=int, default=10, - help='Number of sub_generator.') - # default = 25 - parser.add_argument('--stop_epochs', type=int, default=25, - help='Stop training generator after stop_epochs.') - parser.add_argument('--lr_d', type=float, default=0.01, - help='Learning rate of discriminator.') - parser.add_argument('--lr_g', type=float, default=0.0001, - help='Learning rate of generator.') - parser.add_argument('--decay', type=float, default=1e-6, - help='Decay.') - parser.add_argument('--momentum', type=float, default=0.9, - help='Momentum.') - - # self.args = parser.parse_args() - self.args, unknown = parser.parse_known_args() - - # Generator - def create_generator(self, latent_size): - gen = Sequential() - gen.add(Dense(latent_size, input_dim=latent_size, activation='relu', kernel_initializer=keras.initializers.Identity(gain=1.0))) - gen.add(Dense(latent_size, activation='relu', kernel_initializer=keras.initializers.Identity(gain=1.0))) - latent = Input(shape=(latent_size,)) - fake_data = gen(latent) - return Model(latent, fake_data) - - # Discriminator - def create_discriminator(self, data_size, latent_size): - dis = Sequential() - dis.add(Dense(math.ceil(math.sqrt(data_size)), input_dim=latent_size, activation='relu', kernel_initializer= keras.initializers.VarianceScaling(scale=1.0, mode='fan_in', distribution='normal', seed=None))) - dis.add(Dense(1, activation='sigmoid', kernel_initializer=keras.initializers.VarianceScaling(scale=1.0, mode='fan_in', distribution='normal', seed=None))) - data = Input(shape=(latent_size,)) - fake = dis(data) - return Model(data, fake) - - def fit(self, X_train, y_train, print_log=False): - # set seed - self.utils.set_seed(self.seed) - - data_x, data_y = X_train, y_train - verbose = 0 - if print_log: - print("The dimension of the training data :{}*{}".format(data_x.shape[0], data_x.shape[1])) - verbose = 1 - latent_size = data_x.shape[1] - data_size = data_x.shape[0] - stop = 0 - epochs = self.args.stop_epochs * 3 - - train_history = defaultdict(list) - - # Create discriminator - discriminator = self.create_discriminator(data_size = data_size,latent_size = latent_size) - discriminator.compile(optimizer=SGD(lr=self.args.lr_d, decay=self.args.decay, momentum=self.args.momentum), - loss='binary_crossentropy') - - # Create combine model - generator = self.create_generator(latent_size) - latent = Input(shape=(latent_size,)) - fake = generator(latent) - discriminator.trainable = False - fake = discriminator(fake) - combine_model = Model(latent, fake) - combine_model.compile(optimizer=SGD(lr=self.args.lr_g, decay=self.args.decay, momentum=self.args.momentum), - loss='binary_crossentropy') - - # Start iteration - print('Training...') - for epoch in range(epochs): - if print_log: - print('Epoch {} of {}'.format(epoch + 1, epochs)) - batch_size = min(500, data_size) - num_batches = int(data_size / batch_size) - - for index in range(num_batches): - if print_log: - print('\nTesting for epoch {} index {}:'.format(epoch + 1, index + 1)) - - # Generate noise - noise_size = batch_size - noise = np.random.uniform(0, 1, (int(noise_size), latent_size)) - - # Get training data - data_batch = data_x[index * batch_size: (index + 1) * batch_size] - - # Generate potential outliers - generated_data = generator.predict(noise, verbose=verbose) - - # Concatenate real data to generated data - X = np.concatenate((data_batch, generated_data)) - Y = np.array([1] * batch_size + [0] * int(noise_size)) - - # Train discriminator - discriminator_loss = discriminator.train_on_batch(X, Y) - train_history['discriminator_loss'].append(discriminator_loss) - - # Train generator - if stop == 0: - trick = np.array([1] * noise_size) - generator_loss = combine_model.train_on_batch(noise, trick) - train_history['generator_loss'].append(generator_loss) - else: - trick = np.array([1] * noise_size) - generator_loss = combine_model.evaluate(noise, trick,verbose=verbose) - train_history['generator_loss'].append(generator_loss) - - # Stop training generator - if epoch + 1 > self.args.stop_epochs: - stop = 1 - - # saving model - if (epoch + 1) == epochs: - # discriminator weights - discriminator.save(os.path.join('baseline','SOGAAL','SOGAAL_D.h5')) - - # Detection result - # p_value = discriminator.predict(data_x) - # p_value = pd.DataFrame(p_value) - # data_y = pd.DataFrame(data_y) - # result = np.concatenate((p_value, data_y), axis=1) - # result = pd.DataFrame(result, columns=['p', 'y']) - # result = result.sort_values('p', ascending=True) - - return self - - # evaluate - def predict_score(self, X, phase=None): - data_x = X - discriminator_all = load_model(os.path.join('baseline', 'SOGAAL', 'SOGAAL_D.h5')) - p_value = discriminator_all.predict(data_x) - result = pd.DataFrame(p_value, columns=['p']) - result = result.sort_values('p', ascending=True) - score = np.array(1 - result['p']) - - return score \ No newline at end of file diff --git a/baseline/WSGAN/fit.py b/baseline/WSGAN/fit.py deleted file mode 100644 index 1311705..0000000 --- a/baseline/WSGAN/fit.py +++ /dev/null @@ -1,118 +0,0 @@ -import os -import sys -from myutils import Utils - -from baseline.WSGAN.model import generator -from baseline.WSGAN.model import discriminator - -import torch -from torch import nn -from torch.autograd import Variable - - -def fit(dataloader, net_generator, net_discriminator, optimizer_G, optimizer_D, - eta, epochs, seed, batch_size, input_size, act_fun, - device, org_loss=True, print_loss=False): - ''' - :param dataloader: - :param net_generator: - :param net_discriminator: - :param optimizer_G: - :param optimizer_D: - :param eta: weight for the combination of loss function - :param epochs: - :param seed: - :param batch_size: - :param input_size: - :param act_fun: - :param device: - :param org_loss: whether to use the original loss function in WSGAN - :param print_loss: - :return: - ''' - L1_criterion = nn.L1Loss(reduction='none') - L2_criterion = nn.MSELoss(reduction='none') - BCE_criterion = nn.BCELoss(reduction='mean') - - # my utils - utils = Utils() - - for epoch in range(epochs): - for i, data in enumerate(dataloader): - - # y_aclabel means the acquired label information (which may be contaminated) - X, y_aclabel = data - y_real = torch.FloatTensor(batch_size).fill_(0) # real label=0,size=batch_size - y_fake = torch.FloatTensor(batch_size).fill_(1) # fake label=1,size=batch_size - - # to cuda - X = X.to(device) - y_aclabel = y_aclabel.to(device) - y_real = y_real.to(device) - y_fake = y_fake.to(device) - - X = Variable(X) - y_aclabel = Variable(y_aclabel) - y_real = Variable(y_real) - y_fake = Variable(y_fake) - - # zero grad for discriminator - net_discriminator.zero_grad() - - # training the discriminator with real sample - _, output = net_discriminator(X) - loss_D_real = BCE_criterion(output.view(-1), y_real) - - # training the discriminator with fake sample - _, X_hat, _ = net_generator(X) - _, output = net_discriminator(X_hat) - loss_D_fake = BCE_criterion(output.view(-1), y_fake) - - # entire loss in discriminator - loss_D = (loss_D_real + loss_D_fake) / 2 - - # backward - loss_D.backward() - optimizer_D.step() - - # reinitialization - if loss_D < 1e-1: - print('Reinitialization of discriminator...') - utils.set_seed(seed) - net_discriminator = discriminator(input_size=input_size, act_fun=act_fun) - net_discriminator.to(device) - - # training the generator based on the result from the discriminator - net_generator.zero_grad() - - z, X_hat, z_hat = net_generator(X) - feature_real, _ = net_discriminator(X) - feature_fake, _ = net_discriminator(X_hat) - - # 2021.5.17:注意此处应该是sum而非mean(之前代码为torch.mean) - loss_G_contextual = torch.mean(L1_criterion(X, X_hat), 1) # contextual loss - loss_G_encoder = torch.mean(L1_criterion(z, z_hat), 1) # encdoer loss - loss_G_latent = torch.mean(L2_criterion(feature_fake, feature_real), 1) # latent loss - - loss_G = (loss_G_contextual + loss_G_encoder + loss_G_latent) / 3 - - if org_loss: - loss_G_u = torch.mean(loss_G[y_aclabel==0]) - loss_G_a = torch.mean(torch.pow(loss_G[y_aclabel==1],-1)) - if loss_G_a.size(0) > 0: - loss_G = (1 - eta) * loss_G_u + eta * loss_G_a - else: - loss_G = loss_G_u - else: - loss_G_u = torch.mean(loss_G[y_aclabel==0]) - loss_G_a = torch.mean(loss_G[y_aclabel==1]) - - loss_G = (1 - eta) * loss_G_u - eta * loss_G_a - - - loss_G.backward() - optimizer_G.step() - - if (i % 50 == 0) & print_loss: - print('[%d/%d] [%d/%d] Loss D: %.4f / Loss G: %.4f' % ( - epoch + 1, epochs, i, len(dataloader), loss_D, loss_G)) diff --git a/baseline/WSGAN/model.py b/baseline/WSGAN/model.py deleted file mode 100644 index fb2b9e6..0000000 --- a/baseline/WSGAN/model.py +++ /dev/null @@ -1,48 +0,0 @@ -from torch import nn - -class generator(nn.Module): - def __init__(self, input_size, hidden_size, act_fun): - super(generator, self).__init__() - - self.encoder_1 = nn.Sequential( - nn.Linear(input_size, hidden_size), - act_fun, - ) - - self.decoder_1 = nn.Sequential( - nn.Linear(hidden_size, input_size), - ) - - self.encoder_2 = nn.Sequential( - nn.Linear(input_size, hidden_size), - act_fun, - ) - - def forward(self, input): - z = self.encoder_1(input) - X_hat = self.decoder_1(z) - z_hat = self.encoder_2(X_hat) - - return z, X_hat, z_hat - -class discriminator(nn.Module): - def __init__(self, input_size, act_fun): - super(discriminator, self).__init__() - - self.encoder = nn.Sequential( - nn.Linear(input_size, 100), - act_fun, - nn.Linear(100, 20), - act_fun - ) - - self.classifier = nn.Sequential( - nn.Linear(20, 1), - nn.Sigmoid() - ) - - def forward(self, input): - latent_vector = self.encoder(input) - output = self.classifier(latent_vector) - - return latent_vector, output diff --git a/baseline/WSGAN/run.py b/baseline/WSGAN/run.py deleted file mode 100644 index 1cb5b9f..0000000 --- a/baseline/WSGAN/run.py +++ /dev/null @@ -1,81 +0,0 @@ -import sys -import os -# sys.path.append(os.path.dirname(__file__)) - -import torch -from torch import nn -from torch.utils.data import Subset,DataLoader,TensorDataset -from myutils import Utils - -from baseline.WSGAN.model import generator -from baseline.WSGAN.model import discriminator -from baseline.WSGAN.fit import fit - -class WSGAN(): - def __init__(self, seed, model_name='WSGAN', - epochs:int=50, batch_size:int=64, act_fun=nn.ReLU(), lr:float=1e-2, mom:float=0.7, eta:float=0.5): - self.utils = Utils() - self.device = self.utils.get_device() # get device - self.seed = seed - - self.epochs = epochs - self.batch_size = batch_size - self.act_fun = act_fun - self.lr = lr - self.mom = mom - self.eta = eta - - def evaluation(self, data_tensor, model): - data_tensor = data_tensor.to(self.device) - L1_criterion = nn.L1Loss(reduction='none') - - z, _, z_hat = model(data_tensor) - score = L1_criterion(z, z_hat) - score = torch.sum(score, dim=1).cpu().detach().numpy() - - return score - - def fit2test(self, data): - # data - X_train = data['X_train'] - y_train = data['y_train'] - X_test = data['X_test'] - y_test = data['y_test'] - - X_train, y_train = self.utils.sampler(X_train, y_train, self.batch_size) - - train_tensor = TensorDataset(torch.from_numpy(X_train).float(), torch.tensor(y_train).float()) - train_loader = DataLoader(train_tensor, batch_size=self.batch_size, shuffle=False, drop_last=True) - - # testing set - X_test_tensor = torch.from_numpy(X_test).float() - - input_size = X_test_tensor.size(1) - if input_size < 8: - hidden_size = input_size // 2 - else: - hidden_size = input_size // 4 - - # model initialization, there exists randomness because of weight initialization*** - self.utils.set_seed(self.seed) - net_generator = generator(input_size=input_size, hidden_size=hidden_size, act_fun=self.act_fun) - net_discriminator = discriminator(input_size=input_size, act_fun=self.act_fun) - - net_generator = net_generator.to(self.device) - net_discriminator = net_discriminator.to(self.device) - - optimizer_G = torch.optim.SGD(net_generator.parameters(), lr=self.lr, momentum=self.mom) - optimizer_D = torch.optim.SGD(net_discriminator.parameters(), lr=self.lr, momentum=self.mom) - - # fitting - fit(dataloader=train_loader, net_generator=net_generator, net_discriminator=net_discriminator, - optimizer_G=optimizer_G, optimizer_D=optimizer_D, - eta=self.eta, epochs=self.epochs, seed=self.seed, batch_size=self.batch_size, - input_size=input_size, act_fun=self.act_fun, - device=self.device, print_loss=False) - - # evaluation - score_test = self.evaluation(data_tensor=X_test_tensor, model=net_generator) - result = self.utils.metric(y_true=y_test, y_score=score_test) - - return result \ No newline at end of file diff --git a/data_generator.py b/data_generator.py index 8901df4..545671c 100644 --- a/data_generator.py +++ b/data_generator.py @@ -293,7 +293,7 @@ def generator(self, la=None, at_least_one_labeled=False, ['FashionMNIST_' + str(i) for i in range(10)] +\ ['CIFAR10_' + str(i) for i in range(10)] +\ ['SVHN_' + str(i) for i in range(10)]: - data = np.load(os.path.join('datasets_NLP_CV', self.dataset + '.npz')) + data = np.load(os.path.join('datasets', 'NLPCV', self.dataset + '.npz')) X = data['X'] y = data['y'] @@ -352,7 +352,7 @@ def generator(self, la=None, at_least_one_labeled=False, # 因为dependency outlier生成的时间太长了, 这边加载了提前生成好的样本(大于3000的数据集抽样到了3000) if realistic_synthetic_mode == 'dependency': print('使用了提前生成的dependency outliers...') - dataset_dict = np.load('dependency_outlier_large.npz', allow_pickle=True) + dataset_dict = np.load(os.path.join('datasets', 'Dependency_outlier', 'dependency_outlier_large.npz'), allow_pickle=True) dataset_dict = dataset_dict['dataset'].item() if self.dataset in dataset_dict.keys(): diff --git a/run.py b/run.py index 39ff59b..f99da49 100644 --- a/run.py +++ b/run.py @@ -222,7 +222,7 @@ def model_fit(self): try: # model fitting, currently most of models are implemented to output the anomaly score - if self.model_name not in ['SDAD', 'WSGAN', 'DeepSAD', 'FS', 'ResNet', 'FTTransformer']: + if self.model_name not in ['DeepSAD', 'ResNet', 'FTTransformer']: # fitting self.clf = self.clf.fit(X_train=self.data['X_train'], y_train=self.data['y_train'], ratio=sum(self.data['y_test']) / len(self.data['y_test']))