ความแม่นยำหลังการลดมิติข้อมูล
เราจะลดปัญหา overfit ด้วยการลดมิติข้อมูล โดยในกรณีนี้จะใช้วิธีที่ค่อนข้างเด็ดขาด นั่นคือเลือกเพียงคอลัมน์เดียวที่มีข้อมูลเพียงพอสำหรับแยกแยะเพศ จากนั้นจะทำขั้นตอนการแบ่งข้อมูล train-test การ fit โมเดล และการทำนายซ้ำอีกครั้ง เพื่อเปรียบเทียบความแม่นยำบนชุดทดสอบกับชุดฝึก
แพ็กเกจที่เกี่ยวข้องทั้งหมดและตัวแปร y ถูกโหลดไว้ให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การลดมิติข้อมูลใน Python
คำแนะนำการฝึกหัด
- เลือกเฉพาะคอลัมน์เส้นรอบวงคอ (
'neckcircumferencebase') จากansur_df - แบ่งข้อมูล สร้าง classifier และ fit ข้อมูล ส่วนนี้ทำไว้ให้แล้ว
- คำนวณคะแนนความแม่นยำบนทั้งชุดฝึกและชุดทดสอบอีกครั้ง
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Assign just the 'neckcircumferencebase' column from ansur_df to X
X = ansur_df[[____]]
# Split the data, instantiate a classifier and fit the data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
svc = SVC()
svc.fit(X_train, y_train)
# Calculate accuracy scores on both train and test data
accuracy_train = accuracy_score(____, svc.predict(____))
accuracy_test = accuracy_score(____, svc.predict(____))
print(f"{accuracy_test:.1%} accuracy on test set vs. {accuracy_train:.1%} on training set")