การสุ่มตัวอย่างสำหรับข้อมูลที่ไม่สมดุลในการถดถอย


22

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

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

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

คำตอบ:


15

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

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

แก้ไข - เพิ่มเติม - ขยายตัวว่าทำไมตัวอย่างจึงไม่ดีตาม Y

ในรูปแบบที่เหมาะสมถดถอยมาตรฐานคาดว่าจะกระจายตามปกติมีค่าเฉลี่ยอยู่ที่ศูนย์และเป็นอิสระและกันกระจาย หากคุณเลือกตัวอย่างของคุณตามค่าของ y (ซึ่งรวมถึงการสนับสนุนของเช่นเดียวกับ ) e จะไม่ได้มีค่าเฉลี่ยของศูนย์หรือมีการกระจายตัวเหมือนกันอีกต่อไป ตัวอย่างเช่นค่าต่ำของ y ซึ่งอาจรวมถึงค่าที่ต่ำมากของ e อาจมีโอกาสน้อยที่จะเลือก ซากปรักหักพังอนุมานใด ๆ ตามวิธีการปกติของการปรับรุ่นดังกล่าว การแก้ไขสามารถทำได้คล้ายกับที่ทำในเศรษฐมิติสำหรับโมเดลที่ถูกตัดทอนที่เหมาะสม แต่พวกมันเจ็บปวดและต้องใช้สมมติฐานเพิ่มเติมและควรใช้เมื่อไม่มีทางเลือกอื่นY=X+อีอีอีX

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

สิ่งนี้ขยายไปสู่กรณีที่รุนแรงน้อยกว่าของภายใต้หรือการสุ่มตัวอย่างมากเกินไป (เนื่องจากการตัดปลายสามารถมองได้ว่า

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

# generate data
x <- rnorm(100)
y <- 3 + 2*x + rnorm(100)

# demonstrate
plot(x,y, bty="l")
abline(v=0, col="grey70")
abline(h=4, col="grey70")
abline(3,2, col=1)
abline(lm(y~x), col=2)
abline(lm(y[x>0] ~ x[x>0]), col=3)
abline(lm(y[y>4] ~ x[y>4]), col=4)
points(x[y>4], y[y>4], pch=19, col=4)
points(x[x>0], y[x>0], pch=1, cex=1.5, col=3)
legend(-2.5,8, legend=c("True line", "Fitted - all data", "Fitted - subset based on x",
    "Fitted - subset based on y"), lty=1, col=1:4, bty="n")

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

1
นี่คือกระดาษจากศาสตราจารย์ NYU ชื่อ Foster Provost ในประเด็น: pages.stern.nyu.edu/~fprovost/Papers/skew.PDF ในกรณีของฉันฉันกำลังถดถอยด้วยข้อมูลที่ไม่สมดุลและไม่ได้จัดประเภท ดังนั้นคำถามของฉัน
คน

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

2
@someben ไม่ฉันไม่คิดว่ามันจะสร้างความแตกต่าง ปัญหานี้เป็นพื้นฐานมากกว่านั้น
ปีเตอร์เอลลิส

1
เป็นตัวอย่างที่ดี! กราฟของคุณทำให้ผมนึกถึงกระดาษโดยริชาร์ด Berk (1983) บนอคติเลือกตัวอย่าง นอกจากนี้คุณยังสามารถ "เลิกทำ" ปัญหาเหล่านี้ได้หากคุณทราบกลไกการเลือกตัวอย่างอย่างชัดเจนและมีชุดของโมเดลเศรษฐมิติที่สร้างขึ้นตามแนวความคิดนั้น (เช่นโมเดล tobit หรืองานของ James Heckman)
Andy W

2

มันเป็นคำถามว่าคุณกำลังทำการวิเคราะห์เชิงสาเหตุหรือการทำนาย อ่านhttp://m.statisticalhorizons.com/?ref=http%3A%2F%2Ft.co%2F54MWZrVAyX&url=http%3A%2F%2Fstatisticalhorizons.com%2Fprediction-vs-causation-in-regression-analysis&==40

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

คุณ "เลิกทำ" โดยการวิเคราะห์ขั้นสุดท้ายของโมเดลการถดถอยและชุดข้อมูลที่ไม่สมดุล


2

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

  • โดยพื้นฐานแล้วนี่ดูเหมือนจะเป็นปัญหาเปิดมากหรือน้อยโดยมีความพยายามแก้ไขน้อยมากที่เผยแพร่ (ดูKrawczyk 2016 "การเรียนรู้จากข้อมูลที่ไม่สมดุล: ความท้าทายแบบเปิดและทิศทางในอนาคต" )
  • กลยุทธ์การสุ่มตัวอย่างดูเหมือนจะเป็นวิธีการแก้ปัญหาที่ได้รับความนิยมมากที่สุด (เท่านั้น?) นั่นคือการสุ่มตัวอย่างของคลาสที่แสดงภายใต้หรือการขีดล่างของคลาสที่แสดงแทน ดูเช่น"ประหารสำหรับถดถอย" โดย Torgo แบร์โต et al. 2013
  • วิธีการที่อธิบายไว้ทั้งหมดดูเหมือนว่าจะทำงานโดยทำการจำแนกข้อมูล (กระจายอย่างต่อเนื่อง) ลงในคลาสที่ไม่ต่อเนื่องโดยบางวิธีและใช้วิธีการปรับสมดุลคลาสระดับมาตรฐาน

1

ประการแรกปันส่วน 1:10 นั้นไม่เลวเลย มีวิธีง่ายๆในการเลิกทำการสุ่มตัวอย่าง -

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

2) Facebook ยังเป็นตัวอย่างย่อย (สำหรับการทำนายการคลิกในการถดถอยโลจิสติก) และทำการสุ่มตัวอย่างเชิงลบ recalibartion ทำโดยสูตร p / (p + (1-p) / w) อย่างง่าย ๆ ; โดยที่ p คือการทำนายในการสุ่มตัวอย่าง, nw คืออัตราการสุ่มตัวอย่างเชิงลบลง


