先讲解plt.contourf函数,然后用plt.contourf绘制决策边界

contourf

contourf(*args, data=None, **kwargs)
Plot contours.

Call signature::contour([X, Y,] Z, [levels], **kwargs)`.contour` and `.contourf` draw contour lines and filled contours,
respectively.  Except as noted, function signatures and return values
are the same for both versions.Parameters
----------
X, Y : array-like, optionalThe coordinates of the values in Z .X and Y must both be 2-D with the same shape as Z (e.g.created via `numpy.meshgrid`), or they must both be 1-D suchthat ``len(X) == M`` is the number of columns in Z and``len(Y) == N`` is the number of rows in Z.If not given, they are assumed to be integer indices, i.e.``X = range(M)``, ``Y = range(N)``.Z : array-like(N, M)The height values over which the contour is drawn.levels : int or array-like, optionalDetermines the number and positions of the contour lines / regions.If an int n, use n data intervals; i.e. draw n+1 contourlines. The level heights are automatically chosen.If array-like, draw contour lines at the specified levels.The values must be in increasing order.

这个是官方文档中,关于contour的说明,在这我就不全部翻译,我把我们常用的东西翻译出来。

参数X,Y
文档中说
array-like, optional
The coordinates of the values in Z .
第一句的意思是,这2个数组的维度应该是一样的,并且这个参数是可选的,你可以不输入这个东西
第二句的意思是,X,Y是Z的坐标值
测试一下contour:

import matplotlib.pyplot as plt
import numpy as np
x=np.array([[1,2],[1,2]])
y=np.array([[1,2],[2,3]])
z=np.array([[1,2],[3,4]])
#plt.cm.Spectral,在这的意思就是颜色会随Z的值变化
plt.contourf(x, y, z, cmap=plt.cm.Spectral)

Z在百度翻译中翻译为:绘制轮廓的高度值。
这个翻译有点问题,Z一个是等高线的高度值,但是我不是学地理的。。。。所以我也不太懂这个等高线有个什么意义。我只能说明一下Z的坐标问题。
x和y是z的坐标
x=np.array([[1,2],[1,2]])
y=np.array([[1,2],[2,3]])
z=np.array([[1,2],[3,4]])
我们把这些排列好,方便观察
第1个坐标(1,1)
第2个坐标(2,2)
第3个坐标(1,2)
第4个坐标(2,3)
Z在图中对应这4个点。
如果你知道这个颜色怎么来的可以留言告诉我。
下面进行决策边界的绘画,其实当X,Y的数量较多的时候,Z的分布显得比较有规律。

绘制决策边界

我们先看看当X,Y密集点时候的效果

import matplotlib.pyplot as plt
import numpy as np
X,Y=np.meshgrid(np.linspace(1,5,200),np.linspace(1,5,200))
Z=np.zeros(shape=(X.shape))
Z=Z.ravel()
Z[:10000]=1
Z[10000:20000]=2
Z[20000:30000]=3
Z=Z.reshape(X.shape)
plt.contourf(X,Y,Z,cmp=plt.cm.Spectral)

显然,X,Y密集时,Z的分布的规律更好看到

决策边界代码:

import numpy as np
from sklearn.linear_model import LogisticRegressionCV
from sklearn.datasets import make_moonsdef plot_decision_boundary(X,y):clf=LogisticRegressionCV()clf.fit(X,y)x_min, x_max = X[:, 0].min() - .5, X[:, 0].max() + .5y_min, y_max = X[:, 1].min() - .5, X[:, 1].max() + .5h=0.01xx,yy=np.meshgrid(np.arange(x_min,x_max,h),np.arange(y_min,y_max,h))z=clf.predict(np.c_[xx.ravel(),yy.ravel()])z=z.reshape(xx.shape)plt.contourf(xx, yy, z, cmap=plt.cm.Spectral)plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Spectral)
X,y=make_moons(n_samples=200,noise=0.3)
plot_decision_boundary(X,y)

