'''
人工分类:人为的按照自定的规则对事物进行分类
特征1 特征2 输出
3 1 0
2 5 1
1 8 1
6 4 0
5 2 0
3 5 1
4 7 1
4 -1 0
... ... ...
6 8 1
5 1 0
分类边界线的绘制
'''
import numpy as np
import matplotlib.pyplot as mp
x = np.array([[3, 1
],
[2, 5
],
[1, 8
],
[6, 4
],
[5, 2
],
[3, 5
],
[4, 7
],
[4, -1
]])
y = np.array([0, 1, 1, 0, 0, 1, 1
, 0])
# 根据找到的某些规律,绘制分类边界线
l, r = x[:, 0].min() - 1, x[:, 0].max() + 1
b, t = x[:, 1].min() - 1, x[:, 1].max() + 1
n = 500
grid_x, grid_y =
np.meshgrid(np.linspace(l, r, n), np.linspace(b, t, n))
# print(grid_x)
# 当x>y时,样本属于0类别,反之则为1类别,grid_z保存的时每个点的类别
grid_z = np.piecewise(grid_x, [grid_x > grid_y, grid_x < grid_y], [0, 1
])
# 绘制样本数据
mp.figure(
'Simple Classification', facecolor=
'lightgray')
mp.title('Simple Classification')
mp.xlabel('X')
mp.ylabel('Y')
# 绘制分类边界线(填充网格化矩阵)
mp.pcolormesh(grid_x, grid_y, grid_z, cmap=
'gray')
mp.scatter(x[:, 0], x[:, 1], s=80, c=y, cmap=
'jet', label=
'Samples')
mp.legend()
mp.show()
转载于:https://www.cnblogs.com/yuxiangyang/p/11185158.html