Hashing Trick - เกิดอะไรขึ้นจริง


12

เมื่ออัลกอริธึม ML เช่น Vowpal Wabbit หรือเครื่องแยกตัวประกอบที่ชนะการคลิกผ่านอัตราการแข่งขัน ( Kaggle ) กล่าวถึงคุณลักษณะว่า 'แฮช' แล้วอะไรคือความหมายของแบบจำลองจริง ๆ ให้บอกว่ามีตัวแปรที่แสดง ID ของการเพิ่มอินเทอร์เน็ตซึ่งใช้กับค่าเช่น '236BG231' จากนั้นฉันเข้าใจว่าคุณลักษณะนี้ถูกแฮชเป็นจำนวนเต็มแบบสุ่ม แต่คำถามของฉันคือ:

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

คำตอบ:


7

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

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

ในกรณีส่วนใหญ่เทคนิคนี้รวมกับการเลือกคุณสมบัติและความยืดหยุ่นสุทธิใน LR ทำหน้าที่คล้ายกันมากกับเลเยอร์ที่ซ่อนอยู่หนึ่ง NN ดังนั้นมันจึงทำงานได้ค่อนข้างดีในการแข่งขัน


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

1
การเข้ารหัสโฮสต์หนึ่งรายการไม่ได้เป็นส่วนหนึ่งของคุณสมบัติการแฮช แต่มักใช้ควบคู่เนื่องจากช่วยในการคาดเดาได้ดี วิธีคิดอย่างหนึ่งในการเข้ารหัสแบบร้อนแรงคือการเปลี่ยนคุณสมบัติจากชุดของค่า N ที่ไม่ต่อเนื่องกันให้กลายเป็นคำถามแบบไบนารี N ชุด บางทีมันอาจไม่สำคัญสำหรับฉันที่จะรู้ว่าฟีเจอร์ J เป็น 2 หรือ 3 เท่านั้นซึ่งไม่ใช่ 4 อันใดอันหนึ่งที่ทำให้ความแตกต่างนั้นมีความเฉพาะเจาะจง สิ่งนี้ช่วยได้มากกับแบบจำลองเชิงเส้นในขณะที่วิธีการของ ensemble (เช่น RF) จะสแกนจุดแตกหักในคุณลักษณะเพื่อค้นหาความแตกต่างนั้น
cwharland
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.