-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfeatures.py
50 lines (36 loc) · 1.24 KB
/
features.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
import numpy as np
from tempfile import TemporaryFile
import help as pca
from sklearn.decomposition import PCA
filename = "mfeat-pix.txt"
digitImageVectors = np.loadtxt(filename)
def bias(transform):
fin = []
for i in range(len(transform)):
fin1 = np.append(transform[i], 1)
fin = np.append(fin, fin1)
fin = fin.reshape((len(transform),len(transform[0])+1))
return fin
def createFeatureVectors(k):
method = 4
F = []
testVectors = []
for digit in range(0, 10):
left = int(digit)*200
right = 100 + 200*int(digit)
mfeat = digitImageVectors[left:right, :]
testVectors = np.append(testVectors, mfeat)
pca = PCA(n_components=k)#(mfeat, digit, k)
Fd = bias(pca.fit_transform(mfeat))
print(Fd.shape)
F.append(Fd)
# F: Feature vectors
F = np.reshape(F, (10 * 100 , k+1))
testVectors = np.reshape(testVectors, (1000, 240))
return np.reshape(np.ravel(F), (10 * 100, k+1))
# training set
#len(digitImageVectors[0])))
# binary for training set
#binarySet = [np.identity(10)[i//100] for i in range(len(testVectors))]
#binarySet = np.reshape(binarySet, (len(testVectors), len(binarySet[0])))
#print(np.reshape(np.ravel(F), (1000,101)).shape)