概述
引子: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-决策界面可视化所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复