การเข้ารหัสคุณสมบัติเด็ดขาดเป็นตัวเลขสำหรับการเรียนรู้ของเครื่อง


14

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

แบรนด์รถยนต์: Audi, BMW, Chevrolet ... รหัสผู้ใช้: 1, 25, 26, 28 ...

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

ดังนั้นวิธีการพื้นฐานดูเหมือนว่าจะใช้เวกเตอร์ไบนารีเพื่อเข้ารหัสหมวดหมู่:

ออดี้: 1, 0, 0 ... BMW: 0, 1, 0 ... เชฟโรเลต: 0, 0, 1 ...

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

คำถามคือจะมีวิธีที่ดีกว่า บางทีอาจเกี่ยวข้องกับความน่าจะเป็นหรือไม่


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

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

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

แอนน์ - แบบจำลองเอฟเฟกต์จริง ๆ ไม่ได้ไม่สนใจบุคคล - ดังนั้นพวกเขาจึงถือว่าเป็นตัวอย่างจากประชากร
B_Miner

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

คำตอบ:


6

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

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

คุณยังสามารถทำการรวมกลุ่มของเวกเตอร์ผู้ใช้งานดิบของคุณและใช้รหัสศูนย์ที่ใกล้เคียงที่สุด N อันดับแรกเป็นคุณสมบัติที่เปิดใช้งานแทนรหัสผู้ใช้


ตกลงในขณะที่นี่เป็นคำถามทั่วไปฉันเห็นว่าคุณส่วนใหญ่จดจ่อกับปัญหารหัสผู้ใช้ดังนั้นนี่คือสาเหตุที่ฉันต้องการใช้พวกเขา ดู Let 's ที่หนึ่งในการแข่งขันของ Kaggle ประมาณ Grockit: kaggle.com/c/WhatDoYouKnow เป้าหมายคือการทำนายว่าผู้ใช้จะตอบคำถามอย่างถูกต้องหรือไม่ มันเป็นปัญหาที่คล้ายกันในความคิดของฉันกับระบบผู้แนะนำคุณเพิ่งได้รับคำถามแทนภาพยนตร์และถูกต้อง / ไม่ถูกต้องแทนการให้คะแนนรวมทั้งข้อมูลอื่น ๆ Timestamps มีให้บริการแล้ว :)
Nucular

1
ในกรณีนี้คุณสามารถทำการสันนิษฐานได้ว่าผู้ใช้เป็นอิสระและคุณสามารถสร้างลักษณนามหนึ่งตัวต่อผู้ใช้ที่ผ่านการฝึกอบรมเฉพาะในประวัติของพวกเขาเอง
ogrisel

1

การเข้ารหัสแบบเท่าเทียมกันอาจเป็นสิ่งที่คุณกำลังมองหาเมื่อพยายามเข้ารหัสคลาสในเครือข่ายประสาท มีแนวโน้มที่จะทำงานได้ดีกว่าการเข้ารหัส "1 จาก n" ที่อ้างอิงในโพสต์อื่น สำหรับการอ้างอิงฉันขอแนะนำให้: http://www.heatonresearch.com/wiki/Equilateral


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