-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathL1AnomalyGPUTSVD.py
59 lines (45 loc) · 2.06 KB
/
L1AnomalyGPUTSVD.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import matplotlib.pyplot as plt
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from cuml.decomposition import TruncatedSVD
import L1AnomalyBase
import L1AnomalyGPU
class L1AnomalyGPUTSVD(L1AnomalyBase):
def __init__(self, background_file, signal_files, signal_labels, blackbox_file, classVar = False, job=False):
super().__init__(self, background_file, signal_files, signal_labels, blackbox_file, classVar)
if job == False:
L1AnomalyGPU.gpu_notebook_install()
else:
L1AnomalyGPU.gpu_job_install()
self.background_data = super.load_data(self, type = 0)
self.signal_data = super.load_data(self, type = 1)
self.blackbox_data = super.load_data(self, type = 2)
def plot_explained_background_variance(self, RS = 42, train_size = 0.8):
X_train, X_test = train_test_split(
self.background_data.reshape(self.background_data.shape[0], -1),
train_size=train_size,
shuffle=True,
random_state=RS,
)
print("Train Test Split Complete")
X_train_scaled, pt_scaler = L1AnomalyBase.scale_pt(X_train)
X_train_standard = StandardScaler().fit_transform(X_train_scaled)
print("Train scale_pt Complete")
X_test_scaled, _ = L1AnomalyBase.scale_pt(X_test, pt_scaler)
X_test_standard = StandardScaler().fit_transform(X_test_scaled)
print("Train and Test scale_pt Complete")
nums = np.arange(1,58)
var_ratio = []
for num in nums:
tsvd = TruncatedSVD(n_components=num)
tsvd.fit(X_train_standard)
var_ratio.append(np.sum(tsvd.explained_variance_ratio_))
plt.clf()
plt.figure()#figsize=(4,2),dpi=150)
plt.grid()
plt.plot(nums,var_ratio,marker='o')
plt.xlabel('n_components')
plt.ylabel('Explained variance ratio')
plt.title('n_components vs. Explained Variance Ratio')
plt.savefig(f"GPU_TSVD_num_components.png")