MCPcopy Create free account
hub / github.com/lazyprogrammer/machine_learning_examples / fit

Method fit

svm_class/svm_smo.py:198–246  ·  view source on GitHub ↗
(self, X, Y, tol=0.00001, eps=0.01)

Source from the content-addressed store, hash-verified

196 return 0
197
198 def fit(self, X, Y, tol=0.00001, eps=0.01):
199 # we need these to make future predictions
200 self.tol = tol
201 self.eps = eps
202 self.Xtrain = X
203 self.Ytrain = Y
204 self.N = X.shape[0]
205 self.alphas = np.zeros(self.N)
206 self.b = 0.
207 self.errors = self._decision_function(self.Xtrain) - self.Ytrain
208
209 # kernel matrix
210 self.K = self.kernel(X, X)
211 self.YY = np.outer(Y, Y)
212 self.YYK = self.K * self.YY
213
214 iter_ = 0
215 numChanged = 0
216 examineAll = 1
217 losses = []
218
219 while numChanged > 0 or examineAll:
220 print("iter:", iter_)
221 iter_ += 1
222 numChanged = 0
223 if examineAll:
224 # loop over all training examples
225 for i in range(self.alphas.shape[0]):
226 examine_result = self._examine_example(i)
227 numChanged += examine_result
228 if examine_result:
229 loss = self._loss(self.Xtrain, self.Ytrain)
230 losses.append(loss)
231 else:
232 # loop over examples where alphas are not already at their limits
233 for i in np.where((self.alphas != 0) & (self.alphas != self.C))[0]:
234 examine_result = self._examine_example(i)
235 numChanged += examine_result
236 if examine_result:
237 loss = self._loss(self.Xtrain, self.Ytrain)
238 losses.append(loss)
239 if examineAll == 1:
240 examineAll = 0
241 elif numChanged == 0:
242 examineAll = 1
243
244 plt.plot(losses)
245 plt.title("loss per iteration")
246 plt.show()
247
248 def _decision_function(self, X):
249 return (self.alphas * self.Ytrain).dot(self.kernel(self.Xtrain, X)) - self.b

Callers 7

real_neural_net.pyFile · 0.45
svm_mnist.pyFile · 0.45
svm_medical.pyFile · 0.45
svm_smo.pyFile · 0.45
rbfnetwork.pyFile · 0.45
svm_spam.pyFile · 0.45
regression.pyFile · 0.45

Calls 3

_decision_functionMethod · 0.95
_examine_exampleMethod · 0.95
_lossMethod · 0.95

Tested by

no test coverage detected