NumPy สี่เหลี่ยมน้อยที่สุด

Numpy Siheliym Nxy Thisud



วันนี้ เราจะมาเรียนรู้เกี่ยวกับกำลังสองน้อยที่สุดในสมการเชิงเส้น และวิธีการนำวิธีกำลังสองน้อยที่สุดมาใช้เพื่อให้เหมาะสมที่สุดสำหรับเส้นการถดถอยในชุดข้อมูลที่ให้มา แต่ก่อนหน้านั้น เรามาทำความรู้จักกับ NumPy เบื้องต้นกันก่อน NumPy เป็นหนึ่งในแพ็คเกจทางคณิตศาสตร์ที่ดีที่สุดของ Python ที่ให้บริการสำหรับอาร์เรย์และเมทริกซ์หลายมิติ พร้อมด้วยการดำเนินการเชิงตัวเลขที่ซับซ้อนมากมายที่อาจดำเนินการกับเมทริกซ์/อาร์เรย์เหล่านี้

หนึ่งในวิธีการของ Python lstsq() ถูกใช้เพื่อค้นหาเส้นถดถอยของสมการเชิงเส้นที่รู้จัก ax=b ซึ่งเหมาะที่สุดกับสมการนี้ ซึ่งหมายความว่าคุณต้องกำหนดเส้นที่แสดงความสัมพันธ์ระหว่างจุด x และ y อย่างเหมาะสม หากข้อมูลของคุณระบุว่ามีอยู่ เส้นตรงระหว่างจุดทั้งสองเรียกว่าเส้นถดถอยเมื่อใช้เพื่อหากำลังสองน้อยที่สุดในสมการนี้ ax=b

ไวยากรณ์:

มาเริ่มเรียนรู้รูปแบบการใช้งานของฟังก์ชัน linalg.lstsq() กัน ขั้นแรก เราเขียนชื่อไลบรารีที่เราใช้ใน Python ซึ่งก็คือ 'numpy' จากนั้น เราเชื่อมฟังก์ชัน linalg() และเชื่อมฟังก์ชัน lstsq() ฟังก์ชัน linalg() หมายถึงพีชคณิตเชิงเส้น จะใช้กับฟังก์ชัน lstsq() เสมอ เนื่องจากเป็นนิพจน์พีชคณิตเชิงเส้น หลังจากนี้ เราส่งผ่านอาร์กิวเมนต์ในวงเล็บของฟังก์ชัน









พารามิเตอร์:

มาทำความเข้าใจพารามิเตอร์ของฟังก์ชัน linalg.lstsq() กัน:



จุดที่ 1: มันคือเมทริกซ์สัมประสิทธิ์





จุดที่ 2: เมทริกซ์หรืออาร์เรย์นี้มีตัวแปรตาม

rcond: ชนิดข้อมูลของมันคือลอย อัตราส่วน rcond ทำหน้าที่เป็นตัวตัดค่าเอกพจน์ที่เล็กกว่าของ point_1 หากค่าเอกพจน์น้อยกว่า rcond คูณองค์ประกอบเอกพจน์ที่ใหญ่ที่สุดของ point_1 จะถือเป็นศูนย์เมื่อกำหนดอันดับ



คืนมูลค่า:

ในทางกลับกัน เราได้ค่ากำลังสองน้อยที่สุดของตัวแปรที่รู้จัก x ในสมการ ax=b

ตัวอย่างที่ 1:

มาเริ่มใช้ตัวอย่างแรกของเราเกี่ยวกับวิธีกำลังสองน้อยที่สุดของไลบรารี Python นั่นคือ NumPy อันดับแรก เราต้องการคอมไพเลอร์ Python เพื่อที่เราจะสามารถเขียนโค้ดได้ เปิดคอมไพเลอร์ คุณต้องติดตั้งไลบรารี NumPy ด้วยเพราะเรากำลังใช้ฟังก์ชันหนึ่งของ NumPy ซึ่งเป็นฟังก์ชัน lstsq() จากนั้น คุณต้องนำเข้าแพ็คเกจ NumPy ในนั้น ขั้นแรก ให้เขียนคีย์เวิร์ด “import” ซึ่งบอกคอมไพเลอร์ว่าเรากำลังจะนำเข้าแพ็คเกจ จากนั้นเราต้องเขียนชื่อ package ที่เราใช้ใน function ซึ่งก็คือ “numpy” จากนั้น เรายังเขียนชื่ออื่นของ NumPy “np” เนื่องจากโปรแกรมเมอร์จำนวนมากใช้วิธีนี้ นี่เป็นแนวทางการเขียนโปรแกรมที่ดีและช่วยประหยัดเวลา

