Least-Squares ด้วย `statsmodels`
ไลบรารี Python หลายตัวมีอินเทอร์เฟซระดับสูงที่ช่วยให้ไม่ต้องจัดการกลไกการ optimize โมเดลด้วยตัวเองทุกขั้นตอน
ในแบบฝึกหัดนี้ คุณจะได้ใช้ไลบรารี statsmodels ในรูปแบบ workflow ระดับสูงที่ยืดหยุ่นมากขึ้น เพื่อสร้างโมเดลด้วยการ optimize แบบ least-squares (การลด RSS ให้น้อยที่สุด)
เพื่อช่วยให้เริ่มต้นได้สะดวก เราได้โหลดข้อมูลจาก x_data, y_data = load_data() ไว้ล่วงหน้า และจัดเก็บลงใน pandas DataFrame ที่มีชื่อคอลัมน์ว่า x_column และ y_column โดยใช้ df = pd.DataFrame(dict(x_column=x_data, y_column=y_data))
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Introduction to Linear Modeling in Python
คำแนะนำการฝึกหัด
- สร้างโมเดลด้วย
ols()โดยระบุformula="y_column ~ x_column"และdata=dfจากนั้นเรียก.fit()เพื่อ fit โมเดลกับข้อมูล - ใช้
model_fit.predict()เพื่อรับค่าy_model - ใช้ฟังก์ชัน
plot_data_with_model()ที่เตรียมไว้ให้ เพื่อพล็อตy_dataพร้อมกับy_modelทับกัน - ดึงค่าพารามิเตอร์
a0และa1ออกจากmodel_fit.params - ใช้
compute_rss_and_plot_fit()เพื่อยืนยันว่าผลลัพธ์สอดคล้องกับสูตรเชิงวิเคราะห์ที่ implement ด้วยnumpy
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Pass data and `formula` into ols(), use and `.fit()` the model to the data
model_fit = ols(____="y_column ~ x_column", ____=df).____()
# Use .predict(df) to get y_model values, then over-plot y_data with y_model
y_model = model_fit.____(df)
fig = plot_data_with_model(x_data, ____, ____)
# Extract the a0, a1 values from model_fit.params
a0 = model_fit.____['Intercept']
a1 = model_fit.____['x_column']
# Visually verify that these parameters a0, a1 give the minimum RSS
fig, rss = compute_rss_and_plot_fit(a0, a1)