ฉันจะแยกความแตกต่างระหว่างข้อมูลที่เป็นหมวดหมู่และข้อมูลที่เป็นตัวเลขได้อย่างไร


12

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

อย่างไรก็ตามเขาไม่แน่ใจว่าจะดำเนินการกำหนดประเภทข้อมูลแบบไดนามิกสำหรับข้อมูลตามจำนวนที่แน่นอนได้อย่างไร ตัวอย่างเช่น:

    CITY
    Albuquerque
    Boston
    Chicago

เห็นได้ชัดว่านี่ไม่ใช่ข้อมูลตัวเลขและจะถูกเก็บไว้เป็นข้อความ อย่างไรก็ตาม

    ZIP
    80221
    60653
    25525

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


แนวคิดสองสามข้อที่เรามี:

  1. หากคอลัมน์เป็นจำนวนเต็มทั้งหมดให้ระบุชื่อเป็นหมวดหมู่ เห็นได้ชัดว่าใช้งานไม่ได้ แต่เป็นความคิด
  2. หากคอลัมน์มีค่าที่ไม่ซ้ำกันน้อยกว่าnค่าและเป็นตัวเลขให้กำหนดป้ายกำกับให้เป็นหมวดหมู่ นี่อาจเข้าใกล้ แต่ก็ยังอาจมีปัญหาเกี่ยวกับข้อมูลที่เป็นตัวเลข
  3. ปรับปรุงรายการข้อมูลตัวเลขทั่วไปที่ควรจัดหมวดหมู่และเปรียบเทียบส่วนหัวคอลัมน์กับรายการนี้เพื่อจับคู่ ตัวอย่างเช่นทุกอย่างที่มี "ZIP" ในนั้นจะเป็นหมวดหมู่

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


ไม่ใช่หลักฐานเต็มรูปแบบ แต่ถ้าเริ่มต้นด้วย 0 มันมักจะไม่ใช่ตัวเลข
paparazzo

คุณควรถามตัวเองด้วยว่าอะไรคือผลของการทำให้มันผิด? ซึ่งควรพิจารณาว่าคุณต้องใช้ความพยายามมากแค่ไหนในกระบวนการ คุณต้องการความแม่นยำ 90% หรือความแม่นยำ 99% หรือความแม่นยำ 99.9999%
Spacedman

ฉันจะใช้ฮิวริสติกทั้งหมดที่แนะนำในคำตอบเป็นคุณสมบัติและฝึกอบรมตัวจําแนกไบนารี่
Emre

ดูstats.stackexchange.com/a/106400/17230 ไม่มีความจริงจริงที่นี่
Scortchi - Reinstate Monica

ดูเพิ่มเติมstats.stackexchange.com/q/336261/17230
Scortchi - Reinstate Monica

คำตอบ:


8

ฉันไม่ทราบวิธีที่จะเข้าใจผิดได้ในการทำเช่นนี้ นี่คือแนวคิดหนึ่งที่อยู่ด้านบนของหัวของฉัน:

  1. รักษาค่าเป็นหมวดหมู่ตามค่าเริ่มต้น
  2. ตรวจสอบคุณลักษณะต่าง ๆ ของข้อมูลที่บ่งบอกว่าเป็นจริงอย่างต่อเนื่อง ให้น้ำหนักคุณลักษณะเหล่านี้ตามความเป็นไปได้ที่จะสัมพันธ์กับข้อมูลต่อเนื่อง นี่เป็นตัวอย่างที่เป็นไปได้:
    • ค่าเป็นจำนวนเต็ม: +.7
    • ค่าคือ float: +.8
    • โดยปกติค่าจะถูกแจกจ่าย: +.3
    • ค่ามีจำนวนค่าที่ไม่ซ้ำกันค่อนข้างน้อย: +.3
    • ค่าไม่ใช่จำนวนอักขระทั้งหมด: +.1
    • ค่าไม่มีศูนย์นำหน้า: +.1
  3. ปฏิบัติต่อคอลัมน์ใด ๆ ที่รวมกันมากกว่า 1 ว่าเป็นตัวเลข ปรับปัจจัยและน้ำหนักตามการทดสอบกับชุดข้อมูลที่แตกต่างกันเพื่อให้เหมาะกับความต้องการของคุณ คุณสามารถสร้างและฝึกอบรมอัลกอริทึมการเรียนรู้ด้วยเครื่องจักรแยกต่างหากเพื่อทำสิ่งนี้

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

