ทางเลือกอื่นสำหรับต้นไม้ที่มีการจำแนกที่ดีกว่า (เช่น: CV)


23

ฉันกำลังมองหาทางเลือกในการจำแนกต้นไม้ซึ่งอาจให้พลังการทำนายที่ดีกว่า

ข้อมูลที่ฉันจัดการมีปัจจัยสำหรับทั้งคำอธิบายและตัวแปรอธิบาย

ฉันจำได้ว่าเคยเจอป่าสุ่มและเครือข่ายประสาทเทียมในบริบทนี้แม้ว่าจะไม่เคยลองมาก่อนมีผู้สมัครที่ดีอีกคนหนึ่งสำหรับงานสร้างแบบจำลอง (เช่นใน R หรือไม่)


5
ไม่ต้องกังวลกับเครือข่ายประสาทเทียมนี่เป็นเทคโนโลยีที่ล้าสมัย

1
@mbq คุณยังคงยึดถือคำสั่งนี้หรือไม่?
rhombidodecahedron

@rhombidodecahedron แน่นอนว่าเล่นกับ NNs ในปี 2010 และคุณจะเห็นด้วย นอกจากนี้ฉันสงสัยว่ารุ่น DL ใด ๆ ที่จะนำข้อมูลใด ๆ ลงในตารางที่มีขนาดเล็ก

คำตอบ:


25

ฉันคิดว่ามันจะคุ้มค่าให้ลองสุ่มป่า ( randomForest ); อ้างอิงบางคนถูกจัดให้อยู่ในการตอบสนองต่อคำถามที่เกี่ยวข้อง: การเลือกคุณลักษณะสำหรับ“สุดท้าย” รูปแบบเมื่อดำเนินการตรวจสอบข้ามในการเรียนรู้เครื่อง ; โมเดลรถเข็นสามารถสร้างความแข็งแกร่งได้หรือไม่? . การเพิ่ม / บรรจุถุงทำให้พวกมันมีเสถียรภาพมากกว่ารถเข็นเดี่ยวซึ่งเป็นที่ทราบกันดีว่ามีความไวต่อการก่อกวนเล็กน้อย ผู้เขียนบางคนแย้งว่ามันทำงานได้ดีเท่ากับ SVM หรือGradient Boosting Machines (ดูเช่น Cutler et al., 2009) ฉันคิดว่าพวกเขามีประสิทธิภาพสูงกว่า NN อย่างแน่นอน

Boulesteix และ Strobl ให้ภาพรวมที่ดีของตัวแยกประเภทต่างๆในการเลือกตัวจําแนกที่ดีที่สุดและอคติเชิงลบในการประมาณอัตราข้อผิดพลาด: การศึกษาเชิงประจักษ์เกี่ยวกับการทำนายเชิงมิติ (BMC MRM 2009 9: 85) ผมเคยได้ยินของการศึกษาที่ดีอีกที่ประชุม IV EAMซึ่งควรจะอยู่ภายใต้การตรวจสอบในสถิติในการแพทย์ ,

João Maroco , Dina Silva, Manuela Guerreiro, Alexandre de Mendonça ป่าสุ่มมีประสิทธิภาพเหนือกว่าโครงข่ายประสาทสนับสนุนเครื่องเวกเตอร์และตัวแยกประเภทการวิเคราะห์แยกแยะหรือไม่? กรณีศึกษาเกี่ยวกับวิวัฒนาการของภาวะสมองเสื่อมในผู้ป่วยสูงอายุที่มีปัญหาการรับรู้

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

glmnetแพคเกจจากฟรีดแมนและ Coll. การดำเนินการลงโทษ GLM (ดูตรวจสอบในที่วารสารสถิติซอฟต์แวร์ ) เพื่อให้คุณยังคงอยู่ในกรอบการสร้างแบบจำลองที่รู้จักกันดี

มิฉะนั้นคุณยังสามารถหากฎสมาคมจําแนกตาม (ดู CRAN งานดูบนเครื่องการเรียนรู้หรือTop 10 ขั้นตอนวิธีการในการทำเหมืองข้อมูลสำหรับการแนะนำอ่อนโยนกับบางส่วนของพวกเขา)

ฉันอยากจะพูดถึงอีกวิธีที่น่าสนใจที่ฉันวางแผนที่จะนำมาใช้ใหม่ใน R (อันที่จริงมันเป็นรหัส Matlab) ซึ่งเป็นการวิเคราะห์การโต้ตอบทางจดหมายจากHervé Abdi แม้ว่าเริ่มแรกพัฒนาขึ้นเพื่อรับมือกับการศึกษาตัวอย่างขนาดเล็กที่มีตัวแปรอธิบายจำนวนมาก

อ้างอิง

  1. Cutler, A. , Cutler, DR, และ Stevens, JR (2009) วิธีการแบบต้นไม้ในการวิเคราะห์ข้อมูลมิติสูงในการวิจัยมะเร็ง Li, X. และ Xu, R. (eds.), pp. 83-101, Springer
  2. Saeys, Y. , Inza, I. และLarrañaga, P. (2007) ทบทวนเทคนิคการเลือกคุณลักษณะในชีวสารสนเทศ ชีวสารสนเทศศาสตร์, 23 (19): 2507-2517

