Python 机器学习 - 散点图

散点图(Scatter Plot)

散点图是数据集中的每个值都由点表示的图。

Matplotlib 模块有一种绘制散点图的方法,它需要两个长度相同的数组,一个数组用于 x 轴的值,另一个数组用于 y 轴的值:

  1. x = [5,7,8,7,2,17,2,9,4,11,12,9,6]
  2. y = [99,86,87,88,111,86,103,87,94,78,77,85,86]

x 数组代表每辆汽车的年龄。

y 数组表示每个汽车的速度。

请使用 scatter() 方法绘制散点图:

  1. import sys
  2. import matplotlib
  3. matplotlib.use('Agg')
  4. import matplotlib.pyplot as plt
  5. x = [5,7,8,7,2,17,2,9,4,11,12,9,6]
  6. y = [99,86,87,88,111,86,103,87,94,78,77,85,86]
  7. plt.scatter(x, y)
  8. plt.show()
  9. plt.savefig(sys.stdout.buffer)
  10. sys.stdout.flush()
结果:

散点图解释

x 轴表示车龄,y 轴表示速度。

从图中可以看到,两辆最快的汽车都使用了 2 年,最慢的汽车使用了 12 年。

注释:汽车似乎越新,驾驶速度就越快,但这可能是一个巧合,毕竟我们只注册了 13 辆汽车。


随机数据分布

在机器学习中,数据集可以包含成千上万甚至数百万个值。

测试算法时,您可能没有真实的数据,您可能必须使用随机生成的值。

正如我们在上一章中学到的那样,NumPy 模块可以帮助我们!

让我们创建两个数组,它们都填充有来自正态数据分布的 1000 个随机数。

第一个数组的平均值设置为 5.0,标准差为 1.0。

第二个数组的平均值设置为 10.0,标准差为 2.0:

有 1000 个点的散点图:

  1. import sys
  2. import matplotlib
  3. matplotlib.use('Agg')
  4. import numpy
  5. import matplotlib.pyplot as plt
  6. x = numpy.random.normal(5.0, 1.0, 1000)
  7. y = numpy.random.normal(10.0, 2.0, 1000)
  8. plt.scatter(x, y)
  9. plt.show()
  10. plt.savefig(sys.stdout.buffer)
  11. sys.stdout.flush()
结果:

散点图解释

我们可以看到,点集中在 x 轴上的值 5 和 y 轴上的 10 周围。

我们还可以看到,在 y 轴上扩散得比在 x 轴上更大。

分类导航