เป็นคำถามที่ดีมาก - เป็นโอกาสที่จะแสดงให้เห็นว่าใครจะตรวจสอบข้อบกพร่องและสมมติฐานของวิธีการทางสถิติใด ๆ กล่าวคือสร้างข้อมูลและลองใช้อัลกอริธึมกับมัน!
เราจะพิจารณาสมมติฐานสองข้อของคุณและเราจะเห็นว่าเกิดอะไรขึ้นกับอัลกอริทึม k-mean เมื่อสมมติฐานเหล่านั้นเสีย เราจะยึดข้อมูลสองมิติเนื่องจากง่ายต่อการมองเห็น (ต้องขอบคุณคำสาปของมิติข้อมูลการเพิ่มมิติเพิ่มเติมมีแนวโน้มที่จะทำให้ปัญหาเหล่านี้รุนแรงขึ้นไม่น้อยลง) เราจะทำงานร่วมกับภาษาการเขียนโปรแกรมเชิงสถิติ R: คุณสามารถค้นหารหัสเต็มได้ที่นี่ (และโพสต์ในรูปแบบบล็อกที่นี่ )
การเบี่ยงเบน: สี่ของ Anscombe
ก่อนการเปรียบเทียบ ลองนึกภาพใครบางคนแย้งสิ่งต่อไปนี้:
ฉันอ่านเนื้อหาเกี่ยวกับข้อเสียของการถดถอยเชิงเส้นซึ่งคาดว่าจะมีแนวโน้มเชิงเส้นว่าส่วนที่เหลือจะกระจายตามปกติและไม่มีค่าผิดปกติ แต่การถดถอยเชิงเส้นทั้งหมดกำลังทำคือลดผลรวมของข้อผิดพลาดกำลังสอง (SSE) จากบรรทัดที่ทำนาย นั่นเป็นปัญหาการหาค่าเหมาะที่สุดที่สามารถแก้ไขได้ไม่ว่ารูปร่างของส่วนโค้งหรือการกระจายตัวของเศษซากจะเป็นเท่าไหร่ ดังนั้นการถดถอยเชิงเส้นจึงไม่จำเป็นต้องมีสมมติฐานในการทำงาน
ใช่แล้วการถดถอยเชิงเส้นทำงานได้โดยการลดผลรวมของส่วนที่เหลือกำลังสอง แต่นั่นด้วยตัวเองไม่ได้เป็นเป้าหมายของการถดถอยที่: สิ่งที่เรากำลังพยายามที่จะทำคือการวาดเส้นที่ทำหน้าที่เป็นที่เชื่อถือได้ทำนายเป็นกลางของปีบนพื้นฐานของx ทฤษฎีบท Gauss-มาร์คอฟบอกเราว่าลด SSE สำเร็จที่ goal- แต่ทฤษฎีบทที่วางอยู่บนสมมติฐานเฉพาะบางอย่าง หากสมมติฐานเหล่านั้นใช้งานไม่ได้คุณยังสามารถลด SSE ได้ แต่อาจไม่ทำเช่นนั้นสิ่งใด ลองนึกภาพว่า "คุณขับรถยนต์ด้วยการกดคันเร่ง: การขับรถนั้นเป็นกระบวนการ 'การเหยียบคันเร่ง' สามารถเหยียบคันเร่งได้ไม่ว่าจะมีแก๊สอยู่ในถังมากแค่ไหนดังนั้นแม้ว่าถังนั้นจะว่างเปล่าคุณก็ยังสามารถเหยียบคันเร่งแล้วขับรถได้
แต่การพูดคุยราคาถูก เรามาดูความเย็นความแข็งข้อมูล หรือข้อมูลที่สร้างขึ้นจริง
R2
อาจกล่าวได้ว่า "การถดถอยเชิงเส้นยังคงใช้งานได้ในกรณีเหล่านี้เพราะมันลดผลรวมของกำลังสองของเศษเหลือ" แต่ชัยชนะของ Pyrrhic ! การถดถอยเชิงเส้นจะวาดเส้นเสมอ แต่ถ้าเป็นเส้นที่ไม่มีความหมายใครจะสนใจ?
ดังนั้นตอนนี้เราเห็นว่าการเพิ่มประสิทธิภาพสามารถทำได้ไม่ได้หมายความว่าเราบรรลุเป้าหมาย และเราเห็นว่าการสร้างข้อมูลและการมองเห็นมันเป็นวิธีที่ดีในการตรวจสอบสมมติฐานของแบบจำลอง ลองใช้สัญชาตญาณเราจะต้องใช้มันในอีกสักครู่
สมมติฐานที่ใช้งานไม่ได้: ข้อมูลที่ไม่เป็นทรงกลม
คุณยืนยันว่าอัลกอริทึม k-mean จะทำงานได้ดีบนคลัสเตอร์ที่ไม่ใช่ทรงกลม กลุ่มที่ไม่ใช่ทรงกลมเช่นนี้ ...
บางทีนี่อาจไม่ใช่สิ่งที่คุณคาดหวัง แต่ก็เป็นวิธีที่เหมาะสมอย่างยิ่งในการสร้างกลุ่ม เมื่อดูที่ภาพนี้มนุษย์เราจะจดจำคะแนนธรรมชาติสองกลุ่มได้ทันทีโดยไม่ผิดพลาด ดังนั้นมาดูกันว่า k-mean ทำอย่างไร: การมอบหมายจะแสดงเป็นสีศูนย์ที่ถูกจัดแสดงจะแสดงเป็น X
ดีที่ 's ไม่ถูกต้อง K-หมายความว่าพยายามใส่หมุดสี่เหลี่ยมในรูกลม - พยายามหาจุดศูนย์กลางที่ดีที่มีทรงกลมเรียบร้อยรอบตัว - และมันล้มเหลว ใช่มันยังคงลดผลรวมภายในกลุ่มของกำลังสองให้น้อยที่สุด - แต่ก็เหมือนกับใน Quartet ของ Anscombe ด้านบนมันเป็นชัยชนะของ Pyrrhic!
คุณอาจพูดว่า "นั่นไม่ใช่ตัวอย่างที่ยุติธรรม ... ไม่มีวิธีการจัดกลุ่มที่สามารถค้นหากลุ่มที่แปลกได้อย่างถูกต้อง" ไม่จริง! ลองทำคลัสเตอร์เชื่อมโยง ลำดับชั้นเดียว :
ถูกจับมัน! นี่เป็นเพราะการทำคลัสเตอร์แบบลำดับชั้นเดียวเชื่อมโยงทำให้สมมติฐานที่ถูกต้องสำหรับชุดข้อมูลนี้ (มีอีกสถานการณ์หนึ่งในระดับที่มันล้มเหลว)
คุณอาจพูดว่า "นั่นเป็นกรณีทางพยาธิวิทยาขั้นรุนแรงที่สุด" แต่มันไม่ใช่! ตัวอย่างเช่นคุณสามารถทำให้กลุ่มรอบนอกเป็นครึ่งวงกลมแทนที่จะเป็นวงกลมและคุณจะเห็นว่า k-mean ยังคงทำงานได้ดีมาก (และการจัดกลุ่มแบบลำดับชั้นยังทำได้ไม่ดี) ฉันสามารถสร้างสถานการณ์ที่มีปัญหาอื่น ๆ ได้อย่างง่ายดายและนั่นเป็นเพียงสองมิติ เมื่อคุณทำการจัดกลุ่มข้อมูล 16 มิติมีโรคทุกชนิดที่อาจเกิดขึ้นได้
ท้ายนี้ฉันควรทราบว่า k-mean ยังคงสามารถกู้ได้! หากคุณเริ่มต้นด้วยการแปลงข้อมูลของคุณเป็นพิกัดเชิงขั้วตอนนี้การจัดกลุ่มจะทำงานได้:
นั่นเป็นเหตุผลที่การทำความเข้าใจสมมติฐานที่ใช้เป็นพื้นฐานเป็นสิ่งสำคัญ: มันไม่เพียง แต่บอกคุณเมื่อวิธีมีข้อบกพร่องมันบอกวิธีการแก้ไข
สมมติฐานที่ขาด: กลุ่มที่มีขนาดไม่เท่ากัน
จะทำอย่างไรถ้ากลุ่มมีจำนวนคะแนนไม่เท่ากันซึ่งทำให้การจัดกลุ่ม k-mean แตกด้วย? ลองพิจารณาชุดของกลุ่มนี้ขนาด 20, 100, 500 ฉันสร้างจาก Gaussian หลายตัวแปร:
ดูเหมือนว่าค่าเฉลี่ย k อาจหากลุ่มพวกนั้นใช่ไหม ดูเหมือนว่าทุกอย่างจะถูกสร้างเป็นกลุ่มที่เรียบร้อยและเป็นระเบียบ ดังนั้นลองใช้วิธี k:
อุ๊ยตาย สิ่งที่เกิดขึ้นที่นี่เป็นเรื่องเล็กน้อย ในการค้นหาเพื่อลดผลรวมของสแควร์สภายในคลัสเตอร์ให้น้อยที่สุดอัลกอริทึม k-mean จะให้ "น้ำหนัก" มากขึ้นไปยังกลุ่มใหญ่ ในทางปฏิบัตินั่นหมายความว่ายินดีที่จะให้คลัสเตอร์เล็ก ๆ สิ้นสุดห่างจากศูนย์ใด ๆ ในขณะที่ใช้ศูนย์เหล่านั้นเพื่อ "แยก" คลัสเตอร์ที่ใหญ่กว่า
หากคุณเล่นกับตัวอย่างเหล่านี้เล็กน้อย ( รหัส R ที่นี่! ) คุณจะเห็นว่าคุณสามารถสร้างสถานการณ์จำลองได้มากขึ้นซึ่งค่าเฉลี่ย k ทำให้ค่านั้นผิดพลาดอย่างน่าอาย
สรุป: ไม่มีอาหารกลางวันฟรี
มีการก่อสร้างที่มีเสน่ห์ในคติชนวิทยาคณิตศาสตร์โดยWolpert และ Macreadyเรียกว่า "ทฤษฎีบทอาหารกลางวันฟรี" มันอาจเป็นทฤษฎีบทที่ฉันชื่นชอบในปรัชญาการเรียนรู้ของเครื่องและฉันมีโอกาสที่จะนำมันขึ้นมา (ฉันพูดถึงฉันรักคำถามนี้หรือไม่) แนวคิดพื้นฐานถูกระบุไว้ (ไม่ใช่อย่างจริงจัง) เช่นนี้: " ทุกอัลกอริทึมทำงานได้ดีพอ ๆ กัน "
ตอบโต้ด้วยเสียงง่าย ๆ ? พิจารณาว่าในทุกกรณีที่อัลกอริทึมใช้งานได้ฉันสามารถสร้างสถานการณ์ที่มันล้มเหลวอย่างมาก การถดถอยเชิงเส้นสมมติว่าข้อมูลของคุณตกตามเส้น แต่ถ้าเป็นไปตามคลื่นไซน์ t-test สมมติว่าตัวอย่างแต่ละตัวอย่างมาจากการแจกแจงแบบปกติ: แล้วถ้าคุณโยนออกนอกกลุ่ม อัลกอริธึมการไล่ระดับสีใด ๆ สามารถติดอยู่ใน Maxima ท้องถิ่นและการจำแนกประเภทภายใต้การดูแลใด ๆ ก็สามารถถูกหลอกได้
สิ่งนี้หมายความว่า? หมายความว่าสมมติฐานเป็นที่มาของพลังของคุณ! เมื่อ Netflix แนะนำภาพยนตร์ให้กับคุณก็สมมติว่าถ้าคุณชอบหนังหนึ่งเรื่องคุณจะชอบหนังที่คล้ายกัน (และในทางกลับกัน) ลองจินตนาการถึงโลกที่ไม่เป็นความจริงและรสนิยมของคุณจะถูกสุ่มกระจายออกไปอย่างไร้ที่ติในประเภทนักแสดงและผู้กำกับ อัลกอริทึมการแนะนำของพวกเขาจะล้มเหลวอย่างมาก มันจะสมเหตุสมผลหรือไม่ที่จะพูดว่า "ก็ยังคงลดข้อผิดพลาดกำลังสองที่คาดไว้เอาไว้ดังนั้นอัลกอริทึมก็ยังทำงาน" คุณไม่สามารถสร้างอัลกอริทึมการแนะนำโดยไม่มีการตั้งสมมติฐานเกี่ยวกับรสนิยมของผู้ใช้ - เหมือนกับที่คุณไม่สามารถสร้างอัลกอริทึมการจัดกลุ่มได้โดยไม่ต้องทำการตั้งสมมติฐานเกี่ยวกับลักษณะของกลุ่มเหล่านั้น
ดังนั้นอย่าเพิ่งยอมรับข้อเสียเหล่านี้ รู้จักพวกเขาเพื่อให้พวกเขาสามารถแจ้งอัลกอริทึมที่คุณเลือก ทำความเข้าใจกับพวกเขาดังนั้นคุณสามารถปรับแต่งอัลกอริทึมของคุณและแปลงข้อมูลของคุณเพื่อแก้ปัญหา และรักพวกเขาเพราะถ้านางแบบของคุณไม่มีทางผิดนั่นหมายความว่ามันจะไม่ถูกต้อง