จะทำการ Logistic Regression ด้วยคุณสมบัติจำนวนมากได้อย่างไร?


10

ฉันมีชุดข้อมูลที่มี 330 ตัวอย่างและ 27 คุณสมบัติสำหรับแต่ละกลุ่มตัวอย่างที่มีปัญหาระดับไบนารีสำหรับการถดถอยโลจิสติก

ตามกฎ "ถ้าสิบ" ฉันต้องการอย่างน้อย 10 เหตุการณ์เพื่อให้รวมคุณลักษณะแต่ละรายการ แม้ว่าฉันมีชุดข้อมูลที่ไม่สมดุลโดยมีคลาสบวก 20% และคลาสลบ 80%

นั่นทำให้ฉันมีเพียง 70 เหตุการณ์อนุญาตให้รวมฟีเจอร์ประมาณ 7/8 เท่านั้นในโมเดลโลจิสติก

ฉันต้องการประเมินคุณสมบัติทั้งหมดเป็นตัวทำนายฉันไม่ต้องการเลือกคุณสมบัติใด ๆ

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

ฉันยังสงสัยเกี่ยวกับการจัดการคุณสมบัติที่เป็นหมวดหมู่และต่อเนื่องฉันจะผสมมันได้หรือไม่ หากฉันมีหมวดหมู่ [0-1] และต่อเนื่อง [0-100] ฉันควรทำให้เป็นมาตรฐานหรือไม่

ฉันกำลังทำงานกับ Python

ขอบคุณมาก ๆ สำหรับความช่วยเหลือของคุณ!


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

2
มีความแตกต่างระหว่างที่ไม่ได้มีตัวอย่างเพียงพอและมีคุณสมบัติที่ไม่เกี่ยวข้อง ฉันจะไม่เน้นมากเกินไปในการเลือกฟีเจอร์ 7 อย่างเนื่องจากกฎแบบง่ายๆ ...
oW_

1
ทำสิ่งที่คุณจะทำอย่างไร: ใช้การตรวจสอบข้ามเพื่อเพิ่มประสิทธิภาพการทำให้เป็นมาตรฐาน ฉันขอแนะนำตาข่ายยืดหยุ่น (L1 + L2)
Emre

คำตอบ:


6

เพื่อลดโมเดลของคุณลงเป็น 7 ตัวแปรมีวิธีการสองสามอย่างที่คุณสามารถทำได้:

  1. PCA (unsupervised): สิ่งนี้จะสร้างชุดข้อมูลเชิงเส้น "ใหม่" ของข้อมูลของคุณซึ่งองค์ประกอบแต่ละขั้นตอนอธิบายความแปรปรวนของข้อมูลได้มากที่สุด ดังนั้นส่วนประกอบ 7 รายการแรก (จาก 27 รายการ) ควรจะสามารถอธิบายเปอร์เซ็นต์ความแปรปรวนที่ดีในข้อมูลของคุณได้ จากนั้นคุณสามารถเสียบเจ็ดองค์ประกอบเหล่านี้ลงในสมการการถดถอยโลจิสติกของคุณ ข้อเสียของที่นี่คือเนื่องจากส่วนประกอบเป็นชุดค่าผสมของตัวแปรดั้งเดิมของคุณคุณจะสูญเสียความสามารถในการตีความบางอย่างกับแบบจำลองการถดถอยของคุณ แต่มันควรจะผลิตความถูกต้องดีมาก เทคนิคเดียวกันนี้ใช้กับวิธีการลดขนาดอื่น ๆ เช่น
  2. อีกวิธีที่ใช้กันทั่วไปในการถดถอยแบบขั้นตอนเป็นไปข้างหน้าที่คุณเริ่มต้นด้วยหนึ่งตัวแปรและเพิ่มอีกแต่ละขั้นตอนซึ่งจะถูกเก็บไว้หรือลดลงขึ้นอยู่กับเงื่อนไขบางอย่าง (มักจะเป็น BIC หรือ AIC คะแนน) ถดถอยแบบขั้นตอนย้อนหลังเป็นสิ่งเดียวกัน แต่คุณเริ่มต้นด้วยตัวแปรทั้งหมดและลบหนึ่งครั้งในแต่ละครั้งอีกครั้งตามเกณฑ์บางอย่าง จากการค้นหาโดยย่อดูเหมือนว่างูเหลือมจะมีการถดถอยแบบขั้นตอน แต่พวกเขาก็มีขั้นตอนวิธีการกำจัดคุณลักษณะที่คล้ายกันที่อธิบายไว้ในโพสต์วิทยาศาสตร์ข้อมูลนี้
  3. Lasso Regression ใช้ L1 บรรทัดฐานการลงโทษที่ลดค่าสัมประสิทธิ์ของคุณลักษณะการกำจัดบางอย่างได้อย่างมีประสิทธิภาพคุณสามารถรวมสิ่งนี้ L1บรรทัดฐานในรูปแบบการถดถอยโลจิสติกของคุณ ดูเหมือนว่าLogisticRegression ของ sklearnอนุญาตให้คุณกำหนดบทลงโทษที่คุณต้องการเพื่อให้บรรลุเป้าหมายนี้ หมายเหตุ: Lasso จะไม่ตั้งค่าสัมประสิทธิ์ของตัวแปรให้เป็นศูนย์อย่างชัดเจน แต่จะลดขนาดลงเพื่อให้คุณเลือก 7 สัมประสิทธิ์ที่ใหญ่ที่สุด

ตามที่ @ E_net4 แสดงความคิดเห็นคำถามต่อเนื่องของคุณจะได้รับการแก้ไขในโพสต์อื่น


5

คุณกำลังทำ "Rule of 10" อย่างจริงจังเกินไป มันเป็นกฎง่ายๆ มันไม่ได้ตั้งใจที่จะใช้เหมือนที่คุณใช้มัน

ดูเหมือนว่าคุณกำลังคิดว่า: "ฉันมีอินสแตนซ์ที่เป็นบวกเพียง 70 กรณีดังนั้นโดยกฎข้อ 10 ฉันได้รับอนุญาตให้ใช้ฟีเจอร์ 7 อย่างเท่านั้นฉันจะเลือกฟีเจอร์ที่ใช้งานได้อย่างไร 7"

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

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

และถ้าคุณสามารถรับข้อมูลเพิ่มเติมได้นั่นจะช่วยได้จริงๆ

ในที่สุดเนื่องจากคุณมีคลาสที่ไม่สมดุลคุณอาจลองอ่านเกี่ยวกับความไม่สมดุลของคลาสและวิธีการจัดการกับมัน

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