ผลต่างระหว่างรุ่นของ "01204472/การทดลองเกี่ยวกับเวกเตอร์"
Jittat (คุย | มีส่วนร่วม) |
Jittat (คุย | มีส่วนร่วม) |
||
แถว 13: | แถว 13: | ||
* บรรทัดแรกเก็บขนาดของเวกเตอร์ | * บรรทัดแรกเก็บขนาดของเวกเตอร์ | ||
* บรรทัดที่สองจะเป็นสมาชิกในเวกเตอร์ ไล่ไปทีละตัว สำหรับข้อมูลชุดนี้จะมีแค่ 0 กับ 1 เท่านั้น | * บรรทัดที่สองจะเป็นสมาชิกในเวกเตอร์ ไล่ไปทีละตัว สำหรับข้อมูลชุดนี้จะมีแค่ 0 กับ 1 เท่านั้น | ||
+ | |||
+ | ในการจัดการกับเวกเตอร์นั้น numpy มีโครงสร้างข้อมูลแบบ array ที่ทำให้เราสามารถประมวลผลได้ง่าย เราสามารถสร้างอาร์เรย์จากลิสต์ โดยสั่ง | ||
+ | |||
+ | u = array([1,2,3,4]) | ||
+ | |||
+ | เราสามารถหา inner product ได้ง่าย และสามารถเรียกฟังก์ชัน <tt>norm</tt> เพื่อหา Euclidean norm ได้ | ||
+ | |||
+ | '''หมายเหตุ''' เพื่อความสะดวกอย่าลืม import pylab ก่อน โดยสั่ง import pylab as * | ||
=== การกระจายของมุม === | === การกระจายของมุม === |
รุ่นแก้ไขเมื่อ 03:07, 21 มิถุนายน 2555
- การทดลองนี้เป็นส่วนหนึ่งของวิชา 01204472
เวกเตอร์และมุม
เรามีข้อมูลสำหรับทดลอง 2 ชุด ดังนี้
- ชุดที่ 1 มีบทความ 2 กลุ่มคือ กลุ่มของบทความในหมวด Association Football 1236 บทความ และบทความในหมวด Diets อีก 307 บทความ ดาวน์โหลด
- ชุดที่ 2 มีบทความ 2 กลุ่มคือ กลุ่มของบทความในหมวด Association Football และบทความในหมวด American Football จำนวน 669 บทความ ดาวน์โหลด ดาวน์โหลดข้อมูลที่เก็บแบบ sparse
เมื่อกระจายแฟ้มข้อมูลออกมา ในนั้นจะมีแฟ้มข้อมูล นามสกุล dat อยู่ โดยแฟ้มมีหมายเลข 1xxxx.dat จะเป็นของกลุ่มแรก และ 2xxxx.dat จะเป็นของกลุ่มที่สอง แต่ละแฟ้มจะเก็บข้อมูลของ 1 เวกเตอร์ ในรูปแบบต่อไปนี้
- บรรทัดแรกเก็บขนาดของเวกเตอร์
- บรรทัดที่สองจะเป็นสมาชิกในเวกเตอร์ ไล่ไปทีละตัว สำหรับข้อมูลชุดนี้จะมีแค่ 0 กับ 1 เท่านั้น
ในการจัดการกับเวกเตอร์นั้น numpy มีโครงสร้างข้อมูลแบบ array ที่ทำให้เราสามารถประมวลผลได้ง่าย เราสามารถสร้างอาร์เรย์จากลิสต์ โดยสั่ง
u = array([1,2,3,4])
เราสามารถหา inner product ได้ง่าย และสามารถเรียกฟังก์ชัน norm เพื่อหา Euclidean norm ได้
หมายเหตุ เพื่อความสะดวกอย่าลืม import pylab ก่อน โดยสั่ง import pylab as *
การกระจายของมุม
ในส่วนแรกสำหรับข้อมูลแต่ละชุดเราจะวาดกราฟแสดงการกระจายของมุมที่เวกเตอร์แต่ละเวกเตอร์กระทำกับเวกเตอร์อันใดอันหนึ่ง เพื่อความรวดเร็วอาจจะใช้เวกเตอร์แค่ 300 เวกเตอร์แรกของแต่ละกลุ่มก็ได้
เราจะเลือกเวกเตอร์ในแฟ้ม 10001.dat มาเพื่อเป็นเวกเตอร์หลัก จากนั้นเราจะคำนวณมุมของ กับเวกเตอร์อื่น ๆ โดยให้วาดกราฟแสดงการกระจายของมุมระหว่างเวกเตอร์จากเอกสารในกลุ่มเดียวกัน (ในแฟ้ม 10002.dat - 10301.dat) เพื่อเปรียบเทียบกับเวกเตอร์ที่ได้จากเอกสารอีกกลุ่ม (ในแฟ้ม 20001.dat - 203001.dat)
หมายเหตุ การวาดกราฟแสดงการกระจายสามารถทำได้หลายแบบ โดยอาจจะเขียนเป็น histogram หรือนำข้อมูลมา sort แล้ว plot ตามปกติก็ได้
ให้ลองเปรียบเทียบความแตกต่างที่พบระหว่างเวกเตอร์กลุ่มที่ 1 และ 2 ในข้อมูลทั้งสองชุด