Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2014
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.64 KB | None | 0 0
  1. import numpy as np
  2. rng = np.random.RandomState(42)
  3.  
  4. n_samples = 100
  5. neg_samples = rng.rand(n_samples // 2, 2)
  6. pos_samples = rng.rand(n_samples // 2, 2) + np.array([3, 3])
  7.  
  8. X = np.vstack([neg_samples, pos_samples])
  9. y = np.concatenate([-np.ones(n_samples // 2), np.ones(n_samples // 2)])
  10.  
  11. from sklearn.svm import SVC
  12. svc = SVC(kernel="linear")
  13.  
  14. svc.fit(X, y)
  15.  
  16. svc.dual_coef_ == np.array([0.1999464, -0.1999464])
  17.  
  18. w = svc.dual_coef_.dot(svc.support_vectors_)
  19. margin = 2 / np.sqrt((w ** 2).sum())
  20.  
  21. from sklearn.metrics import euclidean_distances
  22. distances = euclidean_distances(neg_samples, pos_samples)
  23.  
  24. assert np.abs(margin - distances.min()) < 1e-6
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement