引子:tensorflow游乐场
图
决策界面图直观的展示了模型分类效果,如下
1,原始样本分布图

2,模型决策界面可视化结果
a-线性模型

b-3层神经网络

可见模型效果非常直观
实现流程
1,首先应该得到图中每个点(夸张的说法,但必须覆盖样本点,且点数 >> 样本点数)
2,根据所得模型,计算所有点的分类情况
思路很简单,主要是matplotlib,numpy相应函数的组合使用,以及样本维度的注意
代码
上图中都是以二维数据为例,也相对比较好作图
# 说明x:样本点(N,2),y :标签【三个种类】 (N,3)
模型输出的是三个种类相应的概率,概率最大的为最终类型
h = 0.005
# 求得样本每个维度【属性】的极值来定制图轴的取值范围
x1_min,x1_max = X[:,0].min()-1,X[:,0].max()+1
x2_min,x2_max = X[:,1].min()-1,X[:,1].max()+1
# np.meshgrid() 获得所有点[return值请自行体会]
x1,x2 = np.meshgrid(np.arange(x1_min,x1_max,h),
np.arange(x2_min,x2_max,h))
# 将x1,x2展开形成铺满整张图的点
X_toy = np.c_[x1.ravel(),x2.ravel()] #[n,1]
# 将所有点喂进模型中
scores_toy = np.dot(X_toy,W)+b #[n,3]
# 抽取概率最大的索引
y_ = np.argmax(scores_toy, axis=1) #[n,1]
# 在接下来的plt.contour中 y_与x1,x2的形状需保持相同(一一对应的关系)
y_ = y_.reshape(x1.shape)
# 等高线api
plt.contourf(x1,x2,y_,cmap=plt.cm.Spectral)
# 绘制原始样本点
plt.scatter(X[:,0],X[:,1],c=y, s=20, alpha = 0.6,cmap=plt.cm.Spectral)
plt.show()
最后
以上就是慈祥煎蛋最近收集整理的关于matplotlib-决策界面可视化的全部内容,更多相关matplotlib-决策界面可视化内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复