0Pricing
Learn AI with Python · บทเรียน

การสร้างคุณลักษณะปฏิสัมพันธ์และพหุนาม

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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. วิธีการคัดเลือกคุณลักษณะ
  2. การสร้างคุณลักษณะปฏิสัมพันธ์และพหุนาม
  3. การเข้ารหัสเป้าหมายและการจัดการข้อมูลเชิงหมวดหมู่ขั้นสูง
  4. วิศวกรรมคุณลักษณะอัตโนมัติด้วย Featuretools
← กลับไปที่ Learn AI with Python