วิธีหลักในการยุบตัวแปรเด็ดขาดที่มีหลายระดับ?


58

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


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

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

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

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

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

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


2
ในความคิดเห็นของฉันที่ stats.stackexchange.com/questions/230636/… ฉันมีรายการคำถามที่คล้ายกันจำนวนมากที่นี่! ลองดู ... นอกจากนี้ค้นหาเว็บไซต์นี้ด้วยคำหลัก "หลายระดับ" คุณพบคำถามที่คล้ายกันหลายคำตอบที่ดี
kjetil b halvorsen

3
ฉันจะกลับมาที่เรื่องนี้เมื่อฉันมีเวลา ... ในระหว่างนี้ต่อไปนี้เป็นบทความที่เกี่ยวข้องมากซึ่งดูเหมือนจะตอบคำถามในส่วน: epub.ub.uni-muenchen.de/12164/1/petry_etal_TR102_2011 pdf
kjetil b halvorsen

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

1
@ssdecontrol ใช่แล้วตัวอย่างต้นแบบของฉันคือหมายเลขโทรศัพท์ (หรือรหัสอื่น ๆ ) โดยทั่วไปคำตอบที่ถูกต้องเมื่อถูกถามว่าจะใช้โมเดลเหล่านี้อย่างไร - อย่า!
seanv507

2
หากคุณต้องการอนุมานลำดับชั้นคุณสามารถดูโครงร่างการฝังโครงข่ายใยประสาทเทียม โดยพื้นฐานแล้วพวกเขาใช้ชุดเซลล์ประสาทที่ลดลงระหว่างหมวดหมู่และส่วนที่เหลือของโมเดลดังนั้นโมเดลนั้นต้องค้นหาเส้นโครงของหมวดหมู่ที่คล้ายกันในการแก้ปัญหา มันเป็นรุ่นที่ไม่ใช่เชิงเส้นของเครื่อง factorisation tensorflow.org/guide/embedding
seanv507

คำตอบ:


41

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

ในกรณีที่ง่ายที่สุดคุณจะมีโมเดลเชิงเส้น "one way ANOVA" พร้อมกับตัวทำนายหมวดหมู่เดียว:ที่เข้ารหัสระดับตัวแปรแบบเด็ดขาด ประเภท). แต่คุณอาจต้องการโซลูชันที่ยุบบางระดับ (หมวดหมู่) ด้วยกันเช่น

