การเลือกคุณสมบัติสำหรับรุ่น“ ขั้นสุดท้าย” เมื่อทำการตรวจสอบข้ามในการเรียนรู้ของเครื่อง


76

ฉันสับสนเล็กน้อยเกี่ยวกับการเลือกคุณสมบัติและการเรียนรู้ของเครื่องและฉันสงสัยว่าคุณจะช่วยฉันออกไปได้ไหม ฉันมีชุดข้อมูลขนาดเล็กที่แบ่งออกเป็นสองกลุ่มและมีคุณสมบัติ 1,000 รายการ เป้าหมายของฉันคือการได้รับยีนจำนวนเล็กน้อย (คุณสมบัติของฉัน) (10-20) ในลายเซ็นที่ฉันจะใช้กับชุดข้อมูลอื่น ๆ ในทางทฤษฎีเพื่อจำแนกตัวอย่างเหล่านั้นอย่างเหมาะสมที่สุด เนื่องจากฉันไม่มีตัวอย่างจำนวนมาก (<100) ฉันไม่ได้ใช้ชุดการทดสอบและการฝึกอบรม แต่ใช้การตรวจสอบความถูกต้องแบบลาออกหนึ่งครั้งเพื่อช่วยในการกำหนดความทนทาน ฉันได้อ่านแล้วว่าควรดำเนินการเลือกคุณสมบัติสำหรับตัวอย่างแต่ละตัวอย่าง

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

หากคุณทำสิ่งนี้คุณอาจได้รับยีนที่แตกต่างกันในแต่ละครั้งดังนั้นคุณจะได้รับตัวจําแนกยีนที่เหมาะสมที่สุดได้อย่างไร? นั่นคือขั้นตอนที่ 6

สิ่งที่ฉันหมายถึงอย่างดีที่สุดคือการรวบรวมยีนที่ควรมีการศึกษาเพิ่มเติม ตัวอย่างเช่นสมมติว่าฉันมีชุดข้อมูลมะเร็ง / ปกติและฉันต้องการค้นหา 10 อันดับแรกของยีนที่จะจัดประเภทเนื้องอกตาม SVM ฉันต้องการทราบชุดของยีนรวมถึงพารามิเตอร์ SVM ที่สามารถใช้ในการทดลองเพิ่มเติมเพื่อดูว่าสามารถใช้เป็นการทดสอบวินิจฉัยได้หรือไม่


ฉันควรพูดเพื่อการเปิดเผยอย่างเต็มรูปแบบว่าฉันได้โพสต์สิ่งนี้ไปยังรายการ
bioconductor แล้ว

โปรดสรุปผลลัพธ์ตัวบ่งชี้ทางชีวภาพใด ๆ กลับมาที่นี่ไหม
เชน

คำตอบ:


39

นี่เป็นคำถามที่ดีมากที่ฉันต้องเผชิญหน้ากับตัวเองเมื่อทำงานกับข้อมูล SNP ... และฉันไม่พบคำตอบที่ชัดเจนจากวรรณกรรม

ไม่ว่าคุณจะใช้ LOO หรือ K-fold CV คุณจะพบกับคุณสมบัติที่แตกต่างกันเนื่องจากการทำซ้ำการตรวจสอบความถูกต้องจะต้องเป็นวงรอบนอกมากที่สุดตามที่คุณพูด คุณสามารถนึกถึงรูปแบบการลงคะแนนบางอย่างซึ่งจะให้คะแนนฟีเจอร์ n-vector ที่คุณได้รับจาก LOO-CV ของคุณ (จำไม่ได้ว่าเป็นกระดาษ แต่มันคุ้มค่าที่จะตรวจสอบงานของHarald BinderหรือAntoine Cornuéjols ) ในกรณีที่ไม่มีตัวอย่างทดสอบใหม่สิ่งที่มักจะทำคือการนำอัลกอริทึม ML ไปใช้กับตัวอย่างทั้งหมดอีกครั้งเมื่อคุณพบพารามิเตอร์ที่ตรวจสอบความถูกต้องข้ามได้ แต่การดำเนินการในลักษณะนี้คุณไม่สามารถมั่นใจได้ว่าจะไม่มีการบรรจุเกิน (เนื่องจากมีการใช้ตัวอย่างสำหรับการปรับแบบจำลองให้เหมาะสมแล้ว)

