# ML之SVM：随机产生100个点，建立SVM模型，找出超平面方程

+关注继续查看

## 代码实例

import numpy as np

import pylab as pl

from sklearn import svm

X = np.r_[np.random.randn(100, 2) - [2, 2], np.random.randn(100, 2) + [2, 2]]

Y = [0]*100 +[1]*100

clf = svm.SVC(kernel='linear')

clf.fit(X, Y)

w = clf.coef_[0]

a = -w[0]/w[1]

xx = np.linspace(-5, 5)

yy = a*xx - (clf.intercept_[0])/w[1]

b = clf.support_vectors_[0]

yy_down = a*xx + (b[1] - a*b[0])

b = clf.support_vectors_[-1]

yy_up = a*xx + (b[1] - a*b[0])

print ("w: ", w)

print ("a: ", a)

# print "xx: ", xx

# print "yy: ", yy

print ("support_vectors_: ", clf.support_vectors_)

print ("clf.coef_: ", clf.coef_)

# plot the line, the points, and the nearest vectors to the plane

pl.plot(xx, yy, 'k-')

pl.plot(xx, yy_down, 'k--')

pl.plot(xx, yy_up, 'k--')

pl.scatter(clf.support_vectors_[:, 0], clf.support_vectors_[:, 1],

s=80, facecolors='none')

pl.scatter(X[:, 0], X[:, 1], c=Y, cmap=pl.cm.Paired)

pl.axis('tight')

pl.show()

6325 0

3950 0

7576 0

10711 0

1997 0

707 0
+关注

1701

0

《SaaS模式云原生数据仓库应用场景实践》

《看见新力量：二》电子书