ทางเลือกการเข้ารหัสแบบร้อนสำหรับค่าหมวดใหญ่?


13

สวัสดีมี dataframe ที่มีค่าหมวดใหญ่มากกว่า 1600 หมวดมีวิธีใดที่ฉันสามารถหาทางเลือกเพื่อที่ฉันจะได้ไม่เกิน 1600 คอลัมน์

ฉันพบลิงค์ด้านล่างที่น่าสนใจhttp://amunategui.github.io/feature-hashing/#sourcecode

แต่พวกเขากำลังแปลงเป็นคลาส / วัตถุที่ฉันไม่ต้องการ ฉันต้องการผลลัพธ์สุดท้ายของฉันเป็น dataframe เพื่อให้ฉันสามารถทดสอบกับโมเดลการเรียนรู้ของเครื่องอื่นได้หรือไม่ หรือมีวิธีใดที่ฉันสามารถใช้เมทริกซ์ genetrated ในการฝึกอบรมโมเดลการเรียนรู้ของเครื่องอื่นนอกเหนือจาก Logistic ถดถอยหรือ XGBoost

จะมีต่อไปฉันจะใช้?


นี่เป็นปัญหาจริงๆเหรอ? สมมติว่าคุณกำลังใช้การแสดงเมทริกซ์แบบกระจัดกระจายการเข้ารหัส onehot จะไม่เป็นปัญหาจริง
Louis T

@LouisT ฉันมีบันทึกนับล้านระเบียนมากกว่า 500 ล้านครั้ง
vinaykva

ยังคงถ้ามันร้อนมันจะไม่สำคัญถ้าใช้เมทริกซ์กระจัดกระจาย
Louis T

@LouisT ซับซ้อนจะเพิ่มขึ้นและเวลาที่รถไฟยังจะเพิ่มขึ้นและข้อมูลของฉันจะกลายเป็นวิธีที่เบาบางเกินไป
vinaykva

1
โพสต์ของคุณประมาณ 1 ปีที่ผ่านมาและอาจไม่สนใจอีกต่อไป แต่ในกรณีที่คุณยังคงสนใจเกี่ยวกับ Entity Embedding โดยใช้ Neural Nets หรือไม่ medium.com/@satnalikamayank12/…
TwinPenguins

คำตอบ:


10

ทางเลือกหนึ่งคือการแมปค่าที่หายากกับ 'อื่น ๆ ' โดยทั่วไปมักใช้วิธีนี้เช่นการประมวลผลภาษาธรรมชาติปรีชาที่ฉลากหายากมากไม่ได้มีพลังทางสถิติมากนัก

ฉันเคยเห็นผู้คนทำแผนที่ค่านิยม 1 หมวดหมู่กับเวกเตอร์มิติล่างซึ่งเวกเตอร์ 1 อันร้อนแต่ละตัวนั้นถูกนำมาแสดงซ้ำเพื่อเป็นการดึงจากเกาส์หลายตัวแปร ดูเช่นกระดาษ Deep Knowledge Tracing ซึ่งกล่าวว่าวิธีการนี้ได้รับแรงบันดาลใจจากแนวคิดของการตรวจจับแบบบีบอัด:

BARANIUK, R. การตรวจจับแรงกด นิตยสารประมวลผลสัญญาณ IEEE 24, 4 (2007)

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


ฉันสงสัยว่าจะคำนวณระยะทางด้วยการเข้ารหัสดังกล่าวได้อย่างไร
eric2323223

2

คุณสามารถอ่านข้อมูลและรับรายการค่าที่ไม่ซ้ำกันทั้งหมดของตัวแปรเด็ดขาดของคุณ จากนั้นคุณสามารถใส่วัตถุเข้ารหัสร้อน (เช่น sklearn.preprocessing.CategoricalEncoder) ในรายการค่าที่ไม่ซ้ำกันของคุณ

วิธีนี้ยังสามารถช่วยในกรอบทดสอบรถไฟหรือเมื่อคุณกำลังอ่านข้อมูลของคุณในชิ้น ฉันได้สร้างโมดูลหลามที่ทำสิ่งนี้เอง คุณสามารถค้นหาได้ในพื้นที่เก็บข้อมูล GitHub นี้ - dummyPy

A a สั้นสอนเกี่ยวกับเรื่องนี้ - วิธีการตัวแปรหนึ่งร้อนเข้ารหัสหมวดหมู่ในงูใหญ่?


1

อ้างถึงลิงค์นี้ (ซึ่งเกี่ยวข้องกับคุณลักษณะหมวดหมู่ที่มีค่าที่ไม่ซ้ำกันค่อนข้างน้อย):

https://datascience.stackexchange.com/a/64021/67149

สำหรับการฝังคุณสามารถดูลิงค์ด้านล่าง (ไม่ได้เขียนโดยฉัน แต่ควรอ่านครั้งเดียว): https://medium.com/@satnalikamayank12/on-learning-embeddings-for-categorical-data-using-keras-165ff2773fc9


0

คุณสามารถทำการบันทึกค่าที่คล้ายกันเพื่อให้ค่า (หรือคอลัมน์) ที่มีค่าใกล้เคียงที่สุด (หรือมีลักษณะคล้ายกันมาก) สามารถถูกแทนที่ด้วยค่าเดียว (หรือคอลัมน์) และค่า 1600 ของคุณอาจลดลงถึง 400 น้อยกว่า)

อดีต สำหรับค่าเช่น (เมฆเช่น - รัศมีเมฆฝนแสงฝนฝนตกหนักสามารถแปลง (ฝนฝนฝนตกหนัก)

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