วิธีแยกค่าสัมประสิทธิ์การถดถอยจากแบบจำลอง scikit-learn


คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อแยกค่าสัมประสิทธิ์การถดถอยจากแบบจำลองการถดถอยที่สร้างด้วย scikit-learn ใน Python:

 p.d. DataFrame ( zip ( X.columns , model.coef_ ))

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

ตัวอย่าง: แยกค่าสัมประสิทธิ์การถดถอยออกจากแบบจำลอง Scikit-Learn

สมมติว่าเรามี DataFrame แพนด้าต่อไปนี้ซึ่งมีข้อมูลเกี่ยวกับชั่วโมงที่เรียน จำนวนการสอบเตรียมสอบ และเกรดการสอบปลายภาคที่นักเรียน 11 คนในชั้นเรียนได้รับ:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' hours ': [1, 2, 2, 4, 2, 1, 5, 4, 2, 4, 4],
                   ' exams ': [1, 3, 3, 5, 2, 2, 1, 1, 0, 3, 4],
                   ' score ': [76, 78, 85, 88, 72, 69, 94, 94, 88, 92, 90]})

#view DataFrame
print (df)

    hours exam score
0 1 1 76
1 2 3 78
2 2 3 85
3 4 5 88
4 2 2 72
5 1 2 69
6 5 1 94
7 4 1 94
8 2 0 88
9 4 3 92
10 4 4 90

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

 from sklearn. linear_model import LinearRegression

#initiate linear regression model
model = LinearRegression()

#define predictor and response variables
x, y = df[[' hours ', ' exams ']], df. score

#fit regression model
model. fit (x,y)

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

 #print regression coefficients
p.d. DataFrame ( zip ( X.columns , model.coef_ ))

            0 1
0 hours 5.794521
1 exams -1.157647

จากผลลัพธ์ เราจะเห็นค่าสัมประสิทธิ์การถดถอยของตัวแปรทำนายสองตัวในแบบจำลอง:

  • ค่าสัมประสิทธิ์ ชั่วโมง : 5.794521
  • ค่าสัมประสิทธิ์ การสอบ : -1.157647

หากเราต้องการ เรายังสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อแยกค่าดั้งเดิมจากแบบจำลองการถดถอย:

 #print intercept value
print (model. intercept_ )

70.48282057040197

เมื่อใช้แต่ละค่าเหล่านี้ เราสามารถเขียนสมการสำหรับแบบจำลองการถดถอยที่ติดตั้งได้:

คะแนน = 70.483 + 5.795 (ชั่วโมง) – 1.158 (สอบ)

จากนั้นเราสามารถใช้สมการนี้เพื่อทำนายคะแนนสอบปลายภาคของนักเรียนโดยพิจารณาจากจำนวนชั่วโมงที่ใช้ในการศึกษาและจำนวนข้อสอบฝึกหัดที่สอบ

เช่น นักเรียนที่เรียน 3 ชั่วโมง และสอบเตรียมสอบ 2 ครั้ง ควรได้เกรดปลายภาค 85.55 :

  • คะแนน = 70.483 + 5.795 (ชั่วโมง) – 1.158 (สอบ)
  • คะแนน = 70.483 + 5.795(3) – 1.158(2)
  • คะแนน = 85.55

ที่เกี่ยวข้อง: วิธีการตีความค่าสัมประสิทธิ์การถดถอย

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่นๆ ใน Python:

วิธีดำเนินการถดถอยเชิงเส้นอย่างง่ายใน Python
วิธีดำเนินการถดถอยเชิงเส้นพหุคูณใน Python
วิธีการคำนวณ AIC ของตัวแบบการถดถอยใน Python

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *