รูปแบบข้อมูล libsvm [ปิด]


31

ฉันใช้เครื่องมือ libsvm ( http://www.csie.ntu.edu.tw/~cjlin/libsvm/ ) เพื่อรองรับการจำแนกเวกเตอร์ อย่างไรก็ตามฉันสับสนเกี่ยวกับรูปแบบของข้อมูลอินพุต

จาก README:

รูปแบบของไฟล์ข้อมูลการฝึกอบรมและการทดสอบคือ:

<label> <index1>:<value1> <index2>:<value2> ...
.
.
.

แต่ละบรรทัดมีอินสแตนซ์และสิ้นสุดด้วยอักขระ '\ n' สำหรับการจัดหมวดหมู่<label>เป็นจำนวนเต็มที่ระบุคลาสป้ายกำกับ (รองรับหลายคลาส) สำหรับการถดถอย<label>คือค่าเป้าหมายซึ่งอาจเป็นจำนวนจริงใด ๆ สำหรับ SVM แบบชั้นเดียวไม่ได้ใช้เพื่อให้เป็นหมายเลขใดก็ได้ ทั้งคู่<index>:<value>ให้ค่าคุณลักษณะ (คุณลักษณะ): <index>เป็นจำนวนเต็มเริ่มต้นจาก 1 และ<value> เป็นจำนวนจริง ข้อยกเว้นเพียงอย่างเดียวคือเคอร์เนลที่คำนวณล่วงหน้าซึ่ง <index>เริ่มต้นจาก 0; ดูส่วนของเมล็ดที่คำนวณล่วงหน้าได้ ดัชนีจะต้องอยู่ในลำดับ ASCENDING ฉลากในไฟล์ทดสอบใช้เพื่อคำนวณความแม่นยำหรือข้อผิดพลาดเท่านั้น หากไม่ทราบให้กรอกตัวเลขใด ๆ ในคอลัมน์แรก

ฉันมีคำถามต่อไปนี้:

  1. การใช้งาน<index>คืออะไร? มันมีจุดประสงค์อะไร
  2. มีความสอดคล้องกันระหว่างค่าดัชนีเดียวกันของอินสแตนซ์ข้อมูลที่ต่างกันหรือไม่?
  3. ถ้าฉันพลาด / ข้ามดัชนีระหว่างนั้นล่ะ

ฉันถามเพราะ datafile * heart_scale * ซึ่งรวมอยู่ในแพคเกจสำหรับ libsvm ที่บรรทัดที่ 12 ดัชนีเริ่มต้นจาก 2 <value>ดัชนีสำหรับ 1 ถ่ายไม่รู้จัก / หายไปหรือไม่? หมายเหตุ: เครื่องมือ / checkdata.py เครื่องมือที่ให้มาพร้อมกับแพ็คเกจระบุว่าไฟล์ * heart_scale * ถูกต้อง

คำตอบ:


23

ลิงค์นี้ควรช่วย: http://www.csie.ntu.edu.tw/~cjlin/libsvm/faq.html#/Q3:_Data_preparation

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

a) ดัชนีใช้เพื่อแยกความแตกต่างระหว่างคุณสมบัติ / พารามิเตอร์เท่านั้น ในแง่ของไฮเปอร์สเปซมันเป็นเพียงการกำหนดแต่ละองค์ประกอบ: เช่น: 3-D (3 คุณสมบัติ) ดัชนี 1,2,3 จะตรงกับพิกัด x, y, z

b) การติดต่อทางจดหมายเป็นเพียงทางคณิตศาสตร์เมื่อสร้างไฮเปอร์ - เครื่องบินสิ่งเหล่านี้ทำหน้าที่เป็นพิกัด

c) หากคุณข้ามไปหนึ่งค่าควรกำหนดค่าเริ่มต้นเป็นศูนย์

ในระยะสั้น +1 1: 0.7 2: 1 3: 1 แปลเป็น:

กำหนดให้กับคลาส +1 จุด (0.7,1,1)


4

คู่มือขนาดเล็กและรวดเร็ว:

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

คลาสการจำแนกเป็นสิ่งที่เหมือนจริง / เท็จ 0,1, ... ที่นี่คุณต้องแปลงมันเป็นจำนวนเต็ม (เช่น 0,1)

ฟีเจอร์พื้นที่เป็นพื้นที่สำหรับข้อมูลหลายมิติของคุณ แต่ละ feauture (vector) ควรมี ID ของตัวเอง (ดัชนี) และค่าของมัน เช่น 1: 23.2 หมายความว่าคุณลักษณะ / มิติข้อมูล 1 มีค่า 23.2

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