วิธีที่ดีที่สุดในการจำแนกชุดข้อมูลที่มีแอตทริบิวต์หลายประเภท


13

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

คำตอบ:


11

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

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


2
โหวตอีกครั้งสำหรับการลดขนาด เพียงแค่การเพิ่ม: Principal Component AnalysisหรือNon-Negative Matrix Factorizationจะลดจำนวนของตัวแปรเพิ่มประสิทธิภาพข้อมูลที่กระจัดกระจายและเปลี่ยนตัวแปรทั้งหมดเป็นเชิงปริมาณ ยิ่งไปกว่านั้นการประเมินคุณภาพของรูปแบบการลดมิติข้อมูลผู้เขียนคำถามสามารถประเมินประโยชน์ของตัวแปรข้อความ
sobach

@indico คำตอบที่ดี คุณช่วยให้เราอ้างอิงในหนังสือหรือกระดาษอัลกอริทึมที่ใช้ต้นไม้ทำงานได้ดีขึ้นด้วยข้อมูลแบบผสม (ข้อมูลเชิงหมวดหมู่และเชิงปริมาณ)?
ZelelB

6

เป็นการยากที่จะตอบคำถามนี้โดยไม่ทราบข้อมูลเพิ่มเติม ที่กล่าวว่าฉันจะให้คำแนะนำต่อไปนี้:

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

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


2

ด้วยข้อมูลเล็กน้อยที่คุณให้ไว้เกี่ยวกับลักษณะของข้อมูลของคุณฉันขอแนะนำให้คุณทำตามวิธีการต่อไปนี้:

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

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

    คุณยังสามารถใส่ชุดค่าผสมที่แตกต่างกันในชุดข้อมูลของคุณจากนั้นขั้นตอนต่อไปจะกำหนดชุดค่าที่จะใช้สำหรับการวิเคราะห์ ในกรณีที่ข้อมูลข้อความสามารถ "แปล" ในตัวแปรสั่งให้แน่ใจว่าคุณทำเช่นนี้ (เช่นถ้าคุณมี "เล็กกลางสูง" เปลี่ยนเป็น "1,2,3")

  2. เปลี่ยนตัวแปรเด็ดขาดของคุณ (ไม่ใช่ลำดับตามลำดับ) เป็นตัวแปรจำลอง (ไบนารี) อัลกอริทึมการเลือกการจำแนกประเภท / คุณสมบัติส่วนใหญ่ทำสิ่งนี้โดยอัตโนมัติ แต่ให้แน่ใจว่าเป็นกรณีของสิ่งที่คุณเลือก ฉันตระหนักว่ามิติของข้อมูลจะค่อนข้างใหญ่ ณ จุดนี้ แต่สิ่งนี้จะถูกจัดการในขั้นตอนต่อไป

  3. ใช้เทคนิคการเลือกคุณสมบัติ / เทคนิคการลดขนาดบนข้อมูลของคุณ คุณสามารถค้นหาการตรวจสอบการใช้งานของเทคนิคดังกล่าวที่นี่ หากคุณใช้ Python เครื่องมือ sklearn มีตัวเลือกมากมายให้คุณ (ดูรายละเอียดเพิ่มเติมที่นี่ ) ตรวจสอบให้แน่ใจว่าคุณใช้เทคนิคที่คำนึงถึงความหลากหลายทางชีวภาพด้วยเช่นกัน ฉันจะลองวิเคราะห์ส่วนประกอบหลักหรืออัลกอริทึมแบบทรี

  4. สำหรับการจำแนกข้อมูลฉันจะใช้ Decision Tree Classifier (มีให้ผ่าน sklearn ด้วย ) นอกจากนี้ยังทำการตั้งค่าคุณสมบัติการเลือกความสำคัญของน้ำหนักกับคุณสมบัติ คุณสามารถตั้งค่าระดับของรายละเอียดบนต้นไม้ที่สร้างขึ้นทั้งนี้ขึ้นอยู่กับตัวเลือกของคุณ (เช่น max_depth, min_samples_split) ตรวจสอบให้แน่ใจว่าได้ปรับระดับรายละเอียดตามการตรวจสอบข้ามเพื่อหลีกเลี่ยงการ overfitting

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