编程:创建线性不可分的圆形数据集,用支持向量机训练模型,绘制决策边界示意图。 (1)创建圆形数据集,设置样本数为1000,因子为0.1,噪声为0.1, (2)使用径向基核函数初始化一个支持向量机模型,拟合数据; (3)使用散点图绘制样本的分布,打印训练精度; (4)定义绘制决策边界函数; (5) 绘制支持向量机示意图。
时间: 2024-02-27 17:57:34 浏览: 87
好的,以下是Python代码实现:
```python
from sklearn.datasets import make_circles
from sklearn.svm import SVC
import matplotlib.pyplot as plt
import numpy as np
# 生成圆形数据集
X, y = make_circles(n_samples=1000, noise=0.1, factor=0.1)
# 初始化支持向量机模型
model = SVC(kernel='rbf', C=1E6)
# 拟合数据
model.fit(X, y)
# 绘制样本分布散点图
plt.scatter(X[:, 0], X[:, 1], c=y)
plt.title('Scatter plot of circular dataset')
plt.show()
# 打印训练精度
train_score = model.score(X, y)
print("Training accuracy: {:.2f}%".format(train_score * 100))
# 定义绘制决策边界函数
def plot_decision_boundary(model, X, y):
xx, yy = np.meshgrid(np.linspace(-1.5, 1.5, 100),
np.linspace(-1.5, 1.5, 100))
Z = model.predict(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)
plt.contourf(xx, yy, Z, cmap=plt.cm.Paired)
plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Paired)
# 绘制支持向量机示意图
plot_decision_boundary(model, X, y)
plt.title('Support Vector Machine')
plt.show()
```
运行以上代码,将生成圆形数据集的散点图以及支持向量机的决策边界示意图。同时,还会打印出训练精度。
阅读全文