Add files via upload
Esse commit está contido em:
@@ -0,0 +1,42 @@
|
|||||||
|
import csv
|
||||||
|
from collections import defaultdict
|
||||||
|
import numpy as np
|
||||||
|
from scipy.signal import *
|
||||||
|
from numpy.fft import *
|
||||||
|
from scipy import *
|
||||||
|
from pylab import *
|
||||||
|
import pywt
|
||||||
|
fout_data = open("train.csv",'a')
|
||||||
|
vec = []
|
||||||
|
chan = ['Fp1','AF3','F3','F7','FC5','FC1','C3','T7','CP5','CP1','P3','P7','PO3','O1','Oz','Pz','Fp2','AF4','Fz','F4','F8','FC6','FC2','Cz','C4','T8','CP6','CP2','P4','P8','PO4','O2']
|
||||||
|
columns = defaultdict(list) # each value in each column is appended to a list
|
||||||
|
|
||||||
|
with open("features_raw.csv") as f:
|
||||||
|
reader = csv.DictReader(f) # read rows into a dictionary format
|
||||||
|
for row in reader: # read a row as {column1: value1, column2: value2,...}
|
||||||
|
for (k,v) in row.items(): # go over each column name and value
|
||||||
|
columns[k].append(v) # append the value into the appropriate list
|
||||||
|
# based on column name k
|
||||||
|
for i in chan:
|
||||||
|
x = np.array(columns[i]).astype(np.float)
|
||||||
|
coeffs = pywt.wavedec(x, 'db4', level=6)
|
||||||
|
cA2, cD1, cD2,cD3,cD4,cD5,cD6 = coeffs
|
||||||
|
cD5 = np.std(cD5)
|
||||||
|
cD4 = np.std(cD4)
|
||||||
|
cD3 = np.std(cD3)
|
||||||
|
cD2 = np.std(cD2)
|
||||||
|
cD1 = np.std(cD1)
|
||||||
|
if i =="O2":
|
||||||
|
fout_data.write(str(cD5)+",")
|
||||||
|
fout_data.write(str(cD4)+",")
|
||||||
|
fout_data.write(str(cD3)+",")
|
||||||
|
fout_data.write(str(cD2)+",")
|
||||||
|
fout_data.write(str(cD1))
|
||||||
|
else:
|
||||||
|
fout_data.write(str(cD5)+",")
|
||||||
|
fout_data.write(str(cD4)+",")
|
||||||
|
fout_data.write(str(cD3)+",")
|
||||||
|
fout_data.write(str(cD2)+",")
|
||||||
|
fout_data.write(str(cD1)+",")
|
||||||
|
fout_data.write("\n")
|
||||||
|
fout_data.close()
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
import cPickle
|
||||||
|
import os
|
||||||
|
from multiprocessing import Pool
|
||||||
|
import sys
|
||||||
|
import numpy as np
|
||||||
|
chan = ['Fp1','AF3','F3','F7','FC5','FC1','C3','T7','CP5','CP1','P3','P7','PO3','O1','Oz','Pz','Fp2','AF4','Fz','F4','F8','FC6','FC2','Cz','C4','T8','CP6','CP2','P4','P8','PO4','O2']
|
||||||
|
nLabel, nTrial, nUser, nChannel, nTime = 4, 40, 32, 32, 8064
|
||||||
|
print "Program started \n"
|
||||||
|
fout_labels0 = open("labels_0.dat",'w')
|
||||||
|
fout_labels1 = open("labels_1.dat",'w')
|
||||||
|
fout_labels2 = open("labels_2.dat",'w')
|
||||||
|
fout_labels3 = open("labels_3.dat",'w')
|
||||||
|
for i in range(nUser):#4, 40, 32, 32, 8064
|
||||||
|
if i < 10:
|
||||||
|
name = '%0*d' % (2,i+1)
|
||||||
|
else:
|
||||||
|
name = i+1
|
||||||
|
fname = "/data_preprocessed_python/data_preprocessed_python/s"+str(name)+".dat"
|
||||||
|
x = cPickle.load(open(fname, 'rb'))
|
||||||
|
print fname
|
||||||
|
for tr in range(nTrial):
|
||||||
|
fout_data = open("features_raw.csv",'w')
|
||||||
|
for ch in chan:
|
||||||
|
fout_data.write(ch+",")
|
||||||
|
fout_data.write("\n")
|
||||||
|
for dat in range(nTime):
|
||||||
|
for ch in range(nChannel):
|
||||||
|
if ch <32:
|
||||||
|
if ch == 31:
|
||||||
|
fout_data.write(str(x['data'][tr][ch][dat]));
|
||||||
|
else:
|
||||||
|
fout_data.write(str(x['data'][tr][ch][dat])+",");
|
||||||
|
fout_data.write("\n");
|
||||||
|
fout_labels0.write(str(x['labels'][tr][0]) + "\n");
|
||||||
|
fout_labels1.write(str(x['labels'][tr][1]) + "\n");
|
||||||
|
fout_labels2.write(str(x['labels'][tr][2]) + "\n");
|
||||||
|
fout_labels3.write(str(x['labels'][tr][3]) + "\n");
|
||||||
|
fout_data.close()
|
||||||
|
os.system('python creating_vector.py')
|
||||||
|
print "user "+ str(i) +" trail"+ str(tr)
|
||||||
|
fout_labels0.close()
|
||||||
|
fout_labels1.close()
|
||||||
|
fout_labels2.close()
|
||||||
|
fout_labels3.close()
|
||||||
|
print "\n"+"Print Successful"
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
from sklearn import svm
|
||||||
|
import numpy as np
|
||||||
|
train_y = []
|
||||||
|
train_a = []
|
||||||
|
train_x = np.genfromtxt('train.csv',delimiter=',')
|
||||||
|
f = open("labels_0.dat","r")
|
||||||
|
for i in f:
|
||||||
|
train_y.append(i)
|
||||||
|
train_y = np.array(train_y).astype(np.float)
|
||||||
|
train_y = train_y.astype(np.int)
|
||||||
|
train_x = np.array(train_x)
|
||||||
|
#print "valence",train_y
|
||||||
|
#print train_x
|
||||||
|
#print "train_x",train_x
|
||||||
|
clf = svm.SVC()
|
||||||
|
clf.fit(train_x, train_y)
|
||||||
|
|
||||||
|
|
||||||
|
f = open("labels_1.dat","r")
|
||||||
|
for i in f:
|
||||||
|
train_a.append(i)
|
||||||
|
train_a = np.array(train_a).astype(np.float)
|
||||||
|
train_a = train_a.astype(np.int)
|
||||||
|
#print "arousal",train_a[1040:1280]
|
||||||
|
#print "train_x",len(train_x[0:26])
|
||||||
|
clf1 = svm.SVC()
|
||||||
|
clf1.fit(train_x, train_a)
|
||||||
|
#print test_a
|
||||||
|
predict_al = clf1.predict(train_x)
|
||||||
|
#print "alrosal",predict_al
|
||||||
|
predict_val = clf.predict(train_x)
|
||||||
|
#print "valence",predict_val
|
||||||
|
val_count = al_count = 0
|
||||||
|
for i in range(len(train_y)):
|
||||||
|
if train_y[i] == predict_val[i]:
|
||||||
|
val_count = val_count+1
|
||||||
|
if train_a[i] == predict_al[i]:
|
||||||
|
al_count = al_count+1
|
||||||
|
print "predicted valence",(float(val_count)/len(train_y))*100
|
||||||
|
print "predicted arousal",(float(al_count)/len(train_y))*100
|
||||||
|
# classifier efficiency
|
||||||
|
'''
|
||||||
|
predicted valence 98.046875 percentage
|
||||||
|
predicted arousal 97.890625 percentage
|
||||||
|
|
||||||
|
predicted valence 95.0
|
||||||
|
predicted arousal 96.09375
|
||||||
|
'''
|
||||||
|
# output
|
||||||
|
'''
|
||||||
|
predicted valence 17.9166666667
|
||||||
|
predicted arousal 13.3333333333
|
||||||
|
'''
|
||||||
|
#chan = ['Fp1','AF3','F3','F7','FC5','FC1','C3','T7','CP5','CP1','P3','P7','PO3','O1','Oz','Pz','Fp2','AF4','Fz','F4','F8','FC6','FC2','Cz','C4','T8','CP6','CP2','P4','P8','PO4','O2']
|
||||||
|
|
||||||
Referência em uma Nova Issue
Bloquear um usuário