การสร้างคุณลักษณะปฏิสัมพันธ์และพหุนาม
PolynomialFeatures พจน์ปฏิสัมพันธ์ที่สร้างเอง คุณลักษณะอัตราส่วน และการแบ่งตัวแปรต่อเนื่องเป็นช่วง
การสร้างคุณลักษณะปฏิสัมพันธ์และพหุนาม เป็นบทเรียน Learn AI with Python ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn AI with Python และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
เหตุใดจึงต้องสร้างคุณลักษณะใหม่
โมเดลเชิงเส้นจับได้เฉพาะความสัมพันธ์แบบเส้นตรง การสร้างคุณลักษณะปฏิสัมพันธ์และพหุนามช่วยให้โมเดลง่าย ๆ แสดงเส้นโค้งและผลกระทบร่วมระหว่างตัวแปรได้
คุณลักษณะปฏิสัมพันธ์คืออะไร
ปฏิสัมพันธ์คือการนำคุณลักษณะสองรายการมาคูณกัน เช่น area = length * width วิธีนี้จับผลกระทบที่ขึ้นอยู่กับตัวแปรนำเข้าทั้งสองร่วมกัน ซึ่งแต่ละตัวเพียงลำพังไม่สามารถอธิบายได้
พื้นฐานของ PolynomialFeatures
PolynomialFeatures จะสร้างเลขยกกำลังและผลคูณของคุณลักษณะโดยอัตโนมัติจนถึง degree ที่เลือก ค่า degree 2 จะเพิ่มกำลังสองและผลคูณแบบจับคู่
from sklearn.preprocessing import PolynomialFeatures
import numpy as np
X = np.array([[2, 3]])
poly = PolynomialFeatures(degree=2)
print(poly.fit_transform(X))
# 1, x1, x2, x1^2, x1*x2, x2^2โหมด interaction_only
การตั้งค่า interaction_only=True จะเก็บผลคูณไขว้ไว้ แต่ลบเลขยกกำลังเดี่ยวอย่าง x1^2 ออก เหมาะเมื่อคุณต้องการเฉพาะผลกระทบร่วม ไม่ใช่ความโค้ง
from sklearn.preprocessing import PolynomialFeatures
poly = PolynomialFeatures(degree=2, interaction_only=True, include_bias=False)
X_int = poly.fit_transform(X)ระวังจำนวนคุณลักษณะที่เพิ่มขึ้นอย่างรวดเร็ว
องศาที่สูงจะสร้างคุณลักษณะจำนวนมากและเพิ่มความเสี่ยงต่อการปรับพอดีเกินไป เมื่อตัวแปรนำเข้ามี 10 รายการ degree 3 จะสร้างคอลัมน์ได้หลายร้อยคอลัมน์ ควรรักษา degree ให้ต่ำ (2 หรือ 3) และใช้ร่วมกับการคัดเลือกคุณลักษณะหรือการทำให้เป็นปกติ
คุณลักษณะอัตราส่วนที่สร้างด้วยตนเอง
ความรู้เฉพาะโดเมนมักให้ผลดีกว่าการใช้กำลังคำนวณแบบดื้อ ๆ อัตราส่วนที่สร้างขึ้นเอง เช่น ราคาต่อตารางเมตรหรือจำนวนคลิกต่อการแสดงผล จะสื่อความหมายที่การขยายพหุนามไม่สามารถค้นพบได้
import pandas as pd
df["price_per_sqm"] = df["price"] / df["area"]
df["ctr"] = df["clicks"] / df["impressions"]การแบ่งช่วงด้วย pd.cut
การแบ่งช่วงจะแปลงตัวแปรต่อเนื่องให้เป็นหมวดหมู่ pd.cut แบ่งคอลัมน์ออกเป็นช่วง เหมาะสำหรับจับผลกระทบแบบไม่เป็นเชิงเส้นหรือจัดกลุ่มอายุ รายได้ และอื่น ๆ
import pandas as pd
df["age_group"] = pd.cut(
df["age"],
bins=[0, 18, 35, 60, 120],
labels=["minor", "young", "adult", "senior"],
)การแบ่งช่วงที่มีความถี่เท่ากัน
pd.qcut จะสร้างช่วงที่มีจำนวนข้อมูลใกล้เคียงกัน หรือควอนไทล์ เหมาะเมื่อการกระจายเบ้และคุณต้องการกลุ่มที่มีขนาดสมดุล
import pandas as pd
df["income_quartile"] = pd.qcut(df["income"], q=4, labels=False)การจัดการความเบ้ด้วยการแปลงลอการิทึม
คุณลักษณะที่เบ้ขวา เช่น รายได้ ราคา และจำนวน ส่งผลเสียต่อโมเดลหลายประเภท การแปลงลอการิทึมจะบีบค่าขนาดใหญ่และทำให้การกระจายสมมาตรมากขึ้น
import numpy as np
# log1p handles zeros safely: log(1 + x)
df["log_income"] = np.log1p(df["income"])รากที่สองและการแปลงรูปแบบอื่น
การแปลงด้วยรากที่สองก็ช่วยลดความเบ้ได้เช่นกัน แต่ทำอย่างนุ่มนวลกว่าลอการิทึม จึงเหมาะกับข้อมูลแบบจำนวน เลือกการแปลงที่ทำให้ฮิสโตแกรมสมมาตรที่สุด
import numpy as np
df["sqrt_count"] = np.sqrt(df["count"])
# inspect df["sqrt_count"].hist() to confirm reduced skewนำทุกอย่างมารวมกัน
ผสานหลายวิธีเข้าด้วยกัน: แปลงคอลัมน์ที่เบ้ด้วยลอการิทึม แบ่งช่วงเมื่อเกณฑ์มีความสำคัญ เพิ่มอัตราส่วนจากความรู้เฉพาะโดเมน และใช้ PolynomialFeatures สำหรับปฏิสัมพันธ์ ตรวจสอบด้วยการตรวจสอบไขว้เสมอว่าคุณลักษณะใหม่ช่วยเพิ่มคะแนนได้จริง
ตรวจสอบความเข้าใจ
ตรวจสอบความรู้เกี่ยวกับวิศวกรรมคุณลักษณะของคุณ
สรุป
สรุป: สร้างคุณลักษณะเพื่อช่วยโมเดลง่าย ๆ PolynomialFeatures ที่ใช้ร่วมกับ degree และ interaction_only จะเพิ่มผลคูณและเลขยกกำลัง (ระวังจำนวนคุณลักษณะที่เพิ่มขึ้นอย่างรวดเร็ว) สร้างอัตราส่วนด้วยตนเองจากความรู้เฉพาะโดเมน แบ่งช่วงด้วย pd.cut/pd.qcut และแก้ความเบ้ด้วยการแปลงลอการิทึมหรือ sqrt ตรวจสอบผลลัพธ์ที่ดีขึ้นเสมอ
คำถามที่พบบ่อย
บทเรียน “การสร้างคุณลักษณะปฏิสัมพันธ์และพหุนาม” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การสร้างคุณลักษณะปฏิสัมพันธ์และพหุนาม” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn AI with Python ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การสร้างคุณลักษณะปฏิสัมพันธ์และพหุนาม”
PolynomialFeatures พจน์ปฏิสัมพันธ์ที่สร้างเอง คุณลักษณะอัตราส่วน และการแบ่งตัวแปรต่อเนื่องเป็นช่วง คุณปฏิบัติ Learn AI with Python ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn AI with Python หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn AI with Python บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “การสร้างคุณลักษณะปฏิสัมพันธ์และพหุนาม” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Learn AI with Python นี้ได้ไหม
ได้ บทเรียน Learn AI with Python ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- วิธีการคัดเลือกคุณลักษณะ
- การสร้างคุณลักษณะปฏิสัมพันธ์และพหุนาม
- การเข้ารหัสเป้าหมายและการจัดการข้อมูลเชิงหมวดหมู่ขั้นสูง
- วิศวกรรมคุณลักษณะอัตโนมัติด้วย Featuretools