支持向量机(SVM),是机器学习中最重要的算法之一,也是除集成算法外,最强的学习器。它能解决有监督、无监督、半监督,分类和回归几乎所有场景。支持向量机,就是通过找出边际最大的决策边界,来对数据进行分类的分类器。
1、生成测试数据
from sklearn.datasets import make_blobs import matplotlib.pyplot as plt x, y = make_blobs(200, 2, centers=2, random_state=7) plt.scatter(x[:, 0], x[:, 1], c=y) # plt.show()
2、画超平面
训练时返回的权重矩阵和截距,对应方程w0·x0+w1·x1+b=0,化简得x1=-w0/w1·x0-b/w1
from sklearn.svm import SVC import numpy as np clf = SVC(kernel='linear').fit(x, y) # 权重矩阵和截距 weight = clf.coef_[0] bias = clf.intercept_[0] k = -weight[0] / weight[1] b = -bias / weight[1] # 取图像范围 xlim = plt.xlim() x_ = np.linspace(xlim[0], xlim[1], x.shape[0]) plt.plot(x_, k * x_ + b) plt.ylim(0, 10) # plt.show()
3、标注支持向量
for vec in clf.support_vectors_: plt.scatter(vec[0], vec[1], c='red', marker='x') plt.show()
本文为 陈华 原创,欢迎转载,但请注明出处:http://ichenhua.cn/read/284
- 上一篇:
- 数据结构之单链表的插入和删除节点
- 下一篇:
- 数据结构之双链表和对比总结