ผมถือว่าเอนโทรปีถูกกล่าวถึงในบริบทของการสร้างต้นไม้ตัดสินใจ
เพื่อแสดงให้เห็นว่าจินตนาการถึงภาระหน้าที่ของการเรียนรู้ที่จะจำแนกชื่อแรกออกเป็นกลุ่มชาย / หญิง ที่ได้รับรายชื่อแต่ละชื่อที่มีป้ายกำกับอย่างใดอย่างหนึ่งm
หรือf
เราต้องการเรียนรู้รูปแบบที่เหมาะกับข้อมูลและสามารถใช้ในการทำนายเพศของชื่อใหม่ที่มองไม่เห็น
name gender
----------------- Now we want to predict
Ashley f the gender of "Amro" (my name)
Brian m
Caroline f
David m
ขั้นแรกคือการตัดสินใจว่าคุณลักษณะของข้อมูลใดที่เกี่ยวข้องกับคลาสเป้าหมายที่เราต้องการทำนาย ตัวอย่างคุณสมบัติบางประการประกอบด้วย: ตัวอักษรตัวแรก / ตัวสุดท้ายความยาวจำนวนเสียงสระมันลงท้ายด้วยเสียงสระ ฯลฯ ดังนั้นหลังจากการแยกฟีเจอร์ข้อมูลของเราจะมีลักษณะดังนี้:
# name ends-vowel num-vowels length gender
# ------------------------------------------------
Ashley 1 3 6 f
Brian 0 2 5 m
Caroline 1 4 8 f
David 0 2 5 m
เป้าหมายคือการสร้างต้นไม้ตัดสินใจ ตัวอย่างของต้นไม้จะเป็น:
length<7
| num-vowels<3: male
| num-vowels>=3
| | ends-vowel=1: female
| | ends-vowel=0: male
length>=7
| length=5: male
โดยทั่วไปแต่ละโหนดเป็นตัวแทนของการทดสอบดำเนินการในคุณลักษณะเดียวและเราไปทางซ้ายหรือขวาขึ้นอยู่กับผลของการทดสอบ เราทำการสำรวจต้นไม้จนกว่าจะถึงโหนดใบซึ่งมีการทำนายระดับ ( m
หรือf
)
ดังนั้นถ้าเราเรียกชื่อAmroลงต้นไม้ต้นนี้เราจะเริ่มต้นด้วยการทดสอบ " คือความยาว <7? " และคำตอบคือใช่แล้วเราจึงลงไปที่สาขานั้น ต่อไปนี้สาขาการทดสอบต่อไป " คือจำนวนของสระ <3? " อีกครั้งประเมินจริง สิ่งนี้นำไปสู่โหนดใบที่มีป้ายกำกับm
และทำให้การคาดคะเนเป็นเพศชาย (ซึ่งฉันเกิดขึ้นดังนั้นต้นไม้จึงทำนายผลลัพธ์ได้อย่างถูกต้อง )
แผนผังการตัดสินใจสร้างขึ้นจากบนลงล่างแต่คำถามคือคุณเลือกคุณลักษณะที่จะแยกที่แต่ละโหนดได้อย่างไร คำตอบคือค้นหาคุณสมบัติที่ดีที่สุดในการแยกคลาสเป้าหมายออกเป็นโหนดชายด์ที่เป็นไปได้ที่ดีที่สุด (เช่น: โหนดที่ไม่มีส่วนผสมของทั้งชายและหญิง
วัดนี้มีความบริสุทธิ์ที่เรียกว่าข้อมูล เพราะมันหมายถึงจำนวนข้อมูลที่คาดว่าจะต้องระบุว่าควรมีการจำแนกประเภทอินสแตนซ์ใหม่ (ชื่อ) หรือไม่โดยระบุตัวอย่างที่มาถึงโหนด เราคำนวณตามจำนวนของคลาสชายและหญิงที่โหนด
เอนโทรปีในทางตรงกันข้ามเป็นการวัดความไม่บริสุทธิ์ (ตรงกันข้าม) มันถูกกำหนดไว้สำหรับคลาสไบนารีที่มีค่าa
/b
เป็น:
Entropy = - p(a)*log(p(a)) - p(b)*log(p(b))
นี้ฟังก์ชั่นเอนโทรปีไบนารีเป็นที่ปรากฎในภาพด้านล่าง (ตัวแปรสุ่มสามารถใช้เวลาหนึ่งในสองค่า) มันถึงค่าสูงสุดเมื่อความน่าจะเป็นp=1/2
หมายความว่าp(X=a)=0.5
หรือในทำนองเดียวกันp(X=b)=0.5
มีโอกาส 50% / 50% ในการเป็นอย่างใดอย่างหนึ่งa
หรือb
(ความไม่แน่นอนสูงสุดอยู่ที่) ฟังก์ชั่นเอนโทรปีคืออย่างน้อยศูนย์เมื่อความน่าจะเป็นp=1
หรือp=0
ด้วยความเชื่อมั่นที่สมบูรณ์ ( p(X=a)=1
หรือp(X=a)=0
ตามลำดับหมายถึงหลังp(X=b)=1
)
แน่นอนว่านิยามของเอนโทรปีสามารถวางนัยสำหรับตัวแปรสุ่มแบบแยกแบบ X ที่มีผลลัพธ์ N (ไม่ใช่แค่สอง):
( log
โดยปกติในสูตรจะใช้เป็นลอการิทึมไปยังฐาน 2 )
กลับไปที่ภารกิจการจำแนกชื่อของเราลองดูตัวอย่าง ลองจินตนาการถึงบางจุดในระหว่างกระบวนการสร้างต้นไม้เรากำลังพิจารณาการแยกดังต่อไปนี้:
ends-vowel
[9m,5f] <--- the [..,..] notation represents the class
/ \ distribution of instances that reached a node
=1 =0
------- -------
[3m,4f] [6m,1f]
ที่คุณสามารถดูก่อนที่จะแยกเรามี 9 เพศชายและเพศหญิง 5 คือและP(m)=9/14
P(f)=5/14
ตามคำนิยามของเอนโทรปี:
Entropy_before = - (5/14)*log2(5/14) - (9/14)*log2(9/14) = 0.9403
ต่อไปเราเปรียบเทียบกับเอนโทรปีที่คำนวณหลังจากพิจารณาการแยกโดยดูที่สาขาย่อยของเด็กสองแห่ง ในสาขาด้านซ้ายของends-vowel=1
เรามี:
Entropy_left = - (3/7)*log2(3/7) - (4/7)*log2(4/7) = 0.9852
และสาขาที่ถูกต้องของends-vowel=0
เรามี:
Entropy_right = - (6/7)*log2(6/7) - (1/7)*log2(1/7) = 0.5917
เรารวมเอนโทรปีด้านซ้าย / ขวาโดยใช้จำนวนอินสแตนซ์แต่ละสาขาเป็นตัวประกอบน้ำหนัก (อินสแตนซ์ 7 ตัวถูกทิ้งและ 7 อินสแตนซ์ถูกต้อง) และรับเอนโทรปีสุดท้ายหลังจากการแยก:
Entropy_after = 7/14*Entropy_left + 7/14*Entropy_right = 0.7885
ตอนนี้โดยการเปรียบเทียบเอนโทรปีก่อนและหลังการแยกเราได้รับการวัดการรับข้อมูลหรือจำนวนข้อมูลที่เราได้รับจากการทำการแยกโดยใช้คุณสมบัติพิเศษนั้น:
Information_Gain = Entropy_before - Entropy_after = 0.1518
คุณสามารถตีความการคำนวณข้างต้นดังต่อไปนี้: โดยทำการแยกด้วยend-vowels
คุณลักษณะเราสามารถลดความไม่แน่นอนในผลลัพธ์การทำนายต้นไม้ย่อยได้ด้วยจำนวนเล็กน้อย 0.1518 (วัดเป็นบิตเป็นหน่วยของข้อมูล )
ที่โหนดของต้นไม้แต่ละการคำนวณนี้จะดำเนินการสำหรับทุกคุณลักษณะและคุณสมบัติที่มีการได้รับข้อมูลที่ใหญ่ที่สุดถูกเลือกสำหรับการแยกในโลภลักษณะ (จึงนิยมคุณลักษณะที่ผลิตบริสุทธิ์แยกกับความไม่แน่นอนต่ำ / เอนโทรปี) กระบวนการนี้ถูกนำไปใช้ซ้ำจากรูทโหนดลงและหยุดเมื่อโหนดโหนดมีอินสแตนซ์ทั้งหมดที่มีคลาสเดียวกัน (ไม่จำเป็นต้องแยกอีกต่อไป)
โปรดทราบว่าฉันข้ามบางรายละเอียดที่อยู่นอกเหนือขอบเขตของการโพสต์นี้รวมถึงวิธีการจัดการกับคุณลักษณะที่เป็นตัวเลข , ค่าที่ขาดหาย , overfittingและการตัดแต่งกิ่งต้นไม้ ฯลฯ ..