以二维平面上的分类问题为例:
真实的决策边界为背景颜色,圆点的颜色表示了一个随机模型赋予的标签。

下面展示如何绘制上图:
首先需要两个函数给样本打标签:
def f_true(x):
return (np.sum(x*x,axis=1)<0.25).astype(np.int)
def f_random(x):
return np.random.randint(0,2,[len(x),1])
import matplotlib as mpl
cm_light = mpl.colors.ListedColormap(['y', 'r'])
x = np.random.uniform(-1,1,[100,2])
# 在样本的上下界基础上扩张一点点
def region(a, b):
return 1.05*a-0.05*b, 1.05*b-0.05*a
x1_min, x1_max = region(x[:, 0].min(), x[:, 0].max()) # x1的范围
x2_min, x2_max = region(x[:, 1].min(), x[:, 1].max()) # x2的范围
# 在限定的范围内 colormesh 方法绘制背景颜色
N=500
M=500
t1 = np.linspace(x1_min, x1_max,N)
t2 = np.linspace(x2_min, x2_max,M)
x1, x2 = np.meshgrid(t1, t2)
x_show = np.stack((x1.flat, x2.flat), axis=1)
y_hat = f_true(x_show) # 预测
y_hat = y_hat.reshape(x1.shape) # 使之与输入的形状相同
plt.figure(facecolor='w')
plt.pcolormesh(x1, x2, y_hat, cmap=cm_light) # 预测值的显示
# scatter 绘制样本
y = f_random(x)
y = np.squeeze(y)
plt.scatter(x[:, 0], x[:, 1], s=30, c=y, edgecolors='k', cmap=cm_light)

本文通过一个二维平面分类问题的实例,展示了如何使用Python和Matplotlib库来绘制决策边界和随机模型的分类结果。首先定义了两个函数用于给样本点打标签,然后通过colormesh方法在限定范围内绘制背景颜色表示真实决策边界,最后用scatter方法绘制带有随机标签的样本点。
1514

被折叠的 条评论
为什么被折叠?