yij=μ+αi+ϵij,
i
{α1=α2,α3=α4=α5.

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

L=ωi<j|αiαj|.
αiαjω

ฉันไม่เคยจัดการกับนางแบบแบบนั้นและสิ่งที่กล่าวมาข้างต้นเป็นสิ่งแรกที่อยู่ในใจของฉัน จากนั้นฉันตัดสินใจที่จะดูว่ามีสิ่งใดที่นำมาใช้ ฉันค้นหาด้วยกูเกิ้ลแล้วก็รู้ทันทีว่านี่เรียกว่าฟิวชั่นหมวดหมู่ การค้นหาlasso fusion categoricalจะให้การอ้างอิงจำนวนมากให้คุณอ่าน นี่คือบางส่วนที่ฉันดูสั้น ๆ :

Gertheiss and Tutz 2010 ที่ตีพิมพ์ใน Annals of Applied Statistics ดูเหมือนว่าจะเป็นบทความล่าสุดและสามารถอ่านได้มากซึ่งมีการอ้างอิงอื่น ๆ นี่คือบทคัดย่อ:

วิธีการหดตัวในการวิเคราะห์การถดถอยมักจะออกแบบมาสำหรับการทำนายตัวชี้วัด อย่างไรก็ตามในบทความนี้มีการนำเสนอวิธีการย่อขนาดสำหรับตัวทำนายตำแหน่งแบบ categorial ในฐานะที่เป็นแอปพลิเคชันเราจะพิจารณาข้อมูลจากมาตรฐานการเช่ามิวนิกซึ่งตัวอย่างเช่นเขตเมืองจะได้รับการปฏิบัติเสมือนเป็นเครื่องทำนายหมวดหมู่ หากตัวแปรอิสระเป็นหมวดหมู่การแก้ไขบางอย่างในขั้นตอนการหดตัวตามปกติมีความจำเป็น สองวิธี -penalty ตามปัจจัยสำหรับการเลือกและการจัดกลุ่มของประเภทถูกนำเสนอและการตรวจสอบ วิธีแรกถูกออกแบบมาสำหรับระดับสเกลเล็กน้อยซึ่งเป็นวิธีที่สองสำหรับตัวทำนายลำดับ นอกจากใช้กับมาตรฐานการเช่าของมิวนิกแล้ววิธีการยังแสดงและเปรียบเทียบในการศึกษาแบบจำลองL1

ฉันชอบเส้นทางการแก้ปัญหาแบบ Lasso ของพวกเขาที่แสดงว่าระดับของตัวแปรเด็ดขาดสองตัวถูกรวมเข้าด้วยกันเมื่อความแข็งแรงของการทำให้ปกติเพิ่มขึ้น:

Gertheiss and Tutz 2010


1
และหลังจากเขียนสิ่งที่ฉันสังเกตเห็นว่า @Kjetil ได้ให้ลิงก์ไปยังเอกสารหนึ่งของ Tutz เมื่อสัปดาห์ที่แล้ว ...
amoeba พูดว่า Reinstate Monica

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

10

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

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

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

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


1
คุณเคยดูการใช้เมทริกซ์ความใกล้เคียงเป็นเมทริกซ์ระยะทางของคุณเพื่อทำคลัสเตอร์หรือไม่ stats.stackexchange.com/questions/270201/… ?
Keith

7

วิธีหนึ่งในการจัดการสถานการณ์นี้คือการถอดรหัสตัวแปรเด็ดขาดเป็นแบบต่อเนื่องโดยใช้สิ่งที่เรียกว่า "การเข้ารหัสเป้าหมาย" (aka "Impact coding") [1] ให้เป็นตัวแปรอินพุตที่มีระดับหมวดหมู่และปล่อยให้เป็นตัวแปรเอาต์พุต / เป้าหมาย / ตอบกลับ แทนที่ด้วย , ที่ไหนZz1,...,zKYZImpact(Z)

Impact(zk)=E(Y | Z=zk)E(Y)

หาอย่างต่อเนื่องมูลค่าYสำหรับไบนารีมูลค่าใช้แทนเพียง{E}YYlogitEE

มีการนำ Python ไปใช้ในห้องสมุดcategory_encoders [2]

ชุดตัวเลือกที่เรียกว่า "การเข้ารหัสผลกระทบ" ถูกนำไปใช้ในแพ็คเกจ R Vtreat [3] [4] แพคเกจ (และผลกระทบการเข้ารหัสตัวเอง) อธิบายไว้ในบทความโดยผู้เขียนจาก 2016 [5] และในหลายบล็อกโพสต์ [6] โปรดทราบว่าการนำ R ไปใช้งานในปัจจุบันไม่ได้จัดการกับการตอบสนองหลากหลาย (หมวดหมู่ที่มีมากกว่า 2 หมวดหมู่) หรือการตอบกลับหลายตัวแปร (ค่าเวกเตอร์)

  1. Daniele Micci-Barreca (2001) แผนการดำเนินการล่วงหน้าสำหรับแอตทริบิวต์ที่มีความสำคัญสูงในปัญหาการจำแนกและการทำนาย จดหมายข่าว ACM SIGKDD Explorationsเล่มที่ 3 ฉบับที่ 1 กรกฎาคม 2001 หน้า 27-32 https://doi.org/10.1145/507533.507538
  2. ตัวเข้ารหัสหมวดหมู่ http://contrib.scikit-learn.org/categorical-encoding/index.html
  3. John Mount และ Nina Zumel (2017) vtreat: ตัวประมวลผล / ปรับสภาพ 'data.frame' เสียงทางสถิติ แพ็คเกจ R เวอร์ชั่น 0.5.32 https://CRAN.R-project.org/package=vtreat
  4. Win-Vector (2017) vtreat ที่เก็บ GitHub ที่https://github.com/WinVector/vtreat
  5. Zumel, Nina และ Mount, John (2016) vtreat: ตัวประมวลผล data.frame สำหรับการสร้างแบบจำลองการทำนาย 1611.09477v3, arXiv E-พิมพ์ มีจำหน่ายที่https://arxiv.org/abs/1611.09477v3
  6. http://www.win-vector.com/blog/tag/vtreat/

logit E คืออะไร คุณช่วยแบ่งปันสูตรเองได้ไหม
Optimus Prime

@OptimusPrime logit E เป็น logit ของความคาดหวัง
shadowtalker

ถูก ดังนั้นในกรณีนั้น Impact (zk) = log (E (Y | Z = zk) −E (Y)) หรือ Impact (zk) = log (E (Y | Z = zk)) - log (E (Y) )?
Optimus Prime

2
นี่คือการเรียนรู้ภายใต้การดูแลและจะทำการปรับเปลี่ยนที่ซับซ้อนเพื่อรับรู้จำนวนองศาอิสระที่ถูก "ขโมย" จาก Y
Frank Harrell

3
แน่นอน - วิธีการใด ๆ ที่ใช้ Y เพื่อเป็นแนวทางในการจัดการหมวดหมู่สำหรับตัวทำนายหมวดหมู่จะมีการบรรจุมากเกินไปและจะยากที่จะได้รับช่วงความไม่แน่นอนที่กว้างพอที่จะแม่นยำ ฉันกำลังมุ่งเน้นไปที่การเรียนรู้ที่ไม่มีผู้ดูแลดังนั้นปัญหาเหล่านั้นจะไม่เกิดขึ้น
Frank Harrell

6

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

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

ฉันทำเหมือนคำแนะนำการลงโทษโดยhttps://stats.stackexchange.com/users/28666/amoeba @amoeba มาก


คุณจะกรุณาดูคำถามของฉันstats.stackexchange.com/q/383887/44368 ได้ไหม? ขอขอบคุณ.
ฮันส์

การให้คะแนนที่เหมาะสมที่สุดเป็นวิธีที่อธิบายไว้ในสไลด์ 15 ของการบรรยายนี้หรือไม่? มันยากที่จะค้นหาคำเหล่านั้นทั้งหมดเป็นเรื่องธรรมดาในบริบทอื่น ๆ
shadowtalker

1
ฉัน 0.85 แน่ใจว่ามันเป็น
Frank Harrell

ดูเหมือนว่าแนวคิดการเข้ารหัสเป้าหมาย (ดีกว่า) จากการเรียนรู้ของเครื่องตัวอย่างเช่นstats.stackexchange.com/questions/398903/…
kjetil b halvorsen

2

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


นี่เป็นสิ่งที่ @Wayne แนะนำ (โมเดลเอฟเฟกต์ผสม ~ รุ่นที่ใช้บ่อยของโมเดลลำดับชั้นแบบเบย์) และสิ่งที่ฉันแนะนำในการแสดงความคิดเห็นเพื่อตั้งคำถาม อย่างไรก็ตาม OP ต้องการอนุมานลำดับชั้น
seanv507

1

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

[many-categories]แต่มันอาจจะดีที่มีปัญหากับการสร้างแบบจำลองผมไม่แน่ใจว่าวิธีการปกติของการรักษาตัวแปรเด็ดขาดจริงๆให้คำแนะนำเพียงพอเมื่อมีตัวแปรเด็ดขาดกับหลายระดับมากดูเว็บไซต์นี้สำหรับแท็ก มีหลายวิธีที่คุณสามารถลองอย่างใดอย่างหนึ่งอย่างใดอย่างหนึ่งอาจเป็น (ถ้านี่เป็นความคิดที่ดีสำหรับตัวอย่างของคุณฉันไม่ทราบคุณไม่ได้บอกแอปพลิเคชันเฉพาะของคุณ) ชนิดของตัวแปรหมวดหมู่ลำดับชั้นนั่นคือแรงบันดาลใจ โดยระบบที่ใช้ในการจำแนกทางชีวภาพดูที่https://en.wikipedia.org/wiki/Taxonomy_(ชีววิทยา). มีบุคคล (พืชหรือสัตว์) จัดอยู่ในโดเมนก่อนจากนั้นราชอาณาจักร, ไฟลัม, คลาส, คำสั่ง, ครอบครัว, สกุลและในที่สุด ดังนั้นสำหรับแต่ละระดับในการจัดประเภทคุณสามารถสร้างตัวแปรปัจจัยได้ หากระดับของคุณคือพูดว่าผลิตภัณฑ์ที่ขายในซุปเปอร์มาร์เก็ตคุณสามารถสร้างการจำแนกตามลำดับชั้นเริ่มต้นด้วย [อาหาร, เครื่องครัว, อื่น ๆ ] แล้วอาหารสามารถจัดเป็น [เนื้อปลาผักซีเรียล, ... ] และ เป็นต้น ความเป็นไปได้เพียงอย่างเดียวซึ่งให้ลำดับชั้นก่อนหน้านี้ไม่เกี่ยวข้องกับผลลัพธ์โดยเฉพาะ

แต่คุณพูดว่า:

ฉันสนใจเกี่ยวกับการสร้างหมวดหมู่ระดับสูงที่สอดคล้องกับผลการถดถอยของฉัน

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

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