-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdimred_analysis.py
More file actions
63 lines (51 loc) · 1.64 KB
/
dimred_analysis.py
File metadata and controls
63 lines (51 loc) · 1.64 KB
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
60
61
62
63
from ogc.dimensionality_reduction import PCA, LDA
import numpy as np
from os import makedirs
from ogc import plot, utilities
import matplotlib.pyplot as plt
from project import TRAINING_DATA, TEST_DATA, ROOT_PATH
OUTPUT_PATH = ROOT_PATH + "../images/dimred/"
makedirs(OUTPUT_PATH, exist_ok=True)
DTR, LTR = TRAINING_DATA()
def variance(DTR):
return utilities.cov(DTR).trace()
# LDA and PCA
# LDA
new_dims = list(range(13))
new_dims.reverse()
initial_variance = variance(DTR)
pca_list = []
for new_dim in new_dims:
pca, _ = PCA(DTR, new_dim)
pca_list.append((new_dim, variance(pca)/initial_variance))
# Plot variances
plt.figure()
plt.plot([x[0] for x in pca_list], [x[1] for x in pca_list])
plt.xlabel("Number of dimensions")
plt.ylabel("Fraction of Explained Variance")
plt.title("PCA with different number of dimensions")
plt.xticks([x[0] for x in pca_list])
plt.yticks([i/10 for i in range(11)])
print(pca_list)
plt.grid()
plt.savefig(OUTPUT_PATH + "pca_variance.png")
# Again with z-normalization
DTR, _mean, _stddev = utilities.ZNormalization(DTR)
new_dims = list(range(13))
new_dims.reverse()
initial_variance = variance(DTR)
pca_list = []
for new_dim in new_dims:
pca, _ = PCA(DTR, new_dim)
pca_list.append((new_dim, variance(pca)/initial_variance))
# Plot variances
plt.figure()
plt.plot([x[0] for x in pca_list], [x[1] for x in pca_list])
plt.xlabel("Number of dimensions")
plt.ylabel("Fraction of Explained Variance")
plt.title("PCA with different number of dimensions - Z-Normalized")
plt.xticks([x[0] for x in pca_list])
plt.yticks([i/10 for i in range(11)])
plt.grid()
print(pca_list)
plt.savefig(OUTPUT_PATH + "pca_variance_znorm.png")