@PabloSuau ฉันชอบความคิดนั้น อัลกอริทึมการจำแนกอาจเป็นวิธีที่ยอดเยี่ยมที่นี่ ขอบคุณ jncraton สำหรับลักษณะบางอย่างที่จะดู
ปลาปัวซอง

4

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

  • คำนวณจำนวนค่าที่ไม่ซ้ำของคอลัมน์นั้น
  • หารจำนวนนี้ด้วยจำนวนแถวทั้งหมด
  • หากอัตราส่วนนี้อ่อนกว่าขีด จำกัด บางอย่าง (เช่น 20%) คุณจะถือว่าเป็นหมวดหมู่

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

มันทำงานได้ค่อนข้างดีสำหรับฉันในอดีต ...


2

เนื่องจากคำถามนี้ถูกโพสต์ข้ามความคิดเห็นเริ่มต้นโดย @nickcox on Cross Validated นั้นมีความเกี่ยวข้องสูงและเป็นจริง มุมมองของฉันแตกต่างกันเล็กน้อย ตัวอย่างเช่นฉันจะเรียบเรียงคำถามใหม่โดยแยกย่อยมันออกเป็นสองส่วน: อันดับแรกมีปัญหาว่าจะแบ่งประเภทสตรีมข้อมูลที่ไม่รู้จักตามประเภทข้อมูลอย่างไรและอันดับที่สองอัตราการจำแนกประเภทใดที่คาดหวังได้ ทั้งสองคำถามจะตอบได้ทันทีหากมีคนต้องการใช้เวลาในการทำ

ประเด็นแรกคือการพัฒนาระบบผู้เชี่ยวชาญตามกฎตามสายของสิ่งที่เสนอเบื้องต้นในความคิดเห็นและคำตอบของเธรดเหล่านี้โดยใช้ตัวอย่างข้อมูลจริงที่พร้อมใช้งาน

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

ขั้นตอนที่สามจะเกี่ยวข้องกับการปรับปรุงกฎซ้ำ ๆ เพื่อให้สะท้อนข้อมูลที่ถูกส่งผ่านอย่างถูกต้องมากขึ้น - เท่าที่เป็นไปได้

ในใจของฉันในขณะที่น่าเบื่อโครงการดังกล่าวจะไม่เกี่ยวข้องกับปริมาณงานที่ห้ามปราม

---- ความคิดเห็นเพิ่มเติม ----

การอภิปรายที่ดีของการดึงคุณสมบัติที่เกี่ยวข้องกับกระบวนการสร้างข้อมูลที่เกิดขึ้นกับ CV ที่นี่:

/stats/191935/what-does-the-process-that-generates-the-data-mean-and-how-does-feature-selec

การดึงคุณสมบัติการเลือกและ DGP เป็นจุดเริ่มต้นที่ยอดเยี่ยมสำหรับการพัฒนาระบบผู้เชี่ยวชาญ


ฉันได้ลบคำถามเกี่ยวกับการตรวจสอบข้าม สำหรับการอ้างอิง @NickCox ระบุ: "มันเลวร้ายยิ่งกว่าที่คุณคิดแม้ว่าคุณจะคิดว่ามันแย่กว่าที่คุณคิดคะแนนทศนิยมอาจแฝงตัวอยู่ในตัวแปรเด็ดขาดซึ่งเป็นส่วนหนึ่งของการจำแนกประเภทรหัสเช่นอุตสาหกรรมหรือโรค กว่าหมวดหมู่: 3 หมายถึง 3 คันหรือแมวไม่เหมือน 3 หมายถึง "คนเป็นเจ้าของรถยนต์" หรือ "คนเป็นเจ้าของโดยแมว" การวัดอาจเป็นจำนวนเต็มตามแบบแผนเช่นความสูงของคนอาจเพิ่ง รายงานว่าเป็นจำนวนเต็มเซนติเมตรหรือนิ้วความดันโลหิตเป็นจำนวนเต็มมิลลิเมตร Hg "
ปลาปัวซอง

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