决策边界绘制和plt.contourf函数讲解相关推荐

  1. 决策边界绘制函数plot_decision_boundary()和plt.contourf函数详解

    在做吴恩达老师的深度学习课程作业时,发现决策边界函数不好理解plot_decision_boundary(model , X , y).将此函数理解记录下: 作业地址:https://blog.csd ...

  2. 【机器学习】逻辑回归案例二:鸢尾花数据分类,决策边界绘制逐步代码讲解

    逻辑回归案例二:鸢尾花数据分类,决策边界绘制逐步代码讲解 1 数据加载 2 数据EDA 3 模型创建及应用 3.1 数据切分 3.2 创建模型与分类 3.3 决策边界绘制 3.3.1 二分类决策边界绘 ...

  3. np.meshgrid, ravel(), np.c_, plt.contourf()函数的用法,以及决策边界的画法。

    前言: 楼主最近在学机器学习时碰到的一些函数,用来画决策边界.记录现在的想法. 1: np.meshgrid的用法: X,Y = np.meshgrid(x,y)是将x中的每个点与y中的每个点连起来成 ...

  4. plt.grid()、plt.scatter()、plt.plot()、plt.arrow()、plt.text()函数讲解

    一.plt.grid() plt.grid(True),用于显示点状网格线,它有助于辅助构图,尤其是需要放置文本信息时.如果不包含这个命令,网格线就不会显示.想要关闭网格线的话,把True改为Fals ...

  5. 机器学习 绘制决策边界

    两个特征的决策边界绘制. 绘制决策边界 1.数据处理 1.1 数据准备 1.2 数据集切分 1.3 数据标准化 2.绘制决策边界 2.1 可视化函数(两个特征) 2.2 决策树模型 2.3 KNN模型 ...

  6. KMeans聚类并绘制聚类后的决策边界

    KMeans聚类并绘制聚类后的决策边界 # 导数基础包和函数 from sklearn import datasets import matplotlib.pyplot as plt # 使用skel ...

  7. Lesson 5.分类模型决策边界与模型评估指标

    Lesson 5.分类模型决策边界与模型评估指标(上) 在逻辑回归的算法基础内容结束之后,我们还需要补充一些关于分类模型的基础知识,包括观察分类模型判别性能的决策边界基本的概念与实现方法,同时也包括对 ...

  8. Python机器学习:逻辑回归005决策边界

    #实现逻辑回归 import numpy as np import matplotlib.pyplot as plt from sklearn import datasets iris = datas ...

  9. matplotlib.pyplot contourf()函数的使用

    matplotlib.pyplot contourf  coutour([X, Y,] Z,[levels], **kwargs) 是来绘制等高线的,contour和contourf都是画三维等高线图 ...

最新文章

  1. 做好职业规划:做自己的船长
  2. 深度学习将眼睛变成健康“指示器”
  3. 公司内部流量控制案例
  4. idea验证失败_SVN提示https证书验证失败解决办法
  5. 爬取LeetCode题目——如何发送GraphQL Query获取数据
  6. 【转】Path.Combine (合并两个路径字符串)方法的一些使用细节
  7. 处理Redis里的数据
  8. 1个模型横扫40+个SOTA!22位华人共同打造佛罗伦萨模型,一统图像视频文本,含9亿图像-文本对...
  9. python一直循环怎么写_自学Python,写一个挨打的游戏代码来初识While循环
  10. Qt Creator 预览QtCreator中的界面
  11. SpringBoot之idea调出Maven Project
  12. 关于MAC的pkg和mpkg的分别
  13. 羽枭android,满技能呆枭从变异到成品只需要7本书?这个羽袭自带固神的吗?!...
  14. 回顾过去。。展望未来
  15. grep 命令使用(2)
  16. 天下武功无坚不破,唯快不破!
  17. 新浪微博 ios/android 你所访问的站点在新浪微博的认证失败 解决方法
  18. android 避免cpu降频,[RK3288][Android6.0] 调试笔记 --- CPU温度降频控制
  19. 世界上还是好人多啊!
  20. 大数据专业毕业后职业前景如何?

热门文章

  1. Matched leaf route at location “/“ does not have an element.This means it will render an<Outle
  2. mysql 中文全文搜索总结
  3. SOA和微服务 区别
  4. JavaWeb登录注册系统/界面(邮箱验证码,数据库连接,详细注释,可作结课作业,可用于学习,可接入其他主系统)
  5. css画三角形和箭头
  6. 数值计算之 拉格朗日乘子法初探
  7. 几种不同的推荐引擎比较
  8. C语言strcmp 设置登录密码,有且只有三次机会
  9. 研究生的英文分类和说法
  10. 学习Qss--字体、文本属性