อะไรจะทำให้ PCA เสื่อมเสียผลลัพธ์ของตัวจําแนก?


27

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

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


คำถามของคุณสามารถสรุปได้เช่นนี้หรือไม่: "มีอะไรดีกว่า - ในการสร้างตัวแยกประเภทตามตัวแปรดั้งเดิมหรือส่วนประกอบหลักบางส่วนที่แยกออกมาจากสิ่งเหล่านั้น"
ttnphns

1
ฉันจะพูดเพิ่มเติมตามแนวของ "มีสถานการณ์ที่จะดีกว่าถ้าใช้ตัวแปรดั้งเดิมเทียบกับองค์ประกอบหลักสองสามที่แยกออกมาจากสิ่งเหล่านั้นหรือไม่"
Dolan Antenucci

1
มีเทคนิคการจำแนกประเภทมากมาย หากมีการวิเคราะห์แยกแยะตัวอย่างเช่นฉันขอแนะนำให้คุณอ่านโพสต์นี้ (รวมถึงความคิดเห็นของตัวเองที่นั่น)
ttnphns

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

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

คำตอบ:


29

พิจารณากรณีการง่ายยกมาจากที่ยอดเยี่ยมและ undervalued บทความ"หมายเหตุเกี่ยวกับการใช้งานขององค์ประกอบหลักในการถดถอย"

สมมติว่าคุณมีเพียงสองคุณสมบัติ (ปรับขนาดและไม่มีความหมาย) แสดงว่าพวกเขาและมีความสัมพันธ์เชิงบวกเท่ากับ 0.5, จัดชิดในและตัวแปรตอบสนองที่สามคุณต้องการจัดประเภท สมมติว่าการจัดหมวดหมู่ของจะถูกกำหนดอย่างเต็มที่โดยสัญลักษณ์ของx_2x 2 X Y Y x 1 - x 2x1x2XYYx1x2

การแสดง PCA บนทำให้เกิดคุณลักษณะใหม่ (เรียงลำดับตามความแปรปรวน)เนื่องจาก2 ดังนั้นหากคุณลดขนาดของคุณเหลือ 1 เช่นองค์ประกอบหลักตัวแรกคุณจะทิ้งโซลูชันที่แน่นอนไว้ในการจำแนกประเภทของคุณ![ x 1 + x 2 , x 1 - x 2 ] Var ( x 1 + x 2 ) = 1 + 1 + 2 ρ > Var ( x 1 - x 2 ) = 2 - 2 ρX[x1+x2,x1x2]Var(x1+x2)=1+1+2ρ>Var(x1x2)=22ρ

ปัญหาเกิดขึ้นเนื่องจาก PCA คือไม่เชื่อเรื่องพระเจ้าYน่าเสียดายที่หนึ่งไม่สามารถรวมใน PCA ได้เนื่องจากจะทำให้ข้อมูลรั่วไหลYYY


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

ตัวอย่างเช่น: ในอนุกรมเวลาทางการเงินพยายามทำนายการปิดบัญชีสิ้นวันของยุโรปซึ่งเกิดขึ้นเวลา 11:00 น. EST โดยใช้การปิดบัญชีสิ้นวันแบบอเมริกันเวลา 16:00 น. EST เป็นการรั่วไหลของข้อมูลตั้งแต่อเมริกันปิด ซึ่งเกิดขึ้นในเวลาต่อมาได้รวมราคาปิดของยุโรปไว้ด้วย


2
"การรั่วไหลของข้อมูล" คืออะไร?
603

@Wayne ราคาแพงเกินไป haha
Cam.Davidson.Pilon