หรืออีกวิธีหนึ่งคุณสามารถใช้วิธีการฝังตัวซึ่งให้คุณสมบัติการจัดอันดับผ่านการวัดความสำคัญของตัวแปรเช่นในป่าสุ่ม (RF) เนื่องจากการตรวจสอบข้ามรวมอยู่ใน RFs คุณไม่ต้องกังวลเกี่ยวกับกรณีหรือคำสาปของมิติ นี่เป็นเอกสารที่ดีเกี่ยวกับการประยุกต์ใช้ในการศึกษาการแสดงออกของยีน:np

  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
  3. Díaz-Uriarte, R. , Alvarez de Andrés, S. (2006) การคัดเลือกและจำแนกยีนของข้อมูลไมโครเรย์โดยใช้ฟอเรสต์แบบสุ่ม BMC Bioinformatics , 7 : 3
  4. Diaz-Uriarte, R. (2007) GeneSrF และ varSelRF: เครื่องมือบนเว็บและแพ็คเกจ R สำหรับการเลือกและจำแนกยีนโดยใช้ฟอเรสต์แบบสุ่ม BMC ชีวสารสนเทศศาสตร์ , 8 : 328

เมื่อคุณพูดถึง SVM คุณสามารถมองหาSVM ที่ถูกลงโทษได้


ขอบคุณสำหรับสิ่งนั้น ฉันไม่ได้ขายเฉพาะใน SVM เพียงแค่ใช้มันเป็นตัวอย่าง ดังนั้นถ้าคุณใช้ต้นไม้สุ่มคุณไม่ต้องทำการตรวจสอบข้าม? นั่นถูกต้องใช่ไหม.
danielsbrewer

7
ใช่ RFs รวมถึงการสุ่มตัวอย่างของตัวแปรสุ่ม (โดยทั่วไป ) เมื่อปลูกต้นไม้และต้นไม้แต่ละต้นขึ้นอยู่กับตัวอย่างของบุคคลที่เพิ่มขึ้น; ความสำคัญของตัวแปรคำนวณจากสิ่งที่เรียกว่าตัวอย่างถุงนอก (ที่ไม่ได้ใช้สำหรับการสร้างแผนภูมิการตัดสินใจ) โดยใช้เทคนิคการเรียงสับเปลี่ยน อัลกอริทึมจะถูกทำซ้ำสำหรับต้นไม้ m (ค่าเริ่มต้น m = 500) และผลลัพธ์จะถูกเฉลี่ยเพื่อชดเชยความไม่แน่นอนในระดับต้นไม้ (การเพิ่ม) p
chl

3
เป็นสิ่งสำคัญที่เรียกว่าป่าสุ่มไม่ใช่ต้นไม้สุ่ม คุณอาจมีปัญหากับ Google

1
+1, คำตอบที่ดีและ serendipitous สำหรับฉัน - ขอบคุณมากสำหรับการอ้างอิงกระดาษโดยเฉพาะการตรวจสอบ
ARS

หากมีข้อมูลเพียงพอไม่ควรถือชุดทดสอบทดสอบ loocv บนชุดการฝึกอบรมเพื่อปรับพารามิเตอร์ของโมเดลให้เหมาะสมพอดีกับชุดรถไฟทั้งหมด (และเรียกว่าลักษณนาม "รอบสุดท้าย") จากนั้นประเมินโมเดลสุดท้าย ในชุดทดสอบ?
user0

40

ในหลักการ:

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

หากต้องการดูสาเหตุที่เกิดขึ้นให้พิจารณาปัญหาการจำแนกเลขฐานสองที่มีคุณลักษณะไบนารี 1000 รายการ แต่มีเพียง 100 กรณีที่กรณีและคุณลักษณะทั้งหมดเป็นแบบสุ่มล้วน ๆ ดังนั้นจึงไม่มีความสัมพันธ์ทางสถิติระหว่างคุณลักษณะและกรณีใด ๆ หากเราฝึกอบรมโมเดลหลักในชุดข้อมูลแบบเต็มเราสามารถบรรลุข้อผิดพลาดเป็นศูนย์ในชุดการฝึกอบรมเนื่องจากมีคุณสมบัติมากกว่ากรณี เรายังสามารถค้นหาชุดย่อยของคุณสมบัติ "ข้อมูล" (ที่เกิดขึ้นโดยมีความสัมพันธ์โดยบังเอิญ) หากเราทำการตรวจสอบข้ามโดยใช้คุณสมบัติเหล่านั้นเท่านั้นเราจะได้รับการประเมินประสิทธิภาพที่ดีกว่าการคาดเดาแบบสุ่ม เหตุผลก็คือในแต่ละขั้นตอนของการข้ามการตรวจสอบความถูกต้องมีข้อมูลบางอย่างเกี่ยวกับคดีที่ถูกระงับไว้ที่ใช้สำหรับการทดสอบเนื่องจากคุณสมบัติดังกล่าวได้รับเลือกเพราะดีสำหรับการทำนายทั้งหมดของพวกเขา รวมถึงสิ่งที่ยื่นออกมา แน่นอนว่าอัตราความผิดพลาดที่แท้จริงจะเท่ากับ 0.5

