ตัวแยกประเภทห้าอันดับแรกที่ควรลองก่อน


25

นอกจากลักษณะลักษณนามที่ชัดเจนเช่น

  • ค่าใช้จ่ายในการคำนวณ
  • คุณลักษณะ / ป้ายกำกับและประเภทข้อมูลที่คาดหวัง
  • ความเหมาะสมสำหรับขนาดและมิติของชุดข้อมูล

ตัวแยกประเภทห้าอันดับแรก (หรือ 10, 20)) ที่ควรลองใช้กับชุดข้อมูลใหม่เป็นอันดับแรกยังไม่ทราบมากนัก (เช่นความหมายและความสัมพันธ์ของคุณลักษณะส่วนบุคคล) ฉันมักจะลอง Naive Bayes, เพื่อนบ้านที่ใกล้ที่สุด, Decision Tree และ SVM - แม้ว่าฉันจะไม่มีเหตุผลที่ดีสำหรับการเลือกนี้นอกเหนือจากที่ฉันรู้จักพวกเขาและส่วนใหญ่เข้าใจว่าพวกเขาทำงานอย่างไร

ฉันเดาว่าควรเลือกตัวแยกประเภทที่ครอบคลุมวิธีการจำแนกประเภททั่วไปที่สำคัญที่สุด คุณจะแนะนำตัวเลือกใดตามเกณฑ์นั้นหรือด้วยเหตุผลอื่นใด


UPDATE:การกำหนดทางเลือกสำหรับคำถามนี้อาจเป็น: "วิธีการทั่วไปในการจำแนกประเภทใดที่มีอยู่และวิธีการเฉพาะใดที่ครอบคลุมวิธีที่สำคัญที่สุด / เป็นที่นิยม / มีแนวโน้ม?"


ฉันคิดว่านี่เป็นสิ่งที่ซ้ำกันของ ( stats.stackexchange.com/questions/3458/… ) คุณค่าเพิ่มเติมของคำถามที่นี่อาจเป็น "เกณฑ์สำหรับการเลือกตัวแยกประเภท" (ซึ่งจะทำให้คำถามเป็นคำถามทั่วไปมาก) หากซ้ำกันให้ลงคะแนนปิดและให้คะแนนสำหรับ cw;)
steffen

@steffen: คำถามอ้างอิงของคุณมีประโยชน์ แต่ฉันคิดว่ามันไม่ซ้ำกัน แน่นอนคำถามของฉันค่อนข้างทั่วไป ฉันไม่ได้กำลังมองหาวิธีการแก้ปัญหาเฉพาะ แต่สำหรับเหตุผลทั่วไปว่าทำไมต้องใช้ผู้เรียนคนไหน - ฉันจะอัพเดทคำถาม
Oben Sonne

คำตอบ:


21

ป่าสุ่ม

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

ข้อเสีย: ช้ากว่าวิธีเล็กน้อยเช่น kNN หรือ NB ทำงานได้ดีกับคลาสที่เท่ากันความถูกต้องแย่กว่า SVM สำหรับปัญหาที่ต้องใช้เคล็ดลับเคอร์เนลเป็นกล่องดำแข็งไม่ชงกาแฟ


1
@mbq (+1) เกี่ยวกับความไม่สมดุลของคลาสเรายังสามารถพึ่งพาการสุ่มตัวอย่างแบบแบ่งชั้นในระหว่างการบรรจุถุง
chl

3
@mbq ไม่ทำกาแฟเหรอ? นั่นเป็นดีลเลอร์ที่นั่น
พระคาร์ดินัล

ขอบคุณสำหรับคำแนะนำในการสุ่มป่า แต่คุณจะลองพวกเขาเท่านั้น? ถ้าคุณไม่พอใจกับผลลัพธ์ล่ะ ตัวแยกประเภทแบบใดที่คุณจะลองอีก หรือคุณจะตอบอย่างไรถ้ามีคนถามว่า: "ทำไมคุณไม่ลองวิธีอื่น"
Oben Sonne

@Oben ฉันเข้าใจว่าคุณกำลังสร้างสระว่ายน้ำหนึ่งประเภทต่อหนึ่งคำตอบ

@mbq: ไม่จริง แต่กลายเป็นสระว่ายน้ำ อาจเป็นไปได้ว่าฉันไม่ได้ทำให้ชัดเจนในคำถาม ที่จริงฉันอยากรู้ว่าชุดตัวแยกประเภทแบบใดควรลองก่อนเพื่อครอบคลุมวิธีการจำแนกทั่วไปที่แตกต่างกัน (ด้วยจุดแข็งและจุดอ่อนต่างกัน) ฉันมักจะถามตัวเองเสมอว่าไม่ควรลองตัวแยกประเภทเพิ่มเติม การรู้ว่าสิ่งที่ฉันได้ลองใช้นั้นเป็นตัวแทนของแนวทาง / แนวโน้มที่เป็นที่นิยมที่สุดจะช่วยได้ที่นี่ แต่สำหรับสิ่งที่ฉันต้องรู้สำหรับชุดตัวแยกประเภทนี้มันเป็นเรื่องจริง (ฉันยังห่างไกลจากการเป็นผู้เชี่ยวชาญสถิติดังนั้นให้ฉันทราบว่าใจของฉันบิดเล็กน้อยที่นี่)
Oben Sonne

