วิธีแยกค่าสัมประสิทธิ์การถดถอยจากแบบจำลอง 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