Advertisement
Guest User

loadsvm.py

a guest
Apr 29th, 2016
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.64 KB | None | 0 0
  1. import numpy as np
  2.  
  3. # goran = 0 .....  georgi =  1 ..... gorjan  = 2 ..... ivan = 3
  4. def normalize(x):
  5.     x_norm = x
  6.     num_col = x.shape[1]
  7.     for i in range(0,num_col):
  8.         x_norm[:, i] = (x_norm[:, i] - np.mean(x[:, i]))/np.std(x[:, i])
  9.     return x_norm
  10.  
  11.  
  12. def data():
  13.     n = 13
  14.     brojnesto = 0
  15.     kolkuceka =0
  16.     kolkuceka500 = 0
  17.     kt = 0
  18.     kolkulevo = kolkudesno = kolkugore = kolkudole = 0
  19.     kolkutrening = 0
  20.     rastprva = 0
  21.     vkupnovreme = 0
  22.     brzina = brojac = 0
  23.     agolminus = agolplus= 0
  24.     brgore = brdole = brdesno = brlevo = 1
  25.     trX = np.zeros([1151, n])
  26.     trY = np.zeros([1151],dtype=np.int8)
  27.     teX = np.zeros([192, n])
  28.     teY = np.zeros([192],dtype=np.int8)
  29.     lines = [line.rstrip('\n') for line in open('hw2_mouse_data.txt')]
  30.     for i in range(0, len(lines)-1):
  31.         linei = lines[i]
  32.         linei = linei[1:len(linei) - 1]
  33.         splitovano = linei.split(', ')
  34.         vlezi = np.asarray(splitovano)
  35.         if vlezi[0] == 'Goran' or vlezi[0] == 'Georgi' or vlezi[0] == 'Gorjan' or vlezi[0] == 'Ivan':
  36.             if vlezi[0] == 'Goran':
  37.                 izlez = 0
  38.             if vlezi[0] == 'Georgi':
  39.                 izlez = 1
  40.             if vlezi[0] == 'Gorjan':
  41.                 izlez = 2
  42.             if vlezi[0] == 'Ivan':
  43.                 izlez = 3
  44.             prva = lines[i+1]
  45.             prva = prva[1:len(prva) - 1]
  46.             splitprva = prva.split(', ')
  47.             prva = np.asarray(splitprva, dtype=float)
  48.             i = i +1
  49.             vlez = lines[i]
  50.             vlez = vlez[1:len(vlez) - 1]
  51.             splitovano = vlez.split(', ')
  52.             vlez = np.asarray(splitovano)
  53.             while len(vlez)> 1:
  54.                 line1 = lines[i]
  55.                 line1 = line1[1:len(line1) -1]
  56.                 splitovano = line1.split(', ')
  57.                 line1 = np.asarray(splitovano, dtype=float)
  58.                 i = i+1
  59.                 if i > (len(lines) - 1):
  60.                     break
  61.                 pom = lines[i]
  62.                 pom = pom[1:len(pom)-1]
  63.                 splitovano = pom.split(', ')
  64.                 pom = np.asarray(splitovano)
  65.                 if len(pom) >1:
  66.                     line2 = lines[i]
  67.                     line2 = line2[1:len(line2) - 1]
  68.                     splitovano = line2.split(', ')
  69.                     line2 = np.asarray(splitovano, dtype=float)
  70.                 else:
  71.                     break
  72.                     vlez = pom
  73.  
  74.                 x_razlika = line1[0] - line2[0]
  75.                 y_razlika = line1[1] - line2[1]
  76.                 rastprva += np.sqrt((prva[0] - line1[0])**2 + (prva[1] - line1[1])**2)
  77.                 if x_razlika:
  78.                     agol= np.arctan(np.abs(y_razlika)/np.abs(x_razlika))
  79.                 else: agol = 1.57079623
  80.                 if (x_razlika >= 0 and y_razlika >= 0) or (x_razlika <= 0 and y_razlika <= 0):
  81.                     agolplus += agol
  82.  
  83.                 elif (x_razlika >=0 and y_razlika <=0) or (x_razlika<=0 and y_razlika>= 0):
  84.                     agolminus += agol
  85.  
  86.                 vreme = line2[2]
  87.                 if x_razlika > 0:
  88.                     kolkulevo += np.abs(x_razlika)
  89.                     brlevo += 1
  90.                 if x_razlika < 0:
  91.                     kolkudesno += np.abs(x_razlika)
  92.                     brdesno += 1
  93.                 if y_razlika > 0:
  94.                     kolkudole += np.abs(y_razlika)
  95.                     brdole += 1
  96.                 if y_razlika < 0:
  97.                     kolkugore += np.abs(y_razlika)
  98.                     brgore += 1
  99.                 brzina += np.sqrt(x_razlika ** 2 + y_razlika ** 2) / float(vreme)
  100.                 if vreme > 200:
  101.                     kolkuceka500 += 1
  102.                 if vreme < 80:
  103.                     vkupnovreme += vreme
  104.                 else:
  105.                     vkupnovreme += 1
  106.                     kolkuceka +=1
  107.                 kolkutrening += 1
  108.  
  109.             brzina = float(brzina) / float(kolkutrening)
  110.             rastprva = float(rastprva) / float(kolkutrening)
  111.             if kolkulevo:
  112.                 kolkulevo = float(kolkulevo) / float(brlevo)
  113.             if kolkudesno:
  114.                 kolkudesno = float(kolkudesno) / float(brdesno)
  115.             if kolkugore:
  116.                 kolkugore = float(kolkugore) / float(brgore)
  117.             if kolkudole:
  118.                 kolkudole = float(kolkudole) / float(brdole)
  119.             prosecnovreme = float(vkupnovreme) / float(kolkutrening)
  120.  
  121.             zabrzuvanje = float(brzina) / float(prosecnovreme)
  122.             jerk = float(zabrzuvanje) / float (prosecnovreme)
  123.             agolplus = float(agolplus)/ float(kolkutrening)
  124.             agolminus = float(agolminus) / float(kolkutrening)
  125.  
  126.             niza = np.asarray(
  127.                 [kolkugore, kolkudole, kolkulevo, kolkudesno, brzina, np.sqrt(prosecnovreme), kolkuceka, kolkuceka500, agolplus, agolminus,
  128.                  np.sqrt(kolkugore), zabrzuvanje, np.sqrt(jerk)])
  129.             if brojnesto % 6 != 0:
  130.                 trX[brojac] = niza
  131.                 trY[brojac] = izlez
  132.                 brojac +=1
  133.                 brojnesto += 1
  134.             else:
  135.                 teX[kt] = niza
  136.                 teY[kt] = izlez
  137.                 trX[brojac] = niza
  138.                 trY[brojac] = izlez
  139.                 brojac += 1
  140.                 kt += 1
  141.                 brojnesto +=1
  142.  
  143.             brzina = kolkutrening= vkupnovreme = agol =agolplus = agolminus =0
  144.             kolkulevo = kolkudesno = kolkugore = kolkudole = rastprva = kolkuceka = kolkuceka500 = 0
  145.             brdole = brgore = brdesno = brlevo = 1
  146.     trX = normalize(trX)
  147.     teX = normalize(teX)
  148.  
  149.     return trX, teX, trY, teY, n
  150.  
  151. data()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement