วิศวกรรมคุณลักษณะอัตโนมัติด้วย Featuretools
EntitySet, DFS (การสังเคราะห์คุณลักษณะเชิงลึก), องค์ประกอบพื้นฐานของคุณลักษณะ และการรวมค่าแบบซ้อนกัน
วิศวกรรมคุณลักษณะอัตโนมัติด้วย Featuretools เป็นบทเรียน Learn AI with Python ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn AI with Python และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
การสร้างคุณลักษณะโดยอัตโนมัติ
วิศวกรรมคุณลักษณะด้วยตนเองใช้เวลานานและอาจพลาดการผสมผสานบางรูปแบบได้ง่าย Featuretools จะสร้างคุณลักษณะที่เป็นไปได้จำนวนมากจากข้อมูลเชิงสัมพันธ์โดยอัตโนมัติ ด้วยวิธีที่เรียกว่าการสังเคราะห์คุณลักษณะเชิงลึก
ข้อมูลเชิงสัมพันธ์และเอนทิตี
ข้อมูลจริงมักกระจายอยู่ในตารางที่มีความสัมพันธ์กันหลายตาราง เช่น ลูกค้า คำสั่งซื้อ และสินค้า Featuretools จะจำลองความสัมพันธ์เหล่านี้ และสร้างคุณลักษณะที่รวมข้อมูลข้ามความเชื่อมโยงให้โดยอัตโนมัติ
การสร้าง EntitySet
EntitySet คือภาชนะที่เก็บดาตาเฟรมของคุณและความสัมพันธ์ระหว่างดาตาเฟรมเหล่านั้น เริ่มต้นด้วยการสร้าง EntitySet ว่าง
import featuretools as ft
es = ft.EntitySet(id="customers_data")การเพิ่ม DataFrames
es.add_dataframe ใช้ลงทะเบียนตาราง คุณต้องระบุ index (คีย์ที่ไม่ซ้ำกัน) และอาจระบุ time_index เพิ่มเติมสำหรับข้อมูลตามเวลา
import featuretools as ft
es = es.add_dataframe(
dataframe_name="customers",
dataframe=customers_df,
index="customer_id",
)
es = es.add_dataframe(
dataframe_name="orders",
dataframe=orders_df,
index="order_id",
time_index="order_date",
)การกำหนดความสัมพันธ์
ระบุให้ Featuretools ทราบว่าตารางเชื่อมต่อกันอย่างไรด้วย add_relationship: คีย์ของตารางแม่จะเชื่อมกับคีย์นอกของตารางลูก (ลูกค้าหนึ่งรายมีคำสั่งซื้อได้หลายรายการ)
es = es.add_relationship(
"customers", "customer_id",
"orders", "customer_id",
)การสังเคราะห์คุณลักษณะเชิงลึก
DFS (ft.dfs) คือกลไกหลัก โดยนำการดำเนินการต่าง ๆ มาซ้อนกันผ่านความสัมพันธ์ เพื่อสร้างคุณลักษณะ เช่น "มูลค่าคำสั่งซื้อเฉลี่ยต่อลูกค้าหนึ่งราย" โดยที่คุณไม่ต้องเขียนโค้ดสำหรับแต่ละคุณลักษณะเอง
import featuretools as ft
feature_matrix, feature_defs = ft.dfs(
entityset=es,
target_dataframe_name="customers",
)การดำเนินการรวมข้อมูล
การดำเนินการรวมข้อมูล ใช้สรุปแถวของตารางลูกขึ้นไปยังตารางแม่ เช่น SUM, MEAN, COUNT, MAX และ STD วิธีนี้เปลี่ยนคำสั่งซื้อจำนวนมากให้เป็นสถิติแยกตามลูกค้า
feature_matrix, defs = ft.dfs(
entityset=es,
target_dataframe_name="customers",
agg_primitives=["mean", "sum", "count", "max"],
)การดำเนินการแปลงข้อมูล
การดำเนินการแปลงข้อมูล ทำงานภายในแถวหรือตารางเดียว เช่น ดึงเดือนจากวันที่ คำนวณเวลาที่ผ่านไป หรือหาค่าสัมบูรณ์
feature_matrix, defs = ft.dfs(
entityset=es,
target_dataframe_name="customers",
trans_primitives=["month", "weekday", "time_since_previous"],
)การควบคุมความลึกด้วย max_depth
max_depth จำกัดจำนวนการดำเนินการที่นำมาซ้อนกัน ความลึกระดับ 1 คือการรวมข้อมูลโดยตรง ส่วนความลึกระดับ 2 จะใช้การแปลงข้อมูลก่อนแล้วจึงรวมข้อมูล (เช่น ค่าเฉลี่ยของวันในสัปดาห์ของคำสั่งซื้อ) ความลึกที่สูงขึ้นหมายถึงคุณลักษณะที่มีจำนวนมากขึ้น แต่ก็มีความเสี่ยงมากขึ้นด้วย
feature_matrix, defs = ft.dfs(
entityset=es,
target_dataframe_name="customers",
max_depth=2,
)การใช้เมทริกซ์คุณลักษณะ
feature_matrix ที่ได้คือดาตาเฟรมที่สะอาด โดยมีดัชนีเป็นเอนทิตีเป้าหมาย พร้อมส่งเข้าโมเดล feature_defs ใช้บันทึกรายละเอียดของคุณลักษณะแต่ละรายการที่สร้างขึ้น
print(feature_matrix.shape)
print(feature_matrix.head())
X = feature_matrix.fillna(0)
# now train any sklearn model on Xจุดเด่นและข้อควรระวัง
Featuretools สามารถสร้างคุณลักษณะจำนวนมากได้อย่างรวดเร็ว และค้นพบสัญญาณจากความสัมพันธ์ระหว่างข้อมูล แต่ก็อาจสร้างคอลัมน์ได้หลายร้อยคอลัมน์ จึงควรใช้ร่วมกับการคัดเลือกคุณลักษณะ ควรระวังการรั่วไหลของข้อมูล โดยกำหนด cutoff_time ให้เหมาะสมเมื่อใช้ข้อมูลตามเวลา
ตรวจสอบความเข้าใจอย่างรวดเร็ว
ทดสอบความรู้เกี่ยวกับ Featuretools
สรุปทบทวน
สรุป: Featuretools ช่วยทำวิศวกรรมคุณลักษณะโดยอัตโนมัติ สร้าง EntitySet ลงทะเบียนตารางด้วย es.add_dataframe กำหนดความสัมพันธ์ จากนั้นเรียกใช้ ft.dfs พร้อม max_depth การดำเนินการรวมข้อมูล จะรวมแถวของตารางลูกขึ้นไปยังตารางแม่ ส่วน การดำเนินการแปลงข้อมูล จะทำงานภายในแถว feature_matrix พร้อมใช้กับโมเดลแล้ว แต่ควรใช้ร่วมกับการคัดเลือกคุณลักษณะ
คำถามที่พบบ่อย
บทเรียน “วิศวกรรมคุณลักษณะอัตโนมัติด้วย Featuretools” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “วิศวกรรมคุณลักษณะอัตโนมัติด้วย Featuretools” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn AI with Python ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “วิศวกรรมคุณลักษณะอัตโนมัติด้วย Featuretools”
EntitySet, DFS (การสังเคราะห์คุณลักษณะเชิงลึก), องค์ประกอบพื้นฐานของคุณลักษณะ และการรวมค่าแบบซ้อนกัน คุณปฏิบัติ Learn AI with Python ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn AI with Python หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn AI with Python บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “วิศวกรรมคุณลักษณะอัตโนมัติด้วย Featuretools” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Learn AI with Python นี้ได้ไหม
ได้ บทเรียน Learn AI with Python ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- วิธีการคัดเลือกคุณลักษณะ
- การสร้างคุณลักษณะปฏิสัมพันธ์และพหุนาม
- การเข้ารหัสเป้าหมายและการจัดการข้อมูลเชิงหมวดหมู่ขั้นสูง
- วิศวกรรมคุณลักษณะอัตโนมัติด้วย Featuretools