เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

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)
แก้ไขและรันโค้ด