Mercurial > hg > nsaunier > traffic-intelligence
comparison python/ml.py @ 680:da1352b89d02 dev
classification is working
| author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
|---|---|
| date | Fri, 05 Jun 2015 02:25:30 +0200 |
| parents | 15e244d2a1b5 |
| children | b02431a8234c |
comparison
equal
deleted
inserted
replaced
| 678:97c305108460 | 680:da1352b89d02 |
|---|---|
| 4 import numpy as np | 4 import numpy as np |
| 5 | 5 |
| 6 | 6 |
| 7 class Model(object): | 7 class Model(object): |
| 8 '''Abstract class for loading/saving model''' | 8 '''Abstract class for loading/saving model''' |
| 9 def load(self, fn): | 9 def load(self, filename): |
| 10 self.model.load(fn) | 10 from os import path |
| 11 if path.exists(filename): | |
| 12 self.model.load(filename) | |
| 13 else: | |
| 14 print('Provided filename {} does not exist: model not loaded!'.format(filename)) | |
| 11 | 15 |
| 12 def save(self, fn): | 16 def save(self, filename): |
| 13 self.model.save(fn) | 17 self.model.save(filename) |
| 14 | 18 |
| 15 class SVM(Model): | 19 class SVM(Model): |
| 16 '''wrapper for OpenCV SimpleVectorMachine algorithm''' | 20 '''wrapper for OpenCV SimpleVectorMachine algorithm''' |
| 17 | 21 |
| 18 def __init__(self, svm_type, kernel_type, degree = 0, gamma = 1, coef0 = 0, Cvalue = 1, nu = 0, p = 0): | 22 def __init__(self): |
| 19 import cv2 | 23 import cv2 |
| 20 self.model = cv2.SVM() | 24 self.model = cv2.SVM() |
| 25 | |
| 26 def train(self, samples, responses, svm_type, kernel_type, degree = 0, gamma = 1, coef0 = 0, Cvalue = 1, nu = 0, p = 0): | |
| 21 self.params = dict(svm_type = svm_type, kernel_type = kernel_type, degree = degree, gamma = gamma, coef0 = coef0, Cvalue = Cvalue, nu = nu, p = p) | 27 self.params = dict(svm_type = svm_type, kernel_type = kernel_type, degree = degree, gamma = gamma, coef0 = coef0, Cvalue = Cvalue, nu = nu, p = p) |
| 22 | |
| 23 def train(self, samples, responses): | |
| 24 self.model.train(samples, responses, params = self.params) | 28 self.model.train(samples, responses, params = self.params) |
| 25 | 29 |
| 26 def predict(self, samples): | 30 def predict(self, hog): |
| 27 return np.float32([self.model.predict(s) for s in samples]) | 31 return self.model.predict(hog) |
| 28 | 32 |
| 29 | 33 |
| 30 class Centroid(object): | 34 class Centroid(object): |
| 31 'Wrapper around instances to add a counter' | 35 'Wrapper around instances to add a counter' |
| 32 | 36 |
