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

การ Implement Logistic Regression

แบบฝึกหัดนี้คล้ายกับแบบฝึกหัดก่อนหน้าที่ implement linear regression "จากศูนย์" โดยใช้ scipy.optimize.minimize แต่คราวนี้จะ minimize logistic loss และเปรียบเทียบกับ LogisticRegression ของ scikit-learn (เราตั้งค่า C ไว้สูงเพื่อปิดการ regularization ซึ่งจะอธิบายเพิ่มเติมในบทที่ 3!)

ฟังก์ชัน log_loss() จากแบบฝึกหัดที่แล้วถูกกำหนดไว้ในสภาพแวดล้อมของคุณแล้ว และชุดข้อมูล breast cancer prediction ของ sklearn (10 features แรก ซึ่งผ่านการทำ standardization แล้ว) ถูกโหลดไว้ในตัวแปร X และ y

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Linear Classifiers ใน Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • ป้อนจำนวนตัวอย่างข้อมูลในชุดฝึกลงใน range()
  • กำหนด loss function สำหรับ logistic regression
  • เปรียบเทียบค่าสัมประสิทธิ์กับ LogisticRegression ของ sklearn

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# The logistic loss, summed over training examples
def my_loss(w):
    s = 0
    for i in range(____):
        raw_model_output = w@X[i]
        s = s + ____(raw_model_output * y[i])
    return s

# Returns the w that makes my_loss(w) smallest
w_fit = minimize(my_loss, X[0]).x
print(w_fit)

# Compare with scikit-learn's LogisticRegression
lr = LogisticRegression(fit_intercept=False, C=1000000).fit(X,y)
print(lr.coef_)
แก้ไขและรันโค้ด