หากเรานำขั้นตอนที่เหมาะสมมาใช้และทำการเลือกคุณสมบัติในแต่ละช่วงเวลาจะไม่มีข้อมูลใด ๆ เกี่ยวกับเคสที่ถูกจัดอันดับในการเลือกคุณลักษณะที่ใช้ในช่วงเวลานั้น หากคุณใช้ขั้นตอนที่เหมาะสมในกรณีนี้คุณจะได้รับอัตราข้อผิดพลาดประมาณ 0.5 (แม้ว่าจะแตกต่างกันเล็กน้อยสำหรับการรับรู้ชุดข้อมูลที่แตกต่างกัน)

เอกสารที่ดีในการอ่านคือ:

Christophe Ambroise, Geoffrey J. McLachlan, "การตั้งค่าการคัดเลือกในการสกัดยีนบนพื้นฐานของข้อมูลการแสดงออกของยีน microarray", PNAS http://www.pnas.org/content/99/10/6562.abstract

ซึ่งเกี่ยวข้องอย่างมากกับ OP และ

Gavin C. Cawley, Nicola LC Talbot, "ในการเลือกรุ่นที่มากเกินไปและการเลือกแบบอคติในการประเมินประสิทธิภาพ", JMLR 11 (ก.ค. ): 2079 )2107, 2010 http://jmlr.csail.mit.edu/papers /v11/cawley10a.html

ซึ่งแสดงให้เห็นว่าสิ่งเดียวกันนั้นสามารถเกิดขึ้นได้อย่างง่ายดายในการเลือกแบบจำลอง (เช่นการปรับพารามิเตอร์ไฮเปอร์ของ SVM ซึ่งจำเป็นต้องทำซ้ำในแต่ละขั้นตอนของ CV ขั้นตอนซ้ำ)

ในทางปฏิบัติ:

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

หนังสือ Alan Millers เกี่ยวกับการเลือกชุดย่อยในการถดถอย (เอกสารประกอบของแชปแมนและฮอลล์เกี่ยวกับสถิติและความน่าจะเป็นที่ประยุกต์ใช้เล่ม 95) ให้คำแนะนำที่ดี (หน้า 221) ว่าหากประสิทธิภาพการทำนายเป็นสิ่งที่สำคัญที่สุด เพียงใช้การถดถอยแบบสันแทน และที่อยู่ในหนังสือเกี่ยวกับการเลือกชุดย่อย !!! ; o)


17

วิธีเพิ่มไปยัง chl: เมื่อใช้เครื่องเวกเตอร์สนับสนุนวิธีการลงโทษที่แนะนำอย่างยิ่งคือตาข่ายยืดหยุ่น วิธีนี้จะลดค่าสัมประสิทธิ์เป็นศูนย์และในทางทฤษฎีจะรักษาค่าสัมประสิทธิ์ที่เสถียรที่สุดในแบบจำลอง เริ่มแรกมันถูกใช้ในกรอบการถดถอย แต่ขยายได้อย่างง่ายดายสำหรับใช้กับเครื่องเวกเตอร์สนับสนุน

สิ่งพิมพ์ต้นฉบับ : Zou and Hastie (2005): การทำให้เป็นมาตรฐานและการเลือกตัวแปรผ่านทางเน็ตยืดหยุ่น JRStatist.Soc B, 67-2, pp.301-320

ตาข่ายยืดหยุ่นสำหรับ SVM : Zhu & Zou (2007): การเลือกตัวแปรสำหรับเครื่องเวกเตอร์สนับสนุน: แนวโน้มในการคำนวณระบบประสาทตอนที่ 2 (บรรณาธิการ: เฉินและวัง)

การปรับปรุงในเครือข่ายยืดหยุ่น Jun-Tao และ Ying-Min (2010): ตาข่ายยืดหยุ่นที่ปรับปรุงใหม่สำหรับการจำแนกประเภทมะเร็งและการคัดเลือกยีน: Acta Automatica Sinica, 36-7, pp.976-981


9

