机器学习 - 散点图

กราฟจุด (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()

ผลลัพธ์:


ทดลองตัวอย่าง

การอธิบายกราฟจุด

เราสามารถเห็นได้ว่าจุดมีการมีชัดเจนในตัวเลข 5 บน x-axes และ 10 บน y-axes

เรายังสามารถเห็นได้ว่าการแพร่กระจายบน y-axes มีขนาดใหญ่กว่าบน x-axes