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

ระบุค่าสัมประสิทธิ์ L1 penalty ที่เหมาะสมที่สุด

ในแบบฝึกหัดนี้ จะได้ปรับจูนพารามิเตอร์ C สำหรับ L1 regularization เพื่อหาค่าที่ช่วยลดความซับซ้อนของโมเดล ขณะที่ยังคงรักษาประสิทธิภาพที่ดีอยู่ โดยจะวนลูป for ผ่านค่า C ที่เป็นไปได้ และสร้าง Logistic Regression สำหรับแต่ละค่า พร้อมคำนวณ performance metrics

ได้เตรียมลิสต์ C ที่มีค่าที่เป็นไปได้ไว้แล้ว อาร์เรย์ l1_metrics ถูกสร้างขึ้นโดยมี 3 คอลัมน์ ได้แก่ คอลัมน์แรกคือค่า C ส่วนอีกสองคอลัมน์เป็น placeholder สำหรับจำนวนสัมประสิทธิ์ที่ไม่เป็นศูนย์ และ recall score ของโมเดล ฟีเจอร์และตัวแปรเป้าหมายที่ผ่านการ scale แล้วถูกโหลดไว้เป็น train_X, train_Y สำหรับการเทรน และ test_X, test_Y สำหรับการทดสอบ

ทั้ง numpy และ pandas ถูกโหลดไว้เป็น np และ pd พร้อมกับฟังก์ชัน recall_score จาก sklearn

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

Machine Learning สำหรับการตลาดด้วย Python

ดูคอร์ส

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

  • วนลูป for ผ่านช่วงตั้งแต่ 0 จนถึงความยาวของลิสต์ C
  • สำหรับค่า C แต่ละตัว ให้สร้างและ fit Logistic Regression จากนั้นพยากรณ์ churn บนข้อมูลทดสอบ
  • สำหรับค่า C แต่ละตัว ให้เก็บจำนวนสัมประสิทธิ์ที่ไม่เป็นศูนย์และ recall score ไว้ในคอลัมน์ที่สองและสามของ l1_metrics
  • สร้าง DataFrame ของ pandas จาก l1_metrics พร้อมระบุชื่อคอลัมน์ให้ถูกต้อง

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

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

# Run a for loop over the range of C list length
for index in ___(0, len(C)):
  # Initialize and fit Logistic Regression with the C candidate
  logreg = ___(penalty='l1', C=C[___], solver='liblinear')
  logreg.fit(___, train_Y)
  # Predict churn on the testing data
  pred_test_Y = logreg.___(test_X)
  # Create non-zero count and recall score columns
  l1_metrics[index,1] = np.___(logreg.coef_)
  l1_metrics[index,2] = recall_score(___, pred_test_Y)

# Name the columns and print the array as pandas DataFrame
col_names = ['C','Non-Zero Coeffs','Recall']
print(pd.DataFrame(l1_metrics, columns=___))
แก้ไขและรันโค้ด