Binning ที่เหมาะสมที่สุดที่เกี่ยวข้องกับตัวแปรตอบกลับที่กำหนด


12

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

ตัวอย่าง: ฉันมีชุดการสังเกตของผู้ที่มี "ความสูง" (ต่อเนื่องเป็นตัวเลข) และ "has_back_pains" (ไบนารี) ตัวแปร ฉันต้องการแยกความสูงออกเป็น 3 ช่วง (กลุ่ม) อย่างน้อยที่สุดด้วยสัดส่วนที่แตกต่างกันของคนที่มีอาการปวดหลังดังนั้นอัลกอริทึมจึงเพิ่มความแตกต่างระหว่างกลุ่ม (ด้วยข้อ จำกัด ที่กำหนดเช่นแต่ละช่วงเวลามีการสังเกตอย่างน้อย x)

ทางออกที่ชัดเจนสำหรับปัญหานี้คือใช้ต้นไม้ตัดสินใจ (โมเดลหนึ่งตัวแปรแบบง่าย) แต่ฉันไม่สามารถหาฟังก์ชั่นใด ๆ ใน R ที่จะมี "จำนวนสาขาสูงสุด" เป็นพารามิเตอร์ - พวกเขาทั้งหมดแบ่งตัวแปร เป็น 2 gropus (<= x และ> x) SAS miner มีพารามิเตอร์ "branch branch" แต่ฉันกำลังมองหาโซลูชันที่ไม่ใช่เชิงพาณิชย์

ตัวแปรบางตัวของฉันมีค่าเฉพาะไม่กี่ค่า (และสามารถถือว่าเป็นตัวแปรแบบแยก) แต่ฉันต้องการแยกพวกมันออกเป็นช่วงเวลาที่น้อยลง

ทางออกที่ใกล้ที่สุดสำหรับปัญหาของฉันถูกนำไปใช้ในแพ็คเกจ smbinning ใน R (ซึ่งอาศัยฟังก์ชั่น ctree จากแพ็คเกจปาร์ตี้) แต่มันมีข้อเสียสองประการ: มันเป็นไปไม่ได้ที่จะกำหนดจำนวนช่วงเวลา (อย่างไรก็ตามคุณสามารถหาวิธีแก้ไขได้ พารามิเตอร์ p) และมันไม่ทำงานเมื่อ data vector มีค่าที่ไม่ซ้ำกันน้อยกว่า 10 ค่า อย่างไรก็ตามคุณสามารถดูตัวอย่างผลลัพธ์ได้ที่นี่ (คอลัมน์ Cutpoint และ Odds มีความสำคัญ):

Cutpoint CntRec CntGood CntBad CntCumRec CntCumGood CntCumBad PctRec BadRate   Odds  LnOdds     WoE     IV
1   <= 272   9081     169   8912      9081        169      8912 0.1874  0.9814 0.0190 -3.9653 -0.6527 0.0596
2   <= 311   8541     246   8295     17622        415     17207 0.1762  0.9712 0.0297 -3.5181 -0.2055 0.0068
3   <= 335   2986     163   2823     20608        578     20030 0.0616  0.9454 0.0577 -2.8518  0.4608 0.0163
4  Missing  27852    1125  26727     48460       1703     46757 0.5747  0.9596 0.0421 -3.1679  0.1447 0.0129
5    Total  48460    1703  46757        NA         NA        NA 1.0000  0.9649 0.0364 -3.3126  0.0000 0.0956

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


SPSS มีคำสั่งที่เหมาะสมที่สุด Binning SPSS Algorithms Optimal BinningGoogle
ttnphns

คุณเคยเห็นโพสต์นี้stackoverflow.com/questions/7018954/…มันกล่าวถึงการใช้ข้อมูลค่า แต่ไม่ชัดเจนว่ามันหมายถึงอะไรโดย IV = 1 หรือไม่ได้อธิบายวิธีการที่จะได้รับ
ดัม

คำตอบ:


7

