我是靠谱客的博主 慈祥煎蛋,最近开发中收集的这篇文章主要介绍matplotlib-决策界面可视化,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

引子: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-决策界面可视化所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部