วิธีดำเนินการกำลังสองน้อยที่สุดใน numpy (พร้อมตัวอย่าง)
วิธีกำลังสองน้อยที่สุด คือวิธีที่เราสามารถใช้เพื่อค้นหาเส้นถดถอยที่เหมาะกับชุดข้อมูลที่กำหนดมากที่สุด
เราสามารถใช้ฟังก์ชัน linalg.lstsq( ) ใน NumPy เพื่อทำการปรับค่ากำลังสองน้อยที่สุด
ตัวอย่างทีละขั้นตอนต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้ในทางปฏิบัติ
ขั้นตอนที่ 1: ป้อนค่าสำหรับ X และ Y
เริ่มต้นด้วยการสร้างอาร์เรย์ NumPy ต่อไปนี้:
import numpy as np #define x and y arrays x = np. array ([6, 7, 7, 8, 12, 14, 15, 16, 16, 19]) y = np. array ([14, 15, 15, 17, 18, 18, 19, 24, 25, 29])
ขั้นตอนที่ 2: ทำการปรับกำลังสองน้อยที่สุด
เราสามารถใช้โค้ดต่อไปนี้เพื่อให้พอดีกับกำลังสองน้อยที่สุดและค้นหาแถวที่ “พอดี” กับข้อมูลมากที่สุด:
#perform least squares fitting n.p. linalg . lstsq (np. vstack ([x, np. ones ( len (x))]). T , y, rcond= None )[ 0 ] array([0.96938776, 7.76734694])
ผลลัพธ์ที่ได้คือตารางที่มี ความชัน และค่า ตัดแกน ของเส้นที่เหมาะสมที่สุด
จากผลลัพธ์เราจะเห็นได้ว่า:
- ความชัน: 0.969
- ขโมย: 7,767
เมื่อใช้ค่าทั้งสองนี้ เราสามารถเขียนสมการของเส้นที่เหมาะสมที่สุดได้:
ŷ = 7.767 + 0.969x
ขั้นตอนที่ 3: ตีความผลลัพธ์
ต่อไปนี้คือวิธีตีความบรรทัดที่เหมาะสมที่สุด:
- เมื่อ x เป็น 0 ค่าเฉลี่ยของ y คือ 7.767
- สำหรับการเพิ่ม x ทุกหน่วย y จะเพิ่มขึ้นโดยเฉลี่ย 0.969
นอกจากนี้เรายังสามารถใช้เส้นตรงที่เหมาะสมที่สุดเพื่อทำนายค่า y โดยอิงจากค่า x
ตัวอย่างเช่น หาก xa มีค่า 10 เราจะคาดการณ์ว่าค่า y จะเป็น 17.457 :
- ŷ = 7.767 + 0.969x
- ŷ = 7.767 + 0.969(10)
- ŷ = 17.457
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีทำงานทั่วไปอื่น ๆ ใน NumPy:
วิธีลบองค์ประกอบเฉพาะออกจากอาร์เรย์ NumPy
วิธีรับดัชนีค่าสูงสุดในอาร์เรย์ NumPy
วิธีเติมอาร์เรย์ NumPy ด้วยค่า