機器學習 - 散點圖

散點圖(Scatter Plot)

散點圖是數據集中的每個值都由點表示的圖。


Matplotlib 模塊有一種繪制散點圖的方法,它需要兩個長度相同的數組,一個數組用于 x 軸的值,另一個數組用于 y 軸的值:

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

x 數組代表每輛汽車的年齡。

y 數組表示每個汽車的速度。

實例

請使用 scatter() 方法繪制散點圖:

import matplotlib.pyplot as plt
x = [5,7,8,7,2,17,2,9,4,11,12,9,6]
y = [99,86,87,88,111,86,103,87,94,78,77,85,86]
plt.scatter(x, y)
plt.show()

結果:


運行實例

散點圖解釋

x 軸表示車齡,y 軸表示速度。

從圖中可以看到,兩輛最快的汽車都使用了 2 年,最慢的汽車使用了 12 年。

注釋:汽車似乎越新,駕駛速度就越快,但這可能是一個巧合,畢竟我們只注冊了 13 輛汽車。

隨機數據分布

在機器學習中,數據集可以包含成千上萬甚至數百萬個值。

測試算法時,您可能沒有真實的數據,您可能必須使用隨機生成的值。

正如我們在上一章中學到的那樣,NumPy 模塊可以幫助我們!

讓我們創建兩個數組,它們都填充有來自正態數據分布的 1000 個隨機數。

第一個數組的平均值設置為 5.0,標準差為 1.0。

第二個數組的平均值設置為 10.0,標準差為 2.0:

實例

有 1000 個點的散點圖:

import numpy
import matplotlib.pyplot as plt
x = numpy.random.normal(5.0, 1.0, 1000)
y = numpy.random.normal(10.0, 2.0, 1000)
plt.scatter(x, y)
plt.show()

結果:


運行實例

散點圖解釋

我們可以看到,點集中在 x 軸上的值 5 和 y 軸上的 10 周圍。

我們還可以看到,在 y 軸上擴散得比在 x 軸上更大。