การจำแนกประเภทจำแนกชั้นหนึ่งที่มีภูมิหลังติดลบแบบไม่สมดุล


16

ฉันกำลังพัฒนาตัวแยกประเภทที่มีการกำกับดูแลที่มีอยู่สำหรับการจัดลำดับ {โปรตีน} ว่าเป็นของคลาสเฉพาะ (สารตั้งต้นของฮอร์โมน Neuropeptide) หรือไม่

มี "ผลบวก" ที่รู้จักกันประมาณ 1,150 ตัวโดยมีพื้นหลังของลำดับโปรตีนประมาณ 13 ล้านลำดับ ("พื้นหลังที่ไม่รู้จัก / มีคำอธิบายประกอบไม่ดี") หรือมีการตรวจสอบประมาณ 100,000 รายการที่เกี่ยวข้องกับโปรตีน วิธี "ลบ")

การนำไปใช้ก่อนหน้าของฉันดูที่นี่เป็นปัญหาการจำแนกเลขฐานสอง: Positive set = โปรตีนที่ทำเครื่องหมายเป็น Neuropeptides ชุดเชิงลบ: การสุ่มตัวอย่างตัวอย่าง 1,300 ตัวอย่าง (ทั้งหมด) จากบรรดาโปรตีนที่เหลืออยู่ซึ่งมีการกระจายความยาวที่คล้ายกัน

ใช้งานได้ แต่ฉันต้องการปรับปรุงความสามารถในการแยกแยะอย่างมากของเครื่องจักร (ปัจจุบันมีความแม่นยำ 83-86% ในแง่ของความถูกต้อง AUC, F1 ซึ่งวัดโดย CV บนชุดลบสุ่มตัวอย่างหลายชุด)

ความคิดของฉันคือ: 1) ทำให้นี่เป็นปัญหาแบบหลายคลาสโดยเลือกโปรตีน 2-3 คลาสที่จะเป็นเนกาทีฟโดยคุณสมบัติ / ชั้นเรียนการทำงานของพวกเขาพร้อมด้วย (อาจ) อีกชุดสุ่มตัวอย่าง (ลำดับความสำคัญที่นี่จะเป็นชุดเชิงลบที่มีความคล้ายคลึงในคุณลักษณะ / คุณสมบัติของชุดบวกขณะที่ยังคงมีการกำหนดลักษณะ) 2) การเรียนในชั้นเรียนหนึ่ง - จะดี แต่เมื่อฉันเข้าใจแล้วมันมีความหมายสำหรับการตรวจจับความผิดปกติและมีประสิทธิภาพที่ต่ำกว่าวิธีการเลือกปฏิบัติ

*) ฉันได้ยินการเรียนรู้ของ PU ซึ่งฟังดูเรียบร้อย แต่ฉันเป็นโปรแกรม N00b และฉันไม่รู้การใช้งานที่มีอยู่สำหรับมัน (ใน Python / sci-kit เรียนรู้)

ดังนั้นวิธีที่ 1 เข้าท่าในมุมมองเชิงทฤษฎีหรือไม่? มีวิธีที่ดีที่สุดในการสร้างชุดเชิงลบหลายชุดหรือไม่ (ฉันสามารถใช้โปรตีน "ลบ" จำนวนมาก [50K] ได้ แต่พวกมันต่างกันมาก ๆ ดังนั้นฉันจึงไม่รู้ว่าตัวแยกประเภทจะจัดการกับพวกมันได้ดีเพียงใด ) ขอบคุณ!


อย่างที่คุณเห็นบทความวิกิพีเดียเกี่ยวกับการเรียนรู้ PUมีการอ้างอิงถึงกระดาษซึ่งสิ่งนี้ได้ถูกนำไปใช้ในการจำแนกยีน บางทีมันก็คุ้มค่าที่จะหา / ถามผู้เขียนว่าพวกเขาใช้ซอฟต์แวร์อะไร
Andre Holzner

มีการอภิปรายบางอย่างเกี่ยวกับการเรียนรู้ PU ใน scikit เรียนรู้ที่นี่: stackoverflow.com/questions/25700724/ (ใช้เครื่องเวกเตอร์สนับสนุน 'หนึ่งคลาส')
Andre Holzner

การเรียนรู้ PU เป็นปัญหาการจำแนกประเภทสองชั้นมาตรฐานพร้อมกับข้อแม้หนึ่งข้อ - คุณเพิ่มประสิทธิภาพพื้นที่ใต้เส้นโค้งไม่ใช่ความแม่นยำในการจำแนกประเภท คุณสามารถใช้ชุดซอฟต์แวร์ Sofia ML เพื่อทำสิ่งนี้ให้สำเร็จ (ไม่จำเป็นต้องเขียนโปรแกรม) ในทางปฏิบัติคุณใส่คำอธิบายประกอบตัวอย่างเชิงบวกของคุณด้วย +1 และทุกอย่างเป็น -1 (ใช่แล้วข้อมูลที่ไม่มีป้ายกำกับอื่น ๆ ทั้งหมดที่อาจมีผลบวก)
Vladislavs Dovgalecs

คำตอบ:


5

วิธีที่ฉันจะโจมตีปัญหาโดยทั่วไปคือการใช้ประโยชน์จากการวิเคราะห์ทางสถิติเช่น Principal Component Analysis หรือ Ordinary Least Squares เพื่อช่วยพิจารณาว่าคุณลักษณะใดในลำดับโปรตีนเหล่านี้เหมาะสมที่สุดในการจำแนกโปรตีนในฐานะบรรพบุรุษของ Neuropeptide ฮอร์โมน

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

ดูลิงก์ทั้งสองนี้: http://www.ncbi.nlm.nih.gov/pubmed/24496727

http://www.ncbi.nlm.nih.gov/pubmed/16615809

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

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

ต้องบอกว่าทั้งหมดที่ ...

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

ฉันอาจจะหลุดฐานไปเลย ฉันสนใจที่จะเห็นคำตอบอื่น ๆ แต่นั่นคือ 2 เซ็นต์ของฉัน


1
ฉันได้ติดตั้งคุณสมบัติการแยกแล้วและชุดเครื่องมือสำหรับมัน (สิ่งพิมพ์กำลังรอการตรวจสอบจุดบกพร่อง)
GrimSqueaker

5

การเรียนในชั้นเดียว

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

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

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

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

"การทำนายการปฏิสัมพันธ์โปรตีน - โปรตีนโดยใช้วิธีการจำแนกชั้นหนึ่งและบูรณาการข้อมูลทางชีวภาพที่หลากหลาย"

"วิธีการจำแนกชั้นหนึ่งสำหรับลำดับและโครงสร้างของโปรตีน"

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

การเป็นตัวแทนระดับสูงกว่าการฝัง / การจัดกลุ่ม

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

นั่นคือคุณสามารถระบุได้ว่ากลุ่ม / กลุ่มใดที่เป็นโปรตีนหรือจำแนกประเภทการเป็นสมาชิกกลุ่ม / การเป็นตัวแทนที่ฝังตัว

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

นอกจากนี้คลาสเลเบลหรือสมาชิกคลัสเตอร์ที่รู้จักสามารถรวมอยู่ในกระบวนการฝังสำหรับวิธีการส่วนใหญ่

ทั้งมวล

ตระการตาของตัวแยกประเภทหลายตัวมักจะทำงานได้ดีที่สุดโดยเฉพาะเมื่อตัวแยกประเภทมีความหลากหลายมากและสามารถบรรลุผลการทำงานที่เทียบเคียงได้

มีอย่างน้อยสองวิธีที่ใช้วงดนตรีสำหรับปัญหานี้

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

2

มีสามวิธีที่คุณสามารถทำได้: APP, OAA, AAO APP เป็นการแยกแยะระหว่างวัตถุตามชั้นเรียนที่เป็นไปได้ทั้งหมด OAA ใช้แบบหนึ่งต่อทั้งหมด (คลาสที่เหลือ) และ AAO ทั้งหมดในครั้งเดียวเช่นการใช้การทดสอบ F สำหรับหลายคลาสพร้อมกัน (หรือการทดสอบของ Hotelling สำหรับ MVN) APP และ AAO เป็นประเภทการจำแนกเลขฐานสองหลายรายการ แต่มีคลาสดั้งเดิมมากกว่าสองคลาส แต่ละวิธีการเหล่านี้ให้ผลลัพธ์ที่แตกต่างกันสำหรับตัวแยกประเภทที่ใช้

การสุ่มตัวอย่างเป็นเทคนิคที่ดี คุณอาจลองจัดกลุ่มวัตถุทั้งหมดให้เป็นศูนย์โดยใช้วิธี k จากนั้นใช้ศูนย์เป็นวัตถุใหม่ ไม่ว่าจะด้วยวิธีใดวิธีการลดขนาดเชิงเส้นและไม่เป็นเชิงเส้นอาจช่วยให้ห่างจากตัวอย่างขนาดใหญ่ได้

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