หลังจากนำเข้าแพ็คเกจแล้ว เราก็เริ่มเขียนบรรทัดของรหัสจริงที่เราต้องการจะทำ เราพิมพ์ข้อความก่อนเพื่อให้ผู้ใช้สามารถเข้าใจสิ่งที่เรากำลังทำในตัวอย่างได้อย่างง่ายดายโดยใช้คำสั่ง print() เราสร้างอาร์เรย์หนึ่งมิติ 'A' โดยใช้ฟังก์ชัน array() จากนั้นพิมพ์โดยเรียกใช้คำสั่ง print() จากนั้น เราสร้างอาร์เรย์หนึ่งมิติ 'B' โดยใช้ฟังก์ชัน array() และพิมพ์โดยใช้ฟังก์ชัน print()

นำเข้า งี่เง่า เช่น เช่น.

พิมพ์ ( 'การนำวิธี Least Square ไปใช้ใน NumPy: ' )

อา = เช่น. อาร์เรย์ ( [ 1 , สอง , 1 , 1 , 1 , สอง , สอง , 1 , 1 ] )

พิมพ์ ( ' \n อาร์เรย์ A คือ: ' , อา )

บี = เช่น. อาร์เรย์ ( [ 4 , 3 , 5 , 4 , สอง , 3 , 6 , 3 , สอง ] )

พิมพ์ ( ' \n อาร์เรย์ B คือ: ' , บี )

X = เช่น. ลินสีด . lstsq ( เช่น. vstack ( [ อา , เช่น. คน ( เท่านั้น ( อา ) ) ] ) . ตู่ , บี , rcond = ไม่มี ) [ 0 ]

พิมพ์ ( ' \n สี่เหลี่ยมจัตุรัสน้อยที่สุดคือ: ' , X )

หลังจากสร้างจุด A และ B แล้ว เราจะใช้ฟังก์ชัน lstsq() แต่ก่อนอื่น เราใช้ฟังก์ชัน vstack() เพื่อสแต็คองค์ประกอบของ 'A' ตามลำดับ จากนั้นเราหาทรานสโพสของอาร์เรย์ 'A' จากนั้น เราส่งฟังก์ชัน vstack() เป็นอาร์กิวเมนต์แรกของฟังก์ชัน lstsq() อาร์กิวเมนต์ที่สองคืออาร์เรย์ 'B' และอาร์กิวเมนต์ที่สามคือ 'rcond' ซึ่งเราตั้งค่าของ rcond เป็น 'none' จากนั้น เราเก็บฟังก์ชันทั้งหมดไว้ในอาร์เรย์อื่นชื่อ 'x' ซึ่งแสดงว่าเป็นสมการเชิงเส้นตัวแปรที่รู้จักคือ ax=b หลังจากนี้ เราแสดงผลดังนั้นเราจึงใช้คำสั่ง print() สำหรับสิ่งนี้และส่งอาร์เรย์ 'x' เข้าไป

ตัวอย่างที่ 2:

ตอนนี้ เรามาเริ่มใช้ตัวอย่างอื่นของ NumPy สี่เหลี่ยมน้อยที่สุด เรานำเข้าไลบรารีก่อนเสมอซึ่งเราใช้ในโปรแกรมคือ NumPy ขั้นแรก เราเขียนคีย์เวิร์ด “import” เพื่อรับแพ็คเกจในโปรแกรม นอกจากนี้เรายังเขียนชื่อแพ็คเกจซึ่งเป็น 'numpy' แล้วตามด้วยนามแฝง 'np' จากนั้นเราเรียกใช้เมธอด print() เพื่อให้เราสามารถแสดงข้อความ retable ของช่องสี่เหลี่ยมน้อยที่สุดเพื่อความเข้าใจที่ดีขึ้นของผู้ใช้