2
+1 คำตอบที่ดี ฉันยังเห็นด้วยกับคำแนะนำ caret
เชน

12

โปรดทราบว่าไม่มีวิธีใดที่ดีกว่าวิธีอื่นเสมอไป ตามที่ระบุไว้โดย Wolpert และ Macready "อัลกอริธึมใด ๆ สองเท่าจะเทียบเท่ากันเมื่อประสิทธิภาพของพวกเขาถูกเฉลี่ยในทุกปัญหา (ดูWikipediaสำหรับรายละเอียด)

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

ดังนั้นจึงเป็นความคิดที่ดีที่จะกำหนดลักษณะข้อมูลของคุณตามเกณฑ์เช่น:

  • ฉันมีชุดข้อมูลที่มีขนาดใหญ่มากหรือมีขนาดที่พอเหมาะหรือไม่
  • มิติข้อมูลสูงหรือไม่
  • ตัวแปรเป็นตัวเลข (ต่อเนื่อง / ไม่ต่อเนื่อง) หรือเป็นสัญลักษณ์หรือเป็นส่วนผสมและ / หรือสามารถเปลี่ยนแปลงได้หากจำเป็นหรือไม่?
  • ตัวแปรมีแนวโน้มว่าจะเป็นอิสระหรือพึ่งพิงกันมาก
  • มีแนวโน้มที่จะมีตัวแปรซ้ำซ้อนเสียงดังหรือไม่เกี่ยวข้องหรือไม่
  • ฉันต้องการตรวจสอบโมเดลที่สร้างขึ้นและพยายามทำความเข้าใจกับโมเดลนี้หรือไม่?

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

ขออภัยที่จะไม่ให้คำตอบง่ายๆแก่คุณ แต่ฉันหวังว่านี่จะช่วยได้!


2
+1 รักคำพูด ("อัลกอริธึมใด ๆ สองอันจะเทียบเท่ากันเมื่อประสิทธิภาพเฉลี่ยของปัญหาที่อาจเกิดขึ้นทั้งหมด")
Assad Ebrahim

8

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

ดูกระดาษ JSS ต่อไปนี้เพื่อการสนทนาที่ดี: http://www.jstatsoft.org/v15/i09/


@Tal นี่คือธรรม (หรือผมคิดว่าอย่างนั้น) ความคิดเห็นของ SVM กับ RFs: การเปรียบเทียบที่ครอบคลุมของป่าสุ่มและเครื่องเวกเตอร์สนับสนุนสำหรับการจำแนกโรคมะเร็ง microarray ตามj.mp/ab7U8V ฉันยังต้องการที่จะkernlab e1071
chl

2
@chl ฉันไม่ชอบกระดาษนี้ในขณะที่มันทำจากมุมมองการเรียนรู้ SVM - การทำซ้ำของอัลกอริทึมสุ่ม (RF) เป็นเพียงขยะ ภาคผนวก 2 ยังแสดงให้เห็นว่าการใช้เวิร์กโฟลว์ SVM กับ RF นั้นแย่เพียงใด แต่ฉันยอมรับว่าเกือบทุก SVM สามารถปรับให้มีประสิทธิภาพสูงกว่า RF เนื่องจากเคอร์เนลเคล็ดลับ (ซึ่ง RF ธรรมดาไม่ได้มีในขณะที่มันไม่ได้หมายความว่ามันไม่ได้โดยทั่วไป) แต่มีความพยายามเพิ่มประสิทธิภาพที่เพิ่มขึ้นชี้แจง

@mbq แน่นอนนี่เป็นจุดที่ดี
chl

3

ดังที่ป่าไม้สุ่มกล่าวถึงแล้วเป็น "การอัพเกรด" อย่างเป็นธรรมชาติและโดยทั่วไปในปัจจุบัน SVM เป็นเทคนิคที่แนะนำให้ใช้

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

ฉันพบบทความนี้ที่ประเมินค่าไม่ได้เมื่อฉันใช้ SVM เป็นครั้งแรก (คู่มือปฏิบัติเพื่อสนับสนุนการจำแนกประเภทเวกเตอร์) http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf

ใน R คุณสามารถใช้แพ็คเกจ e1071 สำหรับ SVM ได้ซึ่งจะเชื่อมโยงกับไลบรารีมาตรฐานอย่างแท้จริง (ในซอฟต์แวร์ฟรีอย่างน้อย!) ไลบรารี libSVM


2
kernlab ยังใช้ libsvm เพื่อการปรับให้เหมาะสมดังนั้นจึงไม่แตกต่างกันมากนัก (แม้ว่ามันจะมีความยืดหยุ่นมากกว่า)
เชน

-1

คุ้มค่าที่จะดูที่ตัวจําแนกเบส์ซื่อๆ ใน R คุณสามารถทำการจำแนก Naive Bayes ในแพ็คเกจได้ e1071และklar

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