7

ลักษณนามกระบวนการเกาส์เซียน (ไม่ได้ใช้การประมาณ Laplace) โดยเฉพาะอย่างยิ่งกับการทำให้ชายขอบมากกว่าการเพิ่มประสิทธิภาพของพารามิเตอร์ไฮเปอร์ ทำไม?

  1. เพราะมันให้การจำแนกที่น่าจะเป็น
  2. คุณสามารถใช้ฟังก์ชันเคอร์เนลที่อนุญาตให้คุณทำงานโดยตรงกับข้อมูลที่ไม่ใช่เวกเตอร์และ / หรือรวมความรู้จากผู้เชี่ยวชาญ
  3. พวกเขาจัดการกับความไม่แน่นอนในการปรับโมเดลให้เหมาะสมและคุณสามารถเผยแพร่ความไม่แน่นอนนั้นไปยังกระบวนการตัดสินใจ
  4. โดยทั่วไปประสิทธิภาพการทำนายที่ดีมาก

ข้อเสีย

  1. ช้า
  2. ต้องใช้หน่วยความจำจำนวนมาก
  3. ทำไม่ได้สำหรับปัญหาขนาดใหญ่

ตัวเลือกแรกแม้ว่าจะเป็นการถดถอยโลจิสติกปกติหรือการถดถอยของสันเขา [โดยไม่ต้องเลือกคุณลักษณะ] - สำหรับปัญหาส่วนใหญ่อัลกอริธึมที่ง่ายมากทำงานได้ค่อนข้างดีและยากที่จะผิด (ในทางปฏิบัติความแตกต่างระหว่างประสิทธิภาพ ระหว่างพนักงานขับรถ)


1

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

  • ลบฟีเจอร์ที่มีค่าที่หายไปมากกว่า X%;
  • ลบคุณสมบัติเด็ดขาดเมื่อค่าเฉพาะได้รับมากกว่า 90-95% ของความถี่สัมพัทธ์
  • ลบคุณสมบัติต่อเนื่องด้วย CV = std / mean <0.1;
  • รับการจัดอันดับพารามิเตอร์เช่น ANOVA สำหรับต่อเนื่องและ Chi-square สำหรับเด็ดขาด;
  • รับคุณลักษณะย่อยบางส่วนที่สำคัญ

จากนั้นฉันมักจะแบ่งเทคนิคการจำแนกเป็น 2 ชุด: กล่องสีขาวและเทคนิคกล่องดำ หากคุณจำเป็นต้องรู้ว่า 'ตัวแยกประเภท' ทำงานอย่างไรคุณควรเลือกในชุดแรกเช่นต้นไม้ตัดสินใจหรือตัวแยกประเภทตามกฎ

หากคุณต้องการจัดประเภทระเบียนใหม่โดยไม่สร้างแบบจำลองควรดูที่ผู้เรียนกระตือรือร้นเช่น KNN

หลังจากนั้นฉันคิดว่าดีกว่าที่จะมีเกณฑ์ระหว่างความแม่นยำและความเร็ว: Neural Network นั้นช้ากว่า SVM เล็กน้อย

นี่เป็นเทคนิคการจำแนกห้าอันดับแรกของฉัน:

  1. ต้นไม้ตัดสินใจ
  2. ลักษณนามตามกฎ;
  3. SMO (SVM);
  4. ไร้เดียงสาเบย์;
  5. โครงข่ายประสาทเทียม

4
-1 เวิร์กโฟลว์ที่ไม่ถูกต้องอย่างแน่นอนสำหรับ p ขนาดใหญ่ขนาดเล็ก n รับประกันการโอเวอร์โหลด FS

1
ไม่ใช่ kNN ที่เป็นผู้เรียนที่ขี้เกียจแทนที่จะเป็นคนที่กระตือรือร้น (เพราะคุณไม่ได้ทำอะไรเลยจริง ๆ จนกว่าคุณจะต้องทำเมื่อรูปแบบที่จะจัดกลุ่มมา)? การประมวลผลล่วงหน้าใด ๆ ที่คุณทำก่อนที่จะใช้ลักษณนามมีแนวโน้มที่จะมีผลกระทบต่อประสิทธิภาพที่ใหญ่กว่าความแตกต่างระหว่างตัวแยกประเภท การเลือกคุณสมบัติเป็นเรื่องยากโดยเฉพาะอย่างยิ่ง (นำไปสู่การปรับขนาดได้ง่ายกว่า) และวิธีการต่างๆเช่น SVM พร้อมการกำหนดมาตรฐานจะทำได้ดีกว่าโดยไม่ต้องเลือกคุณสมบัติ แน่นอนว่าฉันจะไม่แนะนำเครือข่ายประสาทเทียมที่มีโอกาสผิดพลาดมากเกินไป
Dikran Marsupial
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.