วิธีการใช้การถดถอยเชิงเส้นสำหรับการเรียนรู้ของเครื่อง



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

จุดสำคัญของ หมุนรอบตัวแปรอินพุตและเอาต์พุตโดยใช้อัลกอริทึมเพื่อทำนายผลลัพธ์ หากมีตัวแปรอินพุตใหม่เข้ามาในรูปภาพ อัลกอริธึมการถดถอยเชิงเส้นใน เป็นเทคนิคการเรียนรู้ภายใต้การดูแลเพื่อประมาณฟังก์ชันการทำแผนที่เพื่อให้ได้การคาดการณ์ที่ดีที่สุด ในบทความนี้เราจะเรียนรู้เกี่ยวกับการถดถอยเชิงเส้นสำหรับการเรียนรู้ของเครื่อง หัวข้อต่อไปนี้จะกล่าวถึงในบล็อกนี้

Regression คืออะไร?

เป้าหมายหลักของการถดถอยคือการสร้างแบบจำลองที่มีประสิทธิภาพเพื่อทำนายแอตทริบิวต์ที่อ้างอิงจากตัวแปรแอตทริบิวต์จำนวนมาก ปัญหาการถดถอยคือเมื่อตัวแปรเอาต์พุตเป็นค่าจริงหรือค่าต่อเนื่องเช่นเงินเดือนน้ำหนักพื้นที่ ฯลฯ





นอกจากนี้เรายังสามารถกำหนดการถดถอยเป็นวิธีการทางสถิติที่ใช้ในแอปพลิเคชันเช่นที่อยู่อาศัยการลงทุน ฯลฯ ใช้เพื่อทำนายความสัมพันธ์ระหว่างตัวแปรตามและตัวแปรอิสระจำนวนมาก ลองมาดูเทคนิคการถดถอยประเภทต่างๆ

การถดถอยเชิงเส้นตัวอย่างในการเรียนรู้ของเครื่อง - edureka

ประเภทของการถดถอย

ต่อไปนี้เป็นประเภทของการถดถอย



  1. การถดถอยเชิงเส้นอย่างง่าย
  2. การถดถอยพหุนาม
  3. สนับสนุน Vector Regression
  4. การถดถอยของต้นไม้ตัดสินใจ
  5. การถดถอยป่าสุ่ม

การถดถอยเชิงเส้นอย่างง่าย

เทคนิคการถดถอยที่น่าสนใจและใช้กันทั่วไปอย่างหนึ่งคือการถดถอยเชิงเส้นอย่างง่าย ในสิ่งนี้เราทำนายผลลัพธ์ของตัวแปรตามโดยอาศัยตัวแปรอิสระความสัมพันธ์ระหว่างตัวแปรเป็นแบบเส้นตรง ดังนั้นคำว่าการถดถอยเชิงเส้น

การถดถอยพหุนาม

ในเทคนิคการถดถอยนี้เราเปลี่ยนคุณสมบัติดั้งเดิมเป็นคุณสมบัติพหุนามของระดับที่กำหนดจากนั้นทำการถดถอย

สนับสนุน 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. กำลังโหลดข้อมูล
  2. การสำรวจข้อมูล
  3. การแบ่งส่วนข้อมูล
  4. ฝึกและแยกข้อมูล
  5. สร้างแบบจำลอง
  6. ประเมินความถูกต้อง

ให้เรามาดูรายละเอียดของแต่ละขั้นตอนเพื่อใช้การถดถอยเชิงเส้น

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 คนกระจายอยู่ทั่วโลก

หากคุณพบคำถามใด ๆ โปรดอย่าลังเลที่จะถามคำถามทั้งหมดของคุณในส่วนความคิดเห็นของ“ การถดถอยเชิงเส้นสำหรับการเรียนรู้ของเครื่อง” และทีมงานของเรายินดีที่จะตอบ