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

วิธีการคัดเลือกคุณลักษณะ

วิธีแบบกรอง (ความแปรปรวน สหสัมพันธ์) แบบครอบคลุม (RFE) และแบบฝังตัว (การทำให้เป็นปกติแบบ L1)

วิธีการคัดเลือกคุณลักษณะ เป็นบทเรียน Learn AI with Python ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn AI with Python และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน

เหตุใดจึงต้องคัดเลือกคุณลักษณะ

การคัดเลือกคุณลักษณะจะเก็บไว้เฉพาะคอลัมน์ที่มีประโยชน์ที่สุด คุณลักษณะที่น้อยลงทำให้ฝึกโมเดลได้เร็วขึ้น ลดการปรับพอดีเกินไป และตีความได้ง่ายขึ้น การลบสัญญาณรบกวนมักช่วยเพิ่มความแม่นยำได้ด้วย

วิธีการสามตระกูล

วิธีการคัดเลือกแบ่งออกเป็นสามกลุ่ม:

  • การกรองจัดอันดับคุณลักษณะตามสถิติ (รวดเร็ว ไม่ขึ้นกับโมเดล)
  • แบบห่อหุ้มค้นหาชุดย่อยด้วยการฝึกโมเดล (ช้า แต่แม่นยำ)
  • แบบฝังในตัวการคัดเลือกเกิดขึ้นระหว่างการฝึกโมเดล

VarianceThreshold

วิธีการกรองที่ง่ายที่สุด: VarianceThreshold จะลบคุณลักษณะที่มีความแปรปรวนต่ำกว่าค่าเกณฑ์ตัด คอลัมน์ที่แทบไม่เปลี่ยนแปลงไม่มีข้อมูลที่เป็นประโยชน์

from sklearn.feature_selection import VarianceThreshold

sel = VarianceThreshold(threshold=0.01)
X_reduced = sel.fit_transform(X)
print("Kept:", X_reduced.shape[1], "of", X.shape[1])

SelectKBest พร้อม f_classif

SelectKBest จะเก็บคุณลักษณะที่มีคะแนนสูงสุดจำนวน K รายการ เมื่อใช้ร่วมกับ f_classif จะใช้การทดสอบ F แบบ ANOVA เพื่อวัดว่าคุณลักษณะแต่ละรายการสัมพันธ์กับป้ายกำกับคลาสมากเพียงใด

from sklearn.feature_selection import SelectKBest, f_classif

sel = SelectKBest(score_func=f_classif, k=10)
X_best = sel.fit_transform(X, y)
print(sel.get_support(indices=True))

ข้อมูลร่วม

mutual_info_classif จะวัดการพึ่งพากันระหว่างคุณลักษณะกับตัวแปรเป้าหมายทุกรูปแบบ รวมถึงแบบไม่เป็นเชิงเส้น ต่างจากการทดสอบ F ตรงที่สามารถจับความสัมพันธ์แบบไม่เป็นเชิงเส้นซึ่ง ANOVA มองไม่เห็น

from sklearn.feature_selection import SelectKBest, mutual_info_classif

sel = SelectKBest(score_func=mutual_info_classif, k=10)
X_mi = sel.fit_transform(X, y)

การเปรียบเทียบ f_classif กับ mutual_info

f_classif ทำงานรวดเร็วและตรวจจับความสัมพันธ์เชิงเส้น ส่วน mutual_info_classif ช้ากว่าแต่ตรวจจับความสัมพันธ์แบบไม่เป็นเชิงเส้นได้ หากคาดว่าความสัมพันธ์มีความซับซ้อน ให้เลือกใช้ข้อมูลร่วม

import numpy as np
from sklearn.feature_selection import f_classif, mutual_info_classif

f_scores, _ = f_classif(X, y)
mi_scores = mutual_info_classif(X, y)
print("F-test top:", np.argsort(f_scores)[::-1][:5])
print("MI top:", np.argsort(mi_scores)[::-1][:5])

การตัดคุณลักษณะแบบวนซ้ำ

RFE เป็นวิธีแบบห่อหุ้ม โดยจะฝึกโมเดล ลบคุณลักษณะที่อ่อนแอที่สุด แล้วทำซ้ำ วิธีนี้ใช้สัญญาณความสำคัญจากโมเดลเองเพื่อจัดอันดับคุณลักษณะ

