การเรียนรู้ของเครื่อง - พล็อตกระจาย
พล็อตกระจาย
พล็อตกระจายเป็นไดอะแกรมที่แต่ละค่าในชุดข้อมูลแสดงด้วยจุด
โมดูล 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 สามารถช่วยเราได้!
ให้เราสร้างอาร์เรย์สองชุดที่เต็มไปด้วยตัวเลขสุ่ม 1,000 ตัวจากการแจกแจงข้อมูลปกติ
อาร์เรย์แรกจะมีค่ากลางอยู่ที่ 5.0 โดยมีค่าเบี่ยงเบนมาตรฐานที่ 1.0
อาร์เรย์ที่สองจะมีค่ากลางอยู่ที่ 10.0 โดยมีค่าเบี่ยงเบนมาตรฐานเท่ากับ 2.0:
ตัวอย่าง
พล็อตกระจายที่มี 1,000 จุด:
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 และ 10 บนแกน y
เรายังเห็นว่าการแพร่กระจายบนแกน y กว้างกว่าบนแกน x