ในขณะที่อ่านหนังสือเล่มนี้ที่นี่ (Nagarajan, 2103 [1]) ฉันเจอข้อมูลที่มีค่านี้ที่ฉันอ้างถึงอย่างไร้ยางอายที่นี่:

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

  • ใช้การวิเคราะห์พฤติกรรมก่อนเรียนรู้โครงสร้างของเครือข่าย ตัวอย่างบางส่วน ได้แก่ : กฎ Sturges, Freedman-Diaconis หรือ Scott (Venables and Ripley, 2002)

  • การเลือกจำนวนของช่วงเวลาและขอบเขตของพวกเขาเพื่อความสมดุลของความถูกต้องและการสูญเสียข้อมูล (Kohavi และ Sahami, 1996), อีกครั้งหนึ่งตัวแปรในเวลาและก่อนที่จะได้เรียนรู้โครงสร้างเครือข่าย แนวทางที่คล้ายกันเมื่อพิจารณาคู่ของตัวแปรจะนำเสนอใน Hartemink (2001)

  • ทำการเรียนรู้และลดทอนซ้ำ ๆ จนกระทั่งไม่มีการปรับปรุง (Friedman และ Goldszmidt, 1996)

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

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

[1]: Nagarajan R. (2013),
เครือข่ายแบบเบย์ใน R พร้อมกับแอปพลิเคชันใน Systems Biology
Springer


4

ลองใช้ชุดข้อมูลสำหรับ R. https://cran.r-project.org/web/packages/Information/Information.pdf https://cran.r-project.org/web/packages/Information/vignettes/Information-vignette .html

แพคเกจข้อมูลมีฟังก์ชั่นสำหรับการคำนวณ WoE และ IV (จำนวนถังขยะเป็นพารามิเตอร์ที่มีความยืดหยุ่นค่าเริ่มต้นคือ 10) และเป็นเครื่องมือที่ใช้งานง่ายสำหรับการสำรวจข้อมูล เอาต์พุตไม่ได้มีอัตราต่อรองแม้ว่า; และมันเป็นไปไม่ได้ที่จะระบุศูนย์เป็นถังขยะแยกต่างหาก (สำหรับงานของฉันศูนย์มักจะเป็นถังขยะที่ถูกต้องของสิทธิของตนเอง); และมันก็ดีที่จะได้รับผลลัพท์จากชุดข้อมูลที่จะเป็นเหมือนการสูบบุหรี่ อย่างไรก็ตามมีการกล่าวถึงคุณสมบัติที่ดี แต่ยังไม่พร้อมใช้งานของแพ็คเกจข้อมูลแพ็คเกจ R อื่น ๆ สำหรับ WoE และ IV (woe, klaR) ไม่ได้สร้างความประทับใจให้กับเครื่องมือที่มีประโยชน์เหมือนกับแพ็คเกจข้อมูลในความเป็นจริงฉัน ไม่สามารถรันได้หลังจากพยายาม 2-3 ครั้ง สำหรับภารกิจของ dscretisation / binning แพ็คเกจข้อมูลและ smbinning สามารถทำงานร่วมกันได้เป็นอย่างดี

สำหรับการใช้งานจริงฉันใช้ data.table แทนฟังก์ชั่น cut () ดูลิงค์ไปยังโพสต์ของฉันด้านล่างมันมีรหัสทั่วไปในด้านล่างสุดของคำถามเริ่มต้น: /programming/34939845/binning-variables-in-a-dataframe-with-input-bin-data- จากอีก-dataframe

หวังว่ามันจะช่วย


@kjetil, kjetil b halvorsen คุณพูดถูก แพคเกจข้อมูลมีฟังก์ชั่นสำหรับการคำนวณ WoE และ IV (จำนวนถังขยะเป็นพารามิเตอร์ที่มีความยืดหยุ่นค่าเริ่มต้นคือ 10) และเป็นเครื่องมือที่มีประโยชน์สำหรับการสำรวจข้อมูลและเป็นผลมาจากการ binning แม้ว่าผลลัพธ์จะไม่มี Odds และมันเป็นไปไม่ได้ที่จะระบุศูนย์เป็น bin แยกต่างหาก (สำหรับงานของฉันศูนย์มักจะเป็น bin ที่ถูกต้องของตัวเอง) แพ็คเกจ R อื่น ๆ สำหรับ WoE และ IV (woe, klaR) ไม่ได้สร้างความประทับใจให้กับเครื่องมือที่มีประโยชน์เหมือนกับแพ็คเกจข้อมูล ดังนั้นข้อมูลและแพ็คเกจ smbinning สามารถทำงานร่วมกันได้เป็นอย่างดี
Aktan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.