(-1) สำหรับการทำให้เกิดความสับสน: (1) PCA ไม่มีการสำรองดังนั้นจึงไม่มีการรวม Y ในการแปลงการแปลง เทคนิคการกำกับดูแลที่สอดคล้องกันคือ PLS ซึ่งใช้ทั้ง X และ Y (2) การรั่วไหลของข้อมูล (เช่น: การทดสอบด้วยข้อมูลที่ขึ้นกับสถิติ) ไม่ได้เป็นไปตามการใช้วิธีการกำกับดูแล ในทางตรงกันข้าม: มันจะเกิดขึ้นกับ PCA เช่นเดียวกับ PLS หากคุณไม่ปฏิบัติตามกฎที่มาจากขั้นตอนการวิเคราะห์ครั้งแรกที่ใช้มากกว่าหนึ่งกรณี (เช่นการจัดกึ่งกลางการปรับสัดส่วนการฉาย PCA / PLS) ในการคำนวณทั้งหมด ทำได้เฉพาะข้อมูลการฝึกอบรมเท่านั้น (เช่นต้อง ...
cbeleites รองรับ Monica

... คำนวณใหม่สำหรับโมเดลตัวแทนแต่ละอัน ผลลัพธ์ของการคำนวณเหล่านี้สามารถนำไปใช้กับข้อมูลการทดสอบเช่นลบศูนย์ที่ได้จากข้อมูลการฝึกอบรมหมุนโดยการหมุนที่ได้รับจาก PCA ในกรณีการฝึกอบรม ฯลฯ
cbeleites รองรับ Monica

ตัวอย่างเช่น: อนุกรมเวลาเป็นเรื่องยากโดยเฉพาะอย่างยิ่งสิ่งที่ถือว่าเป็นกรณีที่เป็นอิสระจะขึ้นอยู่กับการใช้งานมาก ดูเช่นstats.stackexchange.com/questions/76376/…
cbeleites รองรับ Monica

23

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

library(ggplot2)

n <- 400
z <- matrix(rnorm(n * 2), nrow = n, ncol = 2)
y <- sample(c(-1,1), size = n, replace = TRUE)

# PCA helps
df.good <- data.frame(
    y = as.factor(y), 
    x = z + tcrossprod(y, c(10, 0))
)
qplot(x.1, x.2, data = df.good, color = y) + coord_equal()

# PCA hurts
df.bad <- data.frame(
    y = as.factor(y), 
    x = z %*% diag(c(10, 1), 2, 2) + tcrossprod(y, c(0, 8))
)
qplot(x.1, x.2, data = df.bad, color = y) + coord_equal()

PCA ช่วย PCA ช่วย

ทิศทางของความแปรปรวนสูงสุดเป็นแนวนอนและชั้นเรียนจะถูกแยกออกในแนวนอน

PCA เจ็บ PCA เจ็บ

ทิศทางของความแปรปรวนสูงสุดเป็นแนวนอน แต่คลาสจะถูกแยกออกในแนวตั้ง


... และในตัวอย่างที่ 2 อะนาล็อกที่ควบคุมแล้ว PLS จะช่วยได้จริง
cbeleites รองรับโมนิก้า

13

PCA เป็นเส้นตรงมันเจ็บเมื่อคุณต้องการดูการอ้างอิงเชิงเส้นที่ไม่ใช่

PCA ในภาพเป็นเวกเตอร์: ป้อนคำอธิบายรูปภาพที่นี่

Non algorithm algorithm (NLDR) ที่ลดขนาดภาพลงเป็น 2 มิติการหมุนและขนาด:

ป้อนคำอธิบายรูปภาพที่นี่

ข้อมูลเพิ่มเติม: http://en.wikipedia.org/wiki/Nonlinear_dimensionality_reduction


3

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

ข้อความกลับบ้าน (ซึ่งแสดงให้เห็นอย่างสวยงามในคำตอบของ @ vqv) คือ:

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

สำหรับผู้ที่สนใจถ้าคุณดูที่หมวด 4 ผลการทดลองพวกเขาเปรียบเทียบความถูกต้องของการจำแนกประเภทกับ 1) featuers ดั้งเดิม 2) PCA เปลี่ยนคุณสมบัติและ 3) ทั้งสองอย่างรวมกันซึ่งเป็นสิ่งที่ใหม่สำหรับฉัน

บทสรุปของฉัน:

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

PS:ฉันทราบว่าหนึ่งในข้อ จำกัด ของกระดาษที่ได้รับการจดทะเบียนคือความจริงที่ว่าผู้เขียน จำกัด การประเมินผลงานของตัวจําแนกเพื่อ 'รับรู้' เท่านั้นซึ่งอาจเป็นตัวบ่งชี้ประสิทธิภาพลำเอียงมาก


3

สมมติกรณีง่าย ๆ ที่มีตัวแปรอิสระ 3 ตัวและเอาท์พุทและสมมติว่าและตอนนี้คุณควรจะได้รับโมเดล 0 error y x 3 = yx1,x2,x3yx3=y

สมมติว่าในขณะนี้ว่าในการฝึกอบรมที่กำหนดรูปแบบของมีขนาดเล็กมากและอื่น ๆ นอกจากนี้ยังมีการเปลี่ยนแปลงของx_3 x 3yx3

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

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