เมื่อใดที่ฉันควรใช้ Gini Impurity เมื่อเทียบกับการได้รับข้อมูล


66

ใครบางคนสามารถอธิบายเหตุผลเบื้องหลังความไม่บริสุทธิ์ของ GiniกับInformation gain (อิงจากเอนโทรปี) ได้หรือไม่?

ตัวชี้วัดใดดีกว่าที่จะใช้ในสถานการณ์ต่างๆในขณะที่ใช้แผนผังการตัดสินใจ


5
@ Anony-Mousse ฉันเดาว่ามันชัดเจนก่อนความคิดเห็นของคุณ คำถามไม่ใช่ว่าทั้งสองมีข้อดีของพวกเขา แต่ในสถานการณ์ที่หนึ่งดีกว่าอีก
Martin Thoma

ฉันได้เสนอ "การได้รับข้อมูล" แทนที่จะเป็น "Entropy" เนื่องจากมันค่อนข้างใกล้กว่า (IMHO) ตามที่ระบุไว้ในลิงก์ที่เกี่ยวข้อง จากนั้นคำถามที่ถูกถามในรูปแบบที่แตกต่างกันเมื่อจะใช้การปนเปื้อนของ Gini และเมื่อใดที่จะใช้ข้อมูลได้
Laurent Duval

1
ฉันโพสต์ที่นี่เป็นการตีความอย่างง่าย ๆ เกี่ยวกับความไม่บริสุทธิ์ของ Gini ที่อาจเป็นประโยชน์
Picaud Vincent

คำตอบ:


47

ความไม่บริสุทธิ์ของ Gini และ Information Gain Entropy นั้นค่อนข้างเหมือนกัน และผู้คนก็ใช้ค่านิยมแทนกันได้ ด้านล่างเป็นสูตรของทั้งสอง:

  1. Gini:Gini(E)=1j=1cpj2
  2. Entropy:H(E)=j=1cpjlogpj

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

ตัวชี้วัดใดดีกว่าที่จะใช้ในสถานการณ์ต่างๆในขณะที่ใช้แผนผังการตัดสินใจ

ความไม่บริสุทธิ์ของ Gini ด้วยเหตุผลที่กล่าวข้างต้น

ดังนั้นพวกเขาจึงค่อนข้างเหมือนกันเมื่อพูดถึงการวิเคราะห์ CART

การอ้างอิงที่เป็นประโยชน์สำหรับการเปรียบเทียบการคำนวณของทั้งสองวิธี


1
เป็นเรื่องธรรมดามากที่จะเห็นสูตรของเอนโทรปีในขณะที่สิ่งที่ใช้จริงๆในต้นไม้ตัดสินใจดูเหมือนว่าเอนโทรปีแบบมีเงื่อนไข ฉันคิดว่ามันเป็นความแตกต่างที่สำคัญหรือขาดอะไรบางอย่าง?
user1700890

@ user1700890 อัลกอริทึม ID3 ใช้ข้อมูล ได้รับเอนโทรปี ฉันจำเป็นต้องอ่านข้อมูลเกี่ยวกับเอนโทรปีแบบมีเงื่อนไข อาจเป็นการปรับปรุงที่เหนือกว่า ID3 :)
Dawny33

1
ฉันคิดว่าคำจำกัดความของคุณเกี่ยวกับ gini impurtiy อาจจะผิด: en.wikipedia.org/wiki/Decision_tree_learning#Gini_impurity
Martin Thoma

22

โดยทั่วไปประสิทธิภาพของคุณจะไม่เปลี่ยนแปลงไม่ว่าคุณจะใช้สิ่งเจือปน Gini หรือเอนโทรปี

Laura Elena Raileanu และ Kilian Stoffel เปรียบเทียบทั้งใน " การเปรียบเทียบเชิงทฤษฎีระหว่างดัชนี gini และเกณฑ์การได้รับข้อมูล " ข้อสังเกตที่สำคัญที่สุดคือ:

  • มันมีความสำคัญใน 2% ของกรณีไม่ว่าคุณจะใช้สิ่งเจือปนจินหรือเอนโทรปี
  • เอนโทรปีอาจจะช้ากว่าเล็กน้อยในการคำนวณ (เพราะมันใช้ประโยชน์จากลอการิทึม)

ฉันเคยบอกว่าทั้งสองตัวชี้วัดมีอยู่เพราะพวกเขาปรากฏตัวในสาขาวิชาวิทยาศาสตร์ที่แตกต่างกัน


16

สำหรับกรณีของตัวแปรที่มีค่าสองค่าปรากฏขึ้นด้วยเศษส่วน f และ (1-f)
gini และ entropy จะได้รับโดย:
gini = 2 * f (1-f)
entropy = f * ln (1 / f) + (1-f) * ln (1 / (1-f))
มาตรการเหล่านี้คล้ายกันมากหากปรับเป็น 1.0 (การวางแผน 2 * gini และ entropy / ln (2)):

