จุดสำคัญของ หมุนรอบตัวแปรอินพุตและเอาต์พุตโดยใช้อัลกอริทึมเพื่อทำนายผลลัพธ์ หากมีตัวแปรอินพุตใหม่เข้ามาในรูปภาพ อัลกอริธึมการถดถอยเชิงเส้นใน เป็นเทคนิคการเรียนรู้ภายใต้การดูแลเพื่อประมาณฟังก์ชันการทำแผนที่เพื่อให้ได้การคาดการณ์ที่ดีที่สุด ในบทความนี้เราจะเรียนรู้เกี่ยวกับการถดถอยเชิงเส้นสำหรับการเรียนรู้ของเครื่อง หัวข้อต่อไปนี้จะกล่าวถึงในบล็อกนี้
- Regression คืออะไร?
- ประเภทของการถดถอย
- Linear Regression คืออะไร?
- คำศัพท์การถดถอยเชิงเส้น
- ข้อดีและข้อเสียของการถดถอยเชิงเส้น
- กรณีการใช้การถดถอยเชิงเส้น
- กรณีการใช้งาน - การดำเนินการถดถอยเชิงเส้น
Regression คืออะไร?
เป้าหมายหลักของการถดถอยคือการสร้างแบบจำลองที่มีประสิทธิภาพเพื่อทำนายแอตทริบิวต์ที่อ้างอิงจากตัวแปรแอตทริบิวต์จำนวนมาก ปัญหาการถดถอยคือเมื่อตัวแปรเอาต์พุตเป็นค่าจริงหรือค่าต่อเนื่องเช่นเงินเดือนน้ำหนักพื้นที่ ฯลฯ
นอกจากนี้เรายังสามารถกำหนดการถดถอยเป็นวิธีการทางสถิติที่ใช้ในแอปพลิเคชันเช่นที่อยู่อาศัยการลงทุน ฯลฯ ใช้เพื่อทำนายความสัมพันธ์ระหว่างตัวแปรตามและตัวแปรอิสระจำนวนมาก ลองมาดูเทคนิคการถดถอยประเภทต่างๆ
ประเภทของการถดถอย
ต่อไปนี้เป็นประเภทของการถดถอย
- การถดถอยเชิงเส้นอย่างง่าย
- การถดถอยพหุนาม
- สนับสนุน Vector Regression
- การถดถอยของต้นไม้ตัดสินใจ
- การถดถอยป่าสุ่ม
การถดถอยเชิงเส้นอย่างง่าย
เทคนิคการถดถอยที่น่าสนใจและใช้กันทั่วไปอย่างหนึ่งคือการถดถอยเชิงเส้นอย่างง่าย ในสิ่งนี้เราทำนายผลลัพธ์ของตัวแปรตามโดยอาศัยตัวแปรอิสระความสัมพันธ์ระหว่างตัวแปรเป็นแบบเส้นตรง ดังนั้นคำว่าการถดถอยเชิงเส้น
การถดถอยพหุนาม
ในเทคนิคการถดถอยนี้เราเปลี่ยนคุณสมบัติดั้งเดิมเป็นคุณสมบัติพหุนามของระดับที่กำหนดจากนั้นทำการถดถอย
สนับสนุน Vector Regression
สำหรับ การถดถอยหรือ SVR เราระบุไฮเปอร์เพลนที่มีระยะขอบสูงสุดเพื่อให้จำนวนจุดข้อมูลสูงสุดอยู่ภายในระยะขอบเหล่านั้น ค่อนข้างคล้ายกับอัลกอริธึมการจำแนกประเภทเวกเตอร์เครื่องสนับสนุน
เรียงลำดับ () c ++
การถดถอยของต้นไม้ตัดสินใจ
ถึง สามารถใช้ได้ทั้งการถดถอยและ . ในกรณีของการถดถอยเราใช้อัลกอริทึม ID3 (Iterative Dichotomiser 3) เพื่อระบุโหนดการแยกโดยการลดค่าเบี่ยงเบนมาตรฐาน
การถดถอยป่าสุ่ม
ในการถดถอยของป่าแบบสุ่มเรารวบรวมการคาดการณ์การถดถอยของต้นไม้การตัดสินใจหลาย ๆ เมื่อเรารู้เกี่ยวกับการถดถอยประเภทต่างๆแล้วให้เรามาดูรายละเอียดเกี่ยวกับการถดถอยเชิงเส้นอย่างง่าย
Linear Regression คืออะไร?
การถดถอยเชิงเส้นอย่างง่ายเป็นเทคนิคการถดถอยที่ตัวแปรอิสระมีความสัมพันธ์เชิงเส้นกับตัวแปรตาม เส้นตรงในแผนภาพเป็นเส้นที่พอดีที่สุด เป้าหมายหลักของการถดถอยเชิงเส้นอย่างง่ายคือการพิจารณาจุดข้อมูลที่กำหนดและพล็อตเส้นที่เหมาะสมที่สุดเพื่อให้พอดีกับแบบจำลองในวิธีที่ดีที่สุด
ก่อนที่จะไปยังวิธีการทำงานของอัลกอริทึมการถดถอยเชิงเส้นให้เรามาดูคำศัพท์ที่สำคัญบางประการในการถดถอยเชิงเส้นอย่างง่าย
คำศัพท์การถดถอยเชิงเส้น
คำศัพท์ต่อไปนี้เป็นสิ่งสำคัญที่ต้องทำความคุ้นเคยก่อนที่จะไปยังอัลกอริทึมการถดถอยเชิงเส้น
ฟังก์ชันต้นทุน
เส้นที่พอดีที่สุดสามารถขึ้นอยู่กับสมการเชิงเส้นที่ระบุด้านล่าง
- ตัวแปรตามที่จะทำนายแสดงโดย Y
- เส้นที่สัมผัสกับแกน y แสดงโดยจุดตัด b0.
- ขหนึ่งคือความชันของเส้น x แทนตัวแปรอิสระที่กำหนดการทำนายของ Y
- ข้อผิดพลาดในการคาดคะเนผลลัพธ์แสดงด้วย e
ฟังก์ชันต้นทุนให้ค่าที่ดีที่สุดสำหรับ b0และ bหนึ่งเพื่อสร้างเส้นที่เหมาะสมที่สุดสำหรับจุดข้อมูล เราทำได้โดยการแปลงปัญหานี้ให้เป็นปัญหาการย่อขนาดเพื่อให้ได้ค่าที่ดีที่สุดสำหรับ b0และ bหนึ่ง. ข้อผิดพลาดจะลดลงในปัญหานี้ระหว่างค่าจริงและค่าที่คาดการณ์
เราเลือกฟังก์ชั่นด้านบนเพื่อลดข้อผิดพลาด เรายกกำลังสองของความแตกต่างของข้อผิดพลาดและรวมข้อผิดพลาดบนจุดข้อมูลทั้งหมดการหารระหว่างจำนวนจุดข้อมูลทั้งหมด จากนั้นค่าที่ผลิตได้จะให้ข้อผิดพลาดกำลังสองเฉลี่ยในจุดข้อมูลทั้งหมด
เรียกอีกอย่างว่า MSE (Mean Squared Error) และเราเปลี่ยนค่าของ b0และ bหนึ่งเพื่อให้ค่า MSE ถูกตัดสินที่ต่ำสุด
Gradient Descent
คำศัพท์ที่สำคัญต่อไปในการทำความเข้าใจการถดถอยเชิงเส้นคือ การไล่ระดับสี มันเป็นวิธีการปรับปรุง b0และ bหนึ่งค่าเพื่อลด MSE แนวคิดเบื้องหลังนี้คือการทำซ้ำ b0และ bหนึ่งค่าจนกว่าเราจะลด MSE ให้เหลือน้อยที่สุด
เพื่อปรับปรุง b0และ bหนึ่งเราจะไล่ระดับสีจากฟังก์ชันต้นทุน ในการค้นหาการไล่ระดับสีเหล่านี้เราใช้อนุพันธ์บางส่วนเทียบกับ b0และ bหนึ่ง. อนุพันธ์ย่อยเหล่านี้คือการไล่ระดับสีและใช้เพื่ออัปเดตค่าของ b0และ bหนึ่ง.
อัตราการเรียนรู้ที่น้อยจะใช้เวลาใกล้เคียงกับค่าต่ำสุด แต่ต้องใช้เวลามากกว่าและในกรณีที่อัตราการเรียนรู้สูงขึ้น เวลาที่ใช้เร็วกว่า แต่มีโอกาสที่จะเกินมูลค่าขั้นต่ำ ตอนนี้เราผ่านคำศัพท์เกี่ยวกับการถดถอยเชิงเส้นแล้วให้เรามาดูข้อดีและข้อเสียบางประการของการถดถอยเชิงเส้นสำหรับการเรียนรู้ของเครื่อง
ข้อดีและข้อเสีย
ข้อดี | ข้อเสีย |
การถดถอยเชิงเส้นทำงานได้ดีเป็นพิเศษสำหรับข้อมูลที่แยกกันได้เชิงเส้น | สมมติฐานของความเป็นเชิงเส้นระหว่างตัวแปรตามและตัวแปรอิสระ |
ง่ายต่อการนำไปใช้ตีความและมีประสิทธิภาพในการฝึกอบรม | มักจะมีเสียงดังและการติดตั้งอุปกรณ์มากเกินไป |
มันจัดการกับ overfitting ได้ค่อนข้างดีโดยใช้เทคนิคการลดมิติการทำให้เป็นมาตรฐานและการตรวจสอบความถูกต้องข้าม | การถดถอยเชิงเส้นค่อนข้างอ่อนไหวต่อค่าผิดปกติ |
ข้อดีอีกประการหนึ่งคือการคาดการณ์นอกเหนือจากชุดข้อมูลเฉพาะ | มีแนวโน้มที่จะเกิดการเชื่อมโยงหลายมิติ |
กรณีการใช้การถดถอยเชิงเส้น
การพยากรณ์การขาย
การวิเคราะห์ความเสี่ยง
แอพพลิเคชั่นที่อยู่อาศัยเพื่อทำนายราคาและปัจจัยอื่น ๆ
แอปพลิเคชั่นทางการเงินเพื่อทำนายราคาหุ้นการประเมินการลงทุน ฯลฯ
แนวคิดพื้นฐานเบื้องหลังการถดถอยเชิงเส้นคือการค้นหาความสัมพันธ์ระหว่างตัวแปรตามและตัวแปรอิสระ ใช้เพื่อให้ได้เส้นเหมาะสมที่ดีที่สุดที่จะทำนายผลลัพธ์โดยมีข้อผิดพลาดน้อยที่สุด เราสามารถใช้การถดถอยเชิงเส้นในสถานการณ์จริงง่ายๆเช่นการทำนายคะแนน SAT โดยคำนึงถึงจำนวนชั่วโมงเรียนและปัจจัยชี้ขาดอื่น ๆ
เมื่อคำนึงถึงสิ่งนี้แล้วให้เรามาดูกรณีการใช้งาน
Use Case - การใช้ Linear Regression
กระบวนการเกิดขึ้นในขั้นตอนต่อไปนี้:
- กำลังโหลดข้อมูล
- การสำรวจข้อมูล
- การแบ่งส่วนข้อมูล
- ฝึกและแยกข้อมูล
- สร้างแบบจำลอง
- ประเมินความถูกต้อง
ให้เรามาดูรายละเอียดของแต่ละขั้นตอนเพื่อใช้การถดถอยเชิงเส้น
1. กำลังโหลดข้อมูล
เราสามารถเริ่มต้นด้วยชุดข้อมูลโรคเบาหวานพื้นฐานที่มีอยู่แล้วในโมดูลชุดข้อมูล sklearn (scikit-learn) เพื่อเริ่มต้นการเดินทางของเราด้วยการถดถอยเชิงเส้น
จาก sklearn import datasets disease = datasets.load_diabetes () print (disease)
เอาท์พุต:
2. การสำรวจข้อมูล
หลังจากโหลดข้อมูลเสร็จแล้วเราสามารถเริ่มสำรวจได้เพียงแค่ตรวจสอบป้ายกำกับโดยใช้รหัสต่อไปนี้
พิมพ์ (disease.keys ())
เอาท์พุต:
โค้ดด้านบนแสดงป้ายกำกับทั้งหมดจากชุดข้อมูลหลังจากนี้เราสามารถแบ่งข้อมูลเพื่อให้เราสามารถพล็อตบรรทัดได้ในตอนท้าย เราจะใช้จุดข้อมูลทั้งหมดในตอนนี้เราจะแบ่งคอลัมน์ 2 จากข้อมูล
ตัวอย่างวัตถุ java ของวัตถุ
นำเข้า numpy เป็น np disease_X = disease.data [:, np.newaxis, 2] พิมพ์ (disease_X)
เอาท์พุต:
หลังจากขั้นตอนนี้เราจะแบ่งข้อมูลออกเป็นชุดฝึกและชุดทดสอบ
3. การแยกข้อมูล
disease_X_train = disease_X [: - 30] disease_X_test = disease_X [-20:] disease_Y_train = disease.target [: - 30] disease_Y_test = disease.target [-20:]
ส่วนถัดไปเกี่ยวข้องกับการสร้างโมเดลซึ่งจะรวมถึงการนำเข้า linear_model จาก sklearn
4. การสร้างแบบจำลอง
จาก sklearn import linear_model reg = linear_model.LinearRegression () reg.fit (disease_X_train, disease_Y_train) y_predict = reg.predict (disease_X_test)
ในการประเมินความถูกต้องของแบบจำลองเราจะใช้ค่าเฉลี่ยกำลังสองข้อผิดพลาดจาก scikit-learn
5. การประเมินผล
ความถูกต้อง = mean_squared_error (disease_Y_test, y_predict,) print (ความแม่นยำ) weights = reg.coef_ intercept = reg.intercept_ print (weights, intercept)
เอาท์พุต:
เพื่อให้ชัดเจนยิ่งขึ้นว่าจุดข้อมูลมีลักษณะอย่างไรบนกราฟให้เราพล็อตกราฟด้วย
นำเข้า matplotlib.pyplot เป็น plt plt.scatter (disease_X_test, disease_Y_test) plt.plot (disease_X_test, y_predict) plt.show ()
เอาท์พุต:
เพื่อให้ได้โมเดลที่แม่นยำยิ่งขึ้นในสถานการณ์นี้เราสามารถใช้ข้อมูลทั้งหมดแทนที่จะเป็นเพียงคอลัมน์ 2 ซึ่งจะให้ความแม่นยำดังที่แสดงด้านล่าง:
# ทำการเปลี่ยนแปลงเล็กน้อยในโค้ดด้านบนและลบรหัสการลงจุดเพื่อหลีกเลี่ยงข้อผิดพลาด disease_X = disease.data
เอาท์พุต:
เรามาถึงตอนท้ายของบทความนี้ซึ่งเราได้เรียนรู้เกี่ยวกับ Linear Regression สำหรับการเรียนรู้ของเครื่อง ฉันหวังว่าคุณจะชัดเจนกับทุกสิ่งที่แบ่งปันกับคุณในบทแนะนำนี้
หากคุณพบบทความเกี่ยวกับ“ การถดถอยเชิงเส้นสำหรับการเรียนรู้ของเครื่อง” ที่เกี่ยวข้องโปรดดูที่ไฟล์ บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้พร้อมเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก
หากคุณพบคำถามใด ๆ โปรดอย่าลังเลที่จะถามคำถามทั้งหมดของคุณในส่วนความคิดเห็นของ“ การถดถอยเชิงเส้นสำหรับการเรียนรู้ของเครื่อง” และทีมงานของเรายินดีที่จะตอบ