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

LIME: คำอธิบายเฉพาะที่ที่ตีความได้

lime.tabular.LimeTabularExplainer การรบกวนข้อมูลนำเข้า และการประมาณเชิงเส้นเฉพาะที่

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

LIME คืออะไร

LIME (คำอธิบายเฉพาะที่ตีความได้และไม่ขึ้นกับโมเดล) อธิบายการทำนายหนึ่งรายการโดยฝึกโมเดลที่เรียบง่ายและตีความได้ เช่น การถดถอยเชิงเส้น เพื่อเลียนแบบพฤติกรรมของโมเดลที่ซับซ้อนในบริเวณเล็ก ๆ รอบอินสแตนซ์นั้น

เฉพาะที่ ไม่ใช่ภาพรวม

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

LIME ทำงานอย่างไร

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

ไม่ขึ้นกับโมเดล

เนื่องจาก LIME เรียกใช้เพียงฟังก์ชันทำนายของโมเดล จึงทำงานได้กับตัวจำแนกประเภทหรือตัวถดถอยใด ๆ ไม่ว่าจะเป็นโครงข่ายประสาท การเพิ่มพูนแบบเกรเดียนต์ หรือแม้แต่ส่วนเชื่อมต่อโปรแกรมประยุกต์ภายนอก LIME มองโมเดลเป็นกล่องดำ

LimeTabularExplainer

สำหรับข้อมูลแบบตาราง คุณสร้าง LimeTabularExplainer จากข้อมูลฝึกสอนและชื่อคุณลักษณะ เครื่องมือนี้ใช้การกระจายของข้อมูลฝึกสอนเพื่อสร้างการปรับเปลี่ยนที่สมจริง

from lime.lime_tabular import LimeTabularExplainer

explainer = LimeTabularExplainer(
    training_data=X_train.values,
    feature_names=X_train.columns.tolist(),
    class_names=["denied", "approved"],
    mode="classification",
)

explain_instance

หากต้องการอธิบายแถวหนึ่งรายการ ให้เรียกใช้ explain_instance พร้อมกับแถวนั้นและฟังก์ชัน predict_proba ของโมเดล LIME จะปรับเปลี่ยนข้อมูลรอบแถวนั้นแล้วฝึกโมเดลตัวแทนเฉพาะที่

exp = explainer.explain_instance(
    data_row=X_test.values[0],
    predict_fn=model.predict_proba,
    num_features=5,
)

predict_proba ไม่ใช่การทำนายผล

LIME สำหรับการจำแนกประเภทต้องใช้ความน่าจะเป็น ไม่ใช่ป้ายกำกับแบบตายตัว เพราะโมเดลตัวแทนจะทำการถดถอยบนพื้นผิวความน่าจะเป็น ให้ส่ง model.predict_proba เสมอ (หรือฟังก์ชันใด ๆ ที่คืนค่าความน่าจะเป็นของแต่ละประเภท)

พารามิเตอร์ num_features

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

การอ่านค่าน้ำหนักคุณลักษณะ

exp.as_list()คืนค่าคำอธิบายในรูปคู่ (เงื่อนไขของคุณลักษณะ, น้ำหนัก) น้ำหนักที่เป็นบวกจะผลักการทำนายไปยังประเภทที่ทำนายไว้ ส่วนน้ำหนักที่เป็นลบจะผลักออกจากประเภทนั้น

for feature, weight in exp.as_list():
    print(feature, round(weight, 3))
# income > 50000     0.21
# debt_ratio > 0.4  -0.18

การแสดงภาพคำอธิบาย

LIME สามารถแสดงคำอธิบายเป็นแผนภูมิแบบโต้ตอบหรือมุมมองสมุดบันทึก โดยแสดงแท่งส่วนสนับสนุนและค่าความน่าจะเป็นที่ทำนายไว้เคียงข้างกัน

exp.show_in_notebook(show_table=True)
# or
fig = exp.as_pyplot_figure()

LIME กับ SHAP

ทั้งสองวิธีอธิบายการทำนายรายบุคคลได้ แต่มีความแตกต่างกัน:

  • SHAPมีหลักประกันทางทฤษฎีที่แข็งแกร่ง (การบวกและความสอดคล้องกัน) และมีมุมมองในภาพรวม
  • LIMEทำความเข้าใจได้รวดเร็วกว่า ไม่ขึ้นกับโมเดล และเข้าใจง่าย แต่โมเดลตัวแทนเฉพาะที่เป็นเพียงการประมาณ ซึ่งอาจเปลี่ยนแปลงตามความสุ่มของการปรับเปลี่ยนข้อมูล

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

ทดสอบความรู้เกี่ยวกับ LIME ของคุณ

ทบทวน

คุณได้เรียนรู้การอธิบายเฉพาะที่ด้วย LIME:

  • LimeTabularExplainerสร้างจากข้อมูลฝึกสอนและชื่อคุณลักษณะ
  • explain_instanceใช้ model.predict_proba เพื่อฝึกโมเดลตัวแทนเฉพาะที่
  • จำนวนคุณลักษณะควบคุมขนาดของคำอธิบาย
  • as_list()คืนค่าน้ำหนักคุณลักษณะที่มีเครื่องหมายบวกหรือลบ
  • LIME ไม่ขึ้นกับโมเดลและทำงานเฉพาะที่ จึงช่วยเสริม SHAP

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

บทเรียน “LIME: คำอธิบายเฉพาะที่ที่ตีความได้” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “LIME: คำอธิบายเฉพาะที่ที่ตีความได้”

lime.tabular.LimeTabularExplainer การรบกวนข้อมูลนำเข้า และการประมาณเชิงเส้นเฉพาะที่ คุณปฏิบัติ Learn AI with Python ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

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

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

บทเรียน “LIME: คำอธิบายเฉพาะที่ที่ตีความได้” ใช้เวลานานแค่ไหน

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

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

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

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

  1. การตรวจจับอคติในโมเดลแมชชีนเลิร์นนิง
  2. ค่า SHAP สำหรับการอธิบายแบบจำลอง
  3. LIME: คำอธิบายเฉพาะที่ที่ตีความได้
  4. กรอบจริยธรรมและธรรมาภิบาลด้านปัญญาประดิษฐ์
← กลับไปที่ Learn AI with Python