ปรับค่า Gini (y4, purple) และ Entropy (y3, green) เพื่อทำการเปรียบเทียบ


14

Gini มีไว้สำหรับแอตทริบิวต์ต่อเนื่องและ Entropy มีไว้สำหรับแอตทริบิวต์ที่เกิดขึ้นในคลาส

Giniคือการลดการจำแนกประเภท
เอนโทรปีสำหรับการวิเคราะห์เชิงสำรวจ

เอนโทรปีจะคำนวณช้ากว่าเล็กน้อย


7

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

0<u<1,log(1u)=uu2/2u3/3+0<p<1,log(p)=p1(1p)2/2(1p)3/3+
0<p<1,plog(p)=p(1p)+p(1p)2/2+p(1p)3/3+
เกณฑ์ Gini และ Entropy ปกติ

ในที่สุดตามที่อธิบายไว้โดย @NIMISHAN Gini เหมาะสมกว่าที่จะลดความผิดพลาดของการจับคู่เนื่องจากมีสัดส่วนเท่ากับ 0.5 ในขณะที่เอนโทรปีจะลงโทษความน่าจะเป็นที่น้อยลง


3

เอนโทรปีใช้เวลาในการคำนวณมากกว่า Gini Index เล็กน้อยเนื่องจากการคำนวณบันทึกอาจเป็นสาเหตุที่ดัชนี Gini กลายเป็นตัวเลือกเริ่มต้นสำหรับอัลกอริธึม ML มากมาย แต่จากตันและ al book ความรู้เบื้องต้นเกี่ยวกับการทำเหมืองข้อมูล

"การวัดความไม่บริสุทธิ์ค่อนข้างสอดคล้องกัน ... จริง ๆ แล้วกลยุทธ์ที่ใช้ในการตัดต้นไม้มีผลกระทบต่อต้นไม้สุดท้ายมากกว่าทางเลือกของการวัดที่ไม่บริสุทธิ์"

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

ด้วย "เมธอด Gini ทำงานเฉพาะเมื่อตัวแปรเป้าหมายเป็นตัวแปรไบนารี่" - เรียนรู้การวิเคราะห์เชิงทำนายด้วย Python


3

ฉันได้ทำการเพิ่มประสิทธิภาพการจำแนกเลขฐานสองสำหรับสัปดาห์ที่ผ่านมา + และในทุกกรณีเอนโทรปีมีประสิทธิภาพสูงกว่า gini อย่างมาก นี่อาจเป็นชุดข้อมูลที่เฉพาะเจาะจง แต่ดูเหมือนว่าจะลองทั้งสองอย่างในขณะที่การปรับพารามิเตอร์ไฮเปอร์พารามิเตอร์เป็นตัวเลือกที่มีเหตุผลแทนที่จะใช้การตั้งสมมติฐานเกี่ยวกับตัวแบบล่วงหน้า

คุณไม่มีทางรู้ว่าข้อมูลจะตอบสนองอย่างไรจนกว่าคุณจะเรียกใช้สถิติ


0

ตามหลักการ parsimony Gini มีประสิทธิภาพเหนือกว่าเอนโทรปีในขณะที่การคำนวณง่ายขึ้น (บันทึกชัดเจนว่ามีการคำนวณมากกว่าที่เกี่ยวข้องมากกว่าการคูณแบบธรรมดาในโปรเซสเซอร์ / ระดับเครื่อง)

แต่เอนโทรปีมีข้อได้เปรียบในบางกรณีข้อมูลที่เกี่ยวข้องกับความไม่สมดุลสูง

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

หากการแจกแจงความน่าจะเป็นข้อมูลของคุณเป็นเลขชี้กำลังหรือ Laplace (เช่นในกรณีของการเรียนรู้อย่างลึกล้ำที่เราต้องการการแจกแจงความน่าจะเป็นที่จุดคม) เอนโทรปีมีค่าสูงกว่า Gini

เพื่อยกตัวอย่างถ้าคุณมี 2 เหตุการณ์หนึ่งความน่าจะเป็น. 01 และความน่าจะเป็น. 99 อื่น ๆ

ใน Gini Prob sq จะเป็น. 01 ^ 2 + .99 ^ 2, .0001 + .9801 หมายถึงความน่าจะเป็นที่ต่ำกว่าไม่ได้เล่นบทบาทใด ๆ เนื่องจากทุกอย่างถูกควบคุมโดยความน่าจะเป็นส่วนใหญ่

ตอนนี้ในกรณีของเอนโทรปี. 01 * log (.01) +. 99 * log (.99) = .01 * (- 2) + .99 * (-. 00436) = -.02-.00432 ตอนนี้ในกรณีนี้ เห็นได้ชัดว่าความน่าจะเป็นที่ต่ำกว่าจะได้รับน้ำหนักที่ดีขึ้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.