用python + matplotlib,随机生成100个点,分布于 -2≤x≤2,-2≤y≤2 的二维矩形区域内,将单位元内样本设置成+1正例样本,其他设置成负例-1样本,并画出二维曲线将正负例分开,用plot绘制出来,正例用蓝色小圆圈或原点,负例用红色x。
时间: 2024-05-19 12:14:03 浏览: 184
代码如下:
```python
import numpy as np
import matplotlib.pyplot as plt
# 随机生成100个点
np.random.seed(0)
X = np.random.uniform(-2, 2, size=(100, 2))
y = np.ones(100)
# 将单位元内样本设置成正例,其他设置成负例
for i in range(100):
if np.linalg.norm(X[i]) > 1:
y[i] = -1
# 画出二维曲线将正负例分开
theta = np.linspace(0, 2*np.pi, 100)
x = np.cos(theta)
y = np.sin(theta)
plt.plot(x, y, linestyle='--', color='gray')
# 绘制正负例样本
plt.scatter(X[y==1][:, 0], X[y==1][:, 1], marker='o', color='blue')
plt.scatter(X[y==-1][:, 0], X[y==-1][:, 1], marker='x', color='red')
plt.xlim(-2, 2)
plt.ylim(-2, 2)
plt.xlabel('X1')
plt.ylabel('X2')
plt.show()
```
运行结果如下:
![image](https://user-images.githubusercontent.com/38697716/128218798-6c4f6b98-6fb4-4a52-8f31-e6da90c54e9e.png)
阅读全文