Mercurial Hosting > traffic-intelligence
changeset 380:adfd4f70ee1d
added SVM
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Fri, 19 Jul 2013 09:11:57 -0400 |
parents | f1a1923ddff9 |
children | 387cc0142211 |
files | python/ml.py |
diffstat | 1 files changed, 23 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/python/ml.py Fri Jul 19 00:37:02 2013 -0400 +++ b/python/ml.py Fri Jul 19 09:11:57 2013 -0400 @@ -5,6 +5,29 @@ __metaclass__ = type +class Model(object): + '''Abstract class for loading/saving model''' + def load(self, fn): + self.model.load(fn) + + def save(self, fn): + self.model.save(fn) + +class SVM(Model): + '''wrapper for OpenCV SimpleVectorMachine algorithm''' + + def __init__(self, svm_type, kernel_type, degree = 0, gamma = 1, coef0 = 0, Cvalue = 1, nu = 0, p = 0): + import cv2 + self.model = cv2.SVM() + self.params = dict(svm_type = svm_type, kernel_type = kernel_type, degree = degree, gamma = gamma, coef0 = coef0, Cvalue = Cvalue, nu = nu, p = p) + + def train(self, samples, responses): + self.model.train(samples, responses, params = self.params) + + def predict(self, sample): + return np.float32(self.model.predict(s)) + + class Centroid: 'Wrapper around instances to add a counter'