จากนั้น เราสร้างชื่ออาร์เรย์ “x_axis” และจัดเก็บอาร์เรย์ในนั้นโดยใช้ฟังก์ชัน arange() จากนั้นเราพิมพ์โดยใช้วิธีการ print() จากนั้น เราสร้างชื่ออาร์เรย์อื่น 'y_axis' และเก็บอาร์เรย์ที่เราสร้างขึ้นในภาพประกอบต่อไปนี้

หลังจากสร้างอาร์เรย์ทั้งสองแล้ว เราจะใช้เมธอด ones() บนอาร์เรย์ x_axis และเก็บไว้ในอาร์เรย์อื่นที่ชื่อ “array_a” จากนั้นเราก็พิมพ์อาร์เรย์นี้ด้วย เราสร้างอาร์เรย์อื่นชื่อ “arg_reg_line” และใช้ฟังก์ชัน linalg.lstsq() กับอาร์เรย์นั้น จากนั้น เราส่งพารามิเตอร์ไปยังฟังก์ชันนี้ เพื่อให้เราได้ค่ากำลังสองน้อยที่สุดระหว่างสองอาร์เรย์หรือจุด พารามิเตอร์แรกคือเราใช้ทรานสโพสของ array_a พารามิเตอร์ที่สองคือจุดที่สองซึ่งก็คือแกน y_axis จากนั้นเรามี 'rcond' ซึ่งมีค่า 'none' จากนั้นเราแสดงอาร์เรย์โดยใช้เมธอด print()

นำเข้า งี่เง่า เช่น เช่น.

พิมพ์ ( 'การนำฟังก์ชัน linalg.lstsq() ไปใช้: ' )

x_axis = เช่น. จัด ( 0 , 10 )

พิมพ์ ( ' \n ค่าของแกน x คือ: ' , x_axis )

y_axis = [ 10.3 , 10.5 , สิบเอ็ด , 11.5 , 13.2 , 13.9 , 14 , 15.5 , 16.6 , 17 ]

พิมพ์ ( ' \n ค่าของแกน y คือ: ' , y_axis )

array_a = เช่น. อาร์เรย์ ( [ x_axis , เช่น. คน ( 10 ) ] )

พิมพ์ ( ' \n อาร์เรย์คือ: \n ' , array_a )

arg_reg_line = เช่น. ลินสีด . lstsq ( array_a. ตู่ , y_axis , rcond = ไม่มี ) [ 0 ]

พิมพ์ ( ' \n พารามิเตอร์ของเส้นการถดถอยคือ: ' , arg_reg_line )

reg_line = arg_reg_line [ 0 ] * x_axis + arg_reg_line [ 1 ]

นำเข้า matplotlib pyplot เช่น plt

plt. พล็อต ( x_axis , reg_line , 'ร-' )

plt. พล็อต ( x_axis , y_axis , 'โอ' )

plt. ชื่อ ( 'เส้นถดถอยเชิงเส้น' )

plt. xlabel ( 'แกน X' )

plt. ylabel ( 'แกน Y' )

plt. แสดง ( )

นี่คือผลลัพธ์ของตัวอย่างที่นำไปใช้ก่อนหน้านี้:

เรานำเข้าแพ็คเกจอื่นของ NumPy ซึ่งเป็นแพ็คเกจ “matplotlib” ซึ่งใช้ในการพล็อตกราฟ จากนั้น เราพล็อตค่า x_axis และ y_axis_values ต่อไป เราตั้งชื่อและป้ายกำกับของกราฟ สุดท้าย เราแสดงกราฟโดยใช้เมธอด show()

นี่คือกราฟที่ต้องการของตัวอย่างที่กำหนด:

บทสรุป

ในบทความนี้ เราได้เรียนรู้ว่าอะไรคือกำลังสองน้อยที่สุด และวิธีที่เราได้รับ linalg.lstsq() ของตัวแปรที่ไม่รู้จัก x โดยใช้สมการเชิงเส้น ax=b เราใช้ฟังก์ชันต่างๆ ของ NumPy เพื่อค้นหาช่องสี่เหลี่ยมที่น้อยที่สุดและนำตัวอย่างบางส่วนไปใช้พร้อมคำอธิบายโดยละเอียดเพื่อให้เข้าใจผู้ใช้ได้ดียิ่งขึ้น