from sklearn.feature_selection import RFE
from sklearn.linear_model import LogisticRegression

rfe = RFE(estimator=LogisticRegression(max_iter=1000), n_features_to_select=10)
rfe.fit(X, y)
print(rfe.support_)

RFECV: การเลือกจำนวนโดยอัตโนมัติ

RFECV เพิ่มการตรวจสอบไขว้ให้กับ RFE เพื่อค้นหาจำนวนคุณลักษณะที่เหมาะสมที่สุดจากคะแนนการตรวจสอบ แทนการเดาจำนวนไว้ตายตัว

from sklearn.feature_selection import RFECV
from sklearn.ensemble import RandomForestClassifier

rfecv = RFECV(
    estimator=RandomForestClassifier(),
    cv=5,
    scoring="accuracy",
)
rfecv.fit(X, y)
print("Optimal features:", rfecv.n_features_)

SelectFromModel พร้อมแลสโซ

การคัดเลือกแบบฝังในตัว: แลสโซ (L1) จะลดค่าสัมประสิทธิ์ที่ไม่สำคัญให้เป็นศูนย์พอดี จากนั้น SelectFromModel จะเก็บไว้เฉพาะค่าสัมประสิทธิ์ที่ไม่เป็นศูนย์

from sklearn.feature_selection import SelectFromModel
from sklearn.linear_model import Lasso

sel = SelectFromModel(Lasso(alpha=0.01))
sel.fit(X, y)
X_lasso = sel.transform(X)
print("Kept:", X_lasso.shape[1])

SelectFromModel พร้อมค่าความสำคัญจากต้นไม้

SelectFromModel ยังทำงานร่วมกับตัวประมาณค่าใด ๆ ที่เปิดเผย feature_importances_ ได้ เช่น ป่าสุ่ม ตั้งค่า threshold เป็นค่าอย่างค่าเฉลี่ยหรือค่ามัธยฐาน

from sklearn.feature_selection import SelectFromModel
from sklearn.ensemble import RandomForestClassifier

sel = SelectFromModel(
    RandomForestClassifier(n_estimators=200),
    threshold="median",
)
sel.fit(X, y)

การเลือกวิธีการ

เริ่มด้วยวิธีกรองที่มีต้นทุนต่ำ (VarianceThreshold, SelectKBest) เพื่อลบข้อมูลที่ไม่จำเป็นอย่างเห็นได้ชัด ใช้ SelectFromModel แบบฝังในตัวเพื่อให้ได้สมดุลที่ดี เลือกใช้ RFECV เมื่อความแม่นยำสำคัญที่สุดและมีทรัพยากรประมวลผลเพียงพอ

ตรวจสอบความเข้าใจ

ตรวจสอบความรู้เกี่ยวกับการคัดเลือกคุณลักษณะของคุณ

สรุป

สรุป: การคัดเลือกคุณลักษณะประกอบด้วยวิธีกรอง (VarianceThreshold, SelectKBest ร่วมกับ f_classif หรือ mutual_info_classif) วิธีแบบห่อหุ้ม (RFECV) และวิธีแบบฝังในตัว (SelectFromModel ร่วมกับแลสโซหรือค่าความสำคัญจากต้นไม้) วิธีกรองเร็วที่สุด ส่วน RFECV แม่นยำที่สุด ใช้ข้อมูลร่วมกับความสัมพันธ์แบบไม่เป็นเชิงเส้น

คำถามที่พบบ่อย

บทเรียน “วิธีการคัดเลือกคุณลักษณะ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “วิธีการคัดเลือกคุณลักษณะ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn AI with Python ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “วิธีการคัดเลือกคุณลักษณะ”

วิธีแบบกรอง (ความแปรปรวน สหสัมพันธ์) แบบครอบคลุม (RFE) และแบบฝังตัว (การทำให้เป็นปกติแบบ L1) คุณปฏิบัติ Learn AI with Python ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn AI with Python หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn AI with Python บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “วิธีการคัดเลือกคุณลักษณะ” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Learn AI with Python นี้ได้ไหม

ได้ บทเรียน Learn AI with Python ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

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