ในขั้นตอนที่ 6 (หรือ 0) คุณเรียกใช้อัลกอริธึมการตรวจจับคุณสมบัติบนชุดข้อมูลทั้งหมด

n1n


ฉันคิดว่ายังคงมีปัญหาทั่วไปเมื่อใช้ตัวอย่างเดียวกัน (1) เพื่อประเมินประสิทธิภาพการจำแนกประเภท / การทำนายของตัวจําแนกขณะที่ปรับพารามิเตอร์ (ในที่สุดพร้อมการเลือกคุณสมบัติ) และ (2) ใช้ในการคาดการณ์ชุดข้อมูลทั้งหมด ในความเป็นจริงคุณกำลังทำลายการควบคุมที่ออกแรงเกินกำลังที่ทำอย่างละเอียดโดยใช้การตรวจสอบข้าม Hastie และคณะ ให้ภาพประกอบที่ดีของข้อผิดพลาด CV, esp WRT การเลือกคุณสมบัติในหนังสือ ESL ของพวกเขา§ 7.10.2 ในรุ่นที่ 2
chl

@chl: ใครพูดอะไรเกี่ยวกับการปรับพารามิเตอร์? หากมีการดำเนินการเพิ่มเติมสิ่งเหล่านั้นควรทำซ้ำในระหว่างการตรวจสอบความถูกต้องข้ามเช่นกัน ชัดเจนการแก้ไขอัลกอริทึมของคุณจนกว่าคุณจะได้รับอัตราข้อผิดพลาดที่ตรวจสอบได้ดีคือ "โกง" BTW ฉันยอมรับว่าการตรวจสอบความถูกต้องโดยเฉพาะอย่างยิ่งการลาออกครั้งเดียวไม่ใช่สิ่งที่ยอดเยี่ยม
Aniko

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

@mbq - Ankino ถูกต้องปรับโมเดลของคุณเพื่อลดสถิติ CV คือ "โกง" และสถิติ CV ของรุ่นสุดท้ายจะมีอคติในแง่ดี เหตุผลนี้คือว่าสถิติ CV มีความแปรปรวนที่ไม่สำคัญ (เนื่องจากมีการประเมินในชุดข้อมูล จำกัด ) ดังนั้นหากคุณเพิ่มประสิทธิภาพสถิติ CV โดยตรงคุณสามารถปรับให้พอดีและคุณสามารถจบแบบจำลองได้ generalises ที่น้อยกว่าที่คุณเริ่มต้นด้วย สำหรับการสาธิตสิ่งนี้ในบริบทการเรียนรู้ของเครื่องดู jmlr.csail.mit.edu/papers/v11/cawley10a.html การ แก้ปัญหา: ใช้ XVAL ที่ซ้อนกัน
Dikran Marsupial

1

นี่คือวิธีที่ฉันเลือกคุณสมบัติ สมมติว่าความรู้บางอย่างมี 2 แบบที่จะนำมาเปรียบเทียบ รุ่น A ใช้คุณสมบัติหมายเลข 1 เป็นหมายเลข 10. Model B ใช้หมายเลข 11 เป็น no 20. ฉันจะใช้ LOO CV กับรุ่น A เพื่อให้ได้ประสิทธิภาพที่ไม่อยู่ในกลุ่มตัวอย่าง ทำแบบเดียวกันกับรุ่น B แล้วเปรียบเทียบ


-1

ฉันไม่แน่ใจเกี่ยวกับปัญหาการจัดหมวดหมู่ แต่ในกรณีของการเลือกคุณสมบัติสำหรับปัญหาการถดถอย Jun Shao แสดงให้เห็นว่า CV-One-Out ไม่สอดคล้องกัน asymptoticallyนั่นคือความน่าจะเป็นในการเลือกชุดย่อยที่เหมาะสมของคุณสมบัติไม่ได้รวม 1 จำนวนตัวอย่างเพิ่มขึ้น จากมุมมองที่ใช้งานได้จริง Shao แนะนำการตรวจสอบข้าม Monte-Carlo หรือขั้นตอนการออกหลายด้าน


โอ้ฉันอีกครั้ง คุณอ่านชื่อของบทความนี้หรือไม่?

2
ตกลงเพื่อความชัดเจน - ฉันไม่ได้พูดว่า LOOCV เป็นความคิดที่ดีสำหรับวัตถุจำนวนมาก เห็นได้ชัดว่ามันไม่ได้ แต่ Shao ไม่สามารถใช้ได้ที่นี่ แท้จริงแล้วในกรณีส่วนใหญ่กฎสำหรับ LM ไม่ได้ถือ ML

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