ฉันไม่คิดว่ามันง่ายขนาดนั้นเลย Arpit หลายคนที่ไม่เชิงเส้น algos ไม่เห็นอินสแตนซ์ของคลาส undersampled เพียงพอและกลายเป็น skewed ไปทางหนึ่ง oversampled และเนื่องจากการ nonlinearity ของพวกเขาคุณจะไม่มีวิธีการแก้ไขที่
Anatoly Alekseev

1

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

ฉันอาจแนะนำบทความที่อ้างถึงด้านล่าง (และการประชุมที่นำเสนอในhttp://proceedings.mlr.press/v74/ ) ขึ้นอยู่กับความสนใจของคุณในการทำความเข้าใจจากมุมมองการวิจัย ฉันชื่นชมการแนะนำของเสียงเกาส์เซียนในการสร้างข้อสังเกตแบบสังเคราะห์

หากคุณสนใจโซลูชันที่ใช้งานได้จริงผู้แต่งคนแรกมีการนำไปใช้งาน R ที่มีอยู่ในหน้า Github ของเธอ https://github.com/paobranco/SMOGN-LIDTA17

ถ้า Python เป็นแรงบันดาลใจของคุณมากกว่านี้ฉันเพิ่งเผยแพร่การใช้งาน Pythonic ของอัลกอริทึม SMOGN ทั้งหมดที่มีอยู่ในปัจจุบันและกำลังทดสอบหน่วย https://github.com/nickkunz/smogn

ฉันหวังว่านี่จะช่วยได้!

Branco, P. , Torgo, L. , Ribeiro, R. (2017) "SMOGN: วิธีการประมวลผลล่วงหน้าสำหรับการถดถอยแบบไม่สมดุล" การดำเนินการวิจัยการเรียนรู้ของเครื่อง, 74: 36-50 http://proceedings.mlr.press/v74/branco17a/branco17a.pdf

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