Neural Nets: ตัวแปรร้อนแรงอย่างต่อเนื่องหรือไม่


13

ฉันมีข้อมูลดิบที่มีประมาณ 20 คอลัมน์ (20 คุณสมบัติ) สิบรายการเป็นข้อมูลต่อเนื่องและ 10 รายการจัดอยู่ในหมวดหมู่ ข้อมูลหมวดหมู่บางส่วนอาจมีค่าแตกต่างกัน 50 ค่า (สหรัฐอเมริกา) หลังจากที่ฉันประมวลผลข้อมูลล่วงหน้าแล้วคอลัมน์ 10 คอลัมน์ต่อเนื่องจะกลายเป็น 10 คอลัมน์ที่เตรียมไว้และค่า 10 หมวดหมู่กลายเป็นตัวแปร 200 ตัวที่เข้ารหัสร้อน ฉันกังวลว่าถ้าฉันใส่ฟีเจอร์ 200 + 10 = 210 เหล่านี้ทั้งหมดลงในตาข่ายประสาทดังนั้นฟีเจอร์ 200-one-hot (คอลัมน์หมวดหมู่ 10 คอลัมน์) ทั้งหมดจะมีอิทธิพลต่อคุณสมบัติ 10 ต่อเนื่องทั้งหมด

บางทีวิธีการหนึ่งอาจจะเป็นการรวมกลุ่มหรือคอลัมน์ นี่เป็นข้อกังวลที่ถูกต้องและมีวิธีมาตรฐานในการจัดการกับปัญหานี้หรือไม่?

(ฉันใช้ Keras แม้ว่าฉันไม่คิดว่ามันจะสำคัญมาก)


คุณได้พิจารณาใช้แบบจำลองลำดับที่สอง (หรือมากกว่า) แล้วรวมเข้าด้วยกันหรือไม่ แต่ละรุ่นมีอินพุตที่ตรงกับข้อมูลที่ดีกว่า (ตรงข้ามกับการบดมันเหมือนไส้กรอก) เป้าหมายเหมือนกัน แต่คุณสร้างข้อมูลการฝึกอบรมสองชุดแต่ละชุดจะถูกป้อนอย่างอิสระระหว่างการฟิตติ้ง โดยตรงหลังจากที่ผสานมาถึงเลเยอร์เอาต์พุตสุดท้ายของคุณดังนั้นเลเยอร์สุดท้ายจะตัดสินใจว่าโมเดลใดทำงานได้ดีที่สุดสำหรับตัวอย่างเฉพาะ จาก keras.io: keras.io/getting-started/sequential-model-guide
photox

สิ่งที่ฉันกำลังมองหา ขอบคุณสำหรับการมีส่วนร่วม
user1367204

ฉันลองสิ่งนี้และ val_loss ของชุด (model_1, model_2) สูงกว่า val_loss ของ model_1 และสูงกว่า val_loss ของ model_2
user1367204

คุณลองทำสิ่งนี้จริง ๆ แล้วและได้พิจารณาแล้วว่าปัญหานี้เกิดขึ้นจริงหรือไม่? คุณทำการทดสอบอะไรเพื่อตรวจสอบจุดนี้ ผลลัพธ์คืออะไร
Hugh Perkins

คำตอบ:


5

คุณสามารถเข้ารหัสตัวแปรเด็ดขาดด้วยวิธีที่แตกต่างจาก one-hot ตัวเข้ารหัสไบนารีหรือ hashing อาจเหมาะสมสำหรับกรณีนี้ การแฮชเป็นพิเศษนั้นดีเพราะคุณเข้ารหัสหมวดหมู่ทั้งหมดไว้ในการแสดงเดี่ยวต่อเวกเตอร์ฟีเจอร์ดังนั้นจึงไม่มีสิ่งใดที่โดดเด่นอีกอัน นอกจากนี้คุณยังสามารถระบุขนาดของการเป็นตัวแทนขั้นสุดท้ายดังนั้นสามารถแฮชตัวแปรเด็ดขาดทั้งหมดเป็น 10 ฟีเจอร์และจบลงด้วยฟีเจอร์ตัวเลข 20 ฟีเจอร์ (ครึ่งต่อเนื่องครึ่งฮาล์ฟ)

ทั้งสองถูกนำมาใช้ในhttps://github.com/scikit-learn-contrib/categorical-encodingหรือตรงไปตรงมาค่อนข้างจะใช้ตัวเอง


4

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

พิจารณาคำศัพท์จำนวนมากในพจนานุกรมภาษาอังกฤษ ถ้าตัวเลขนี้เป็น N เราก็สามารถแทนแต่ละคำว่าเป็นเวกเตอร์แบบรหัสร้อนที่มีความยาว N อย่างไรก็ตามword-to-vecสามารถบันทึกข้อมูลทั้งหมดนี้ได้ในเวกเตอร์ที่มีความยาวระหว่าง 200-300

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