การสร้างฟีเจอร์บนข้อมูลที่จัดกลุ่มแล้ว
ในแบบฝึกหัดนี้ จะต่อยอดจากแบบฝึกหัดก่อนหน้าด้วยการเพิ่มฟีเจอร์อีกหนึ่งตัว ได้แก่ จำนวน protocol ที่ไม่ซ้ำกันซึ่งคอมพิวเตอร์ต้นทางแต่ละเครื่องใช้งาน สังเกตว่าเมื่อทำงานกับข้อมูลที่จัดกลุ่มแล้ว สามารถสร้างฟีเจอร์ในลักษณะนี้ได้เสมอ โดยใช้จำนวนสมาชิกที่ไม่ซ้ำกันของคอลัมน์ประเภทหมวดหมู่ และค่าเฉลี่ยของคอลัมน์ตัวเลขเป็นจุดเริ่มต้น เช่นเดียวกับก่อนหน้า มีตัวแปร flows โหลดไว้ล่วงหน้าแล้ว พร้อมด้วย cross_val_score() สำหรับวัดความแม่นยำ, AdaBoostClassifier(), pandas ในชื่อ pd และ numpy ในชื่อ np
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การออกแบบ Machine Learning Workflows ด้วย Python
คำแนะนำการฝึกหัด
- ใช้ฟังก์ชัน
lambdaกับ group iterator ที่กำหนดให้ เพื่อคำนวณจำนวน protocol ที่ไม่ซ้ำกันของคอมพิวเตอร์ต้นทางแต่ละเครื่อง โดยใช้set()เพื่อลด คอลัมน์protocolให้เหลือเฉพาะค่าที่ไม่ซ้ำกัน - แปลงผลลัพธ์เป็น data frame ที่มีรูปร่างถูกต้องด้วยการระบุ index และตั้งชื่อคอลัมน์ว่า
protocol - เชื่อมต่อ data frame ใหม่เข้ากับ data frame เดิมซึ่งเก็บไว้ในตัวแปร
X - ประเมินความแม่นยำของ
AdaBoostClassifier()บนชุดข้อมูลใหม่นี้โดยใช้cross_val_score()
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Create a feature counting unique protocols per source
protocols = flows.groupby('source_computer').apply(
lambda df: ____)
# Convert this feature into a dataframe, naming the column
protocols_DF = pd.DataFrame(
protocols, index=____, columns=____)
# Now concatenate this feature with the previous dataset, X
X_more = pd.concat([X, ____], axis=____)
# Refit the classifier and report its accuracy
print(____(____(
AdaBoostClassifier(), ____, y)))