python svm 二分类
时间: 2023-10-10 17:13:58 浏览: 145
svm 用于分类
3星 · 编辑精心推荐
SVM(支持向量机)是一种二分类模型,它将实例的特征向量映射为空间中的一些点。SVM的目标是通过划定一条线来最好地区分这两类点,从而实现对新的点进行分类。在Python中,可以使用sklearn包来实现SVM的二分类功能。
下面是一个基于sklearn包的示例代码,演示了如何使用SVM算法进行二分类并绘制分类结果的图形:
```python
from sklearn import svm
import numpy as np
import matplotlib.pyplot as plt
# 准备训练样本
x = [[1, 8], [3, 20], [1, 15], [3, 35], [5, 35], [4, 40], [7, 80], [6, 49]]
y = [1, 1, -1, -1, 1, -1, -1, 1]
# 开始训练
clf = svm.SVC() # 默认参数:kernel='rbf'
clf.fit(x, y)
# 根据训练出的模型绘制样本点
for i in x:
res = clf.predict(np.array(i).reshape(1, -1))
if res > 0:
plt.scatter(i[0], i[1], c='r', marker='*')
else:
plt.scatter(i[0], i[1], c='g', marker='*')
# 生成随机实验数据
rdm_arr = np.random.randint(1, 15, size=(15, 2))
# 绘制实验数据点
for i in rdm_arr:
res = clf.predict(np.array(i).reshape(1, -1))
if res > 0:
plt.scatter(i[0], i[1], c='r', marker='.')
else:
plt.scatter(i[0], i[1], c='g', marker='.')
# 显示绘图结果
plt.show()
```
以上代码中,我们使用了SVM的默认参数(核函数为径向基函数rbf),根据训练出的模型绘制了样本点和随机实验数据点的分类结果图形。
阅读全文