class SVMPredictor(object): def __init__(self, kernel, bias, weights, support_vectors, support_vector_labels): self._kernel = kernel self._bias = bias self._weights = weights self._support_vectors = support_vectors self._support_vector_labels = support_vector_labels def predict(self, x): """ Computes the SVM prediction on the given features x. """ result = self._bias for z_i, x_i, y_i in zip(self._weights, self._support_vectors, self._support_vector_labels): result += z_i * y_i * self._kernel(x_i, x) return np.sign(result).item()