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'