PCA และทางแยก / การทดสอบรถไฟ


35

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

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

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

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


สำหรับการอ้างอิงในอนาคต. ดูคำถามนี้เกี่ยวกับวิธีการทำการตรวจสอบข้ามกับ PCA ใน R กับcaretแพคเกจ: PCA และ K-พับรอการตรวจสอบในแป้นพิมพ์
อะมีบาพูดว่า Reinstate Monica


คำตอบ:


34

สำหรับการวัดข้อผิดพลาดทั่วไปคุณต้องทำสิ่งต่อไปนี้: PCA แยกต่างหากสำหรับชุดฝึกอบรมทุกชุด (ซึ่งหมายถึงการทำ PCA แยกต่างหากสำหรับตัวแยกประเภททุกตัวและสำหรับการพับ CV ทุกครั้ง)

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


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

  • คุณสามารถทดสอบได้ว่าต้องการทำซ้ำ PCA สำหรับแบบจำลองตัวแทนทุกชุดหรือไม่ (การวิเคราะห์ซ้ำด้วยแบบจำลอง PCA เพียงรุ่นเดียว) ฉันคิดว่าผลลัพธ์ของการทดสอบนี้คุ้มค่ากับการรายงาน

  • ฉันเคยวัดอคติของการไม่ทำซ้ำ PCA และพบว่าด้วยข้อมูลการจำแนกสเปคโทรสโกของฉันฉันตรวจพบเพียงครึ่งหนึ่งของอัตราความผิดพลาดทั่วไปเมื่อไม่ทำซ้ำ PCA สำหรับแบบจำลองตัวแทน

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


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

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

หากความแปรปรวนระหว่างคลาสมีน้อยอคตินี้จะไม่มากนัก แต่ในกรณีนั้น PCA จะไม่ช่วยในการจัดหมวดหมู่: การประมาณ PCA นั้นไม่สามารถช่วยเน้นการแยกระหว่างคลาสได้


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

@Bitwise: โปรดดูการแก้ไขของฉัน
cbeleites รองรับ Monica

สวัสดี @cbeleites ฉันต้องการทำให้เธรดนี้เป็น "มาตรฐาน" สำหรับคำถามเกี่ยวกับ PCA และการแยกการทดสอบ / การทดสอบ (มีจำนวนมาก!) และทำเครื่องหมายเป็นรายการซ้ำกัน ฉันใช้เสรีภาพในการเพิ่มหนึ่งประโยคลงในคำตอบของคุณซึ่งอาจช่วยขจัดความเข้าใจผิดที่มักเกิดขึ้นในคำถามที่ซ้ำกัน หวังว่าคุณจะมีความสุขกับการแก้ไขของฉัน แต่โปรดตรวจสอบ! +1, btw
อะมีบาพูดว่า Reinstate Monica

@ amoeba ขอบคุณมาก ใช่นั่นเป็นประเด็นสำคัญที่คุณเพิ่ม ขอบคุณมากสำหรับงานที่คุณทำความสะอาดชุดคำถาม
cbeleites รองรับ Monica

1
@FelipeAlmeida: ใช่
cbeleites รองรับ Monica

2

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

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


0

ทำหลังPCA ในชุดฝึกอบรมในแต่ละครั้ง

ใน PCA เราเรียนรู้เมทริกซ์ที่ลดลง: Uซึ่งช่วยให้เราสามารถประมาณการได้Z_train = U x X_train

ในเวลาทดสอบเราใช้Uเดียวกันที่เรียนรู้จากขั้นตอนการฝึกอบรมและคำนวณการฉายภาพZ_test = U x X_test

ดังนั้นโดยพื้นฐานแล้วเรากำลังฉายภาพชุดทดสอบบนพื้นที่ลดคุณสมบัติที่ได้รับระหว่างการฝึกอบรม

ข้อสันนิษฐานพื้นฐานคือชุดทดสอบและชุดรถไฟควรมาจากการแจกแจงแบบเดียวกันซึ่งอธิบายวิธีการข้างต้น

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