ลองเขียน Data Series วันละตอนเนาะ ครบ 1 ปีเราจะมี 365 เรื่องให้อ่านกัน ^^
==============================
ถ้าพูดถึง Manhattan เรานึกถึงอะไร !?
==============================
บางท่านอาจจะนึกถึงย่านที่ผู้คนต่างดื่มกาแฟกันอย่างหนักหน่วง
ถึงมีการเล่าว่ากลิ่นในแม่น้ำ Manhattan นั้นเต็มไปด้วยกลิ่นกาแฟ
(ที่มาจากกลุ่มลูกค้าที่ไปปลดทุกข์เบากันนี่แหละ !!!! )
ถ้าเป็นในเรื่องของ Data หลายๆคนคงเคยได้ยิน
ฟังก์ชันที่ใช้ในการคำนวณระยะทางของรถแทกซี่ที่วิ่งจากที่หนึ่งไปยังอีกที่หนึ่งซึ่งเราคำนวนระยะห่างของ Taxi กับเป้าหมาย
ได้โดยการวัดระยะของแยกต่างๆ
และแยกนั้นไม่ใช่ที่ไหน
นั่นคือเมือง Manhattan นั่นเองครับ !
ซึ่งเมือง Manhattan เนี่ยมีผังเมืองที่เป็นคล้ายๆ Grid
แยกเยอะแยะเต็มไปหมด
และเป็นหนึ่งในเมืองที่ใหญ่มากๆๆๆ
ใหญ่แค่ไหนไปชมกันที่ link ด้านล่าง
Link: ภาพเมือง Manhattan Link
ทีนี้เวลาเค้าวัดระยะ เค้าใช้จำนวนแยกเป็นตัววัดระยะทางไง !
ถ้ารถ Taxi กับ เป้าหมายอยู่ห่างกัน 5 แยก
เราก็คำนวณระยะห่างง่ายๆได้ว่าระยะห่าง เท่ากับ 5 หน่วย
และเป็นที่มาของวิธีวัดที่ชื่อว่า Manhattan Distance
ในทางคณิตศาสตร์นั้น Manhattan Distance
จัดอยู่ในหมวดของการวัดระยะห่างชนิดที่เรียกว่า
L1 distance หรือ L1-Norm Distance
ซึ่งการจะทำความเข้าใจวิธีวัดในรูปแบบคณิตศาสตร์นั้น
แอดเองขอเกริ่นแบบง่ายๆละกันนะครับ
เพราะจะต้องเข้าใจในเรื่องของ
พีชคณิตเชิงเส้นหรือ Linear Algebra !!!
เรียนกัน ม4. ไง ทำเป็นจำไม่ได้ !!!!!!!!!!!!!!!!
================
Manhattan Distance
================
เอาล่ะเริ่มจินตนาการภาพตามแอดนะ
จินตนาการว่าเราเป็นนกกำลังบินบนท้องฟ้า
แล้วมองผังเมืองจากด้านบนลงมา
เราจะเห็นผังเมืองเป็นเหมือนสี่เหลี่ยมที่มีขนาดใหญ่มากๆๆๆ !!
จากนั้นจินตนาการต่อถึงรถ Taxi คันหนึ่งจอดอยู่
และที่อีกฝากหนึ่งของเมือง
ก็มีคนกำลังรอรถ Taxi
ถ้าเราเป็นคนขับ Taxi เราจะต้องทำอย่างไรถึงไปรับลูกค้าได้ !?
ก็ขับรถไปสิ
แน่นอนครับว่าเราต้องขับรถตามถนนใช่ไหมเอ่ย
ถ้าลูกค้าอยู่ข้างหน้าเรา
เราก็แค่ขับตรงไปข้างหน้าอย่างเดียว
ดังนั้นถ้าลูกค้าอยู่ข้างหน้าเราแล้วห่างไป 3 ช่วงตึก หรือห่างประมาณ 3 แยกแสดงว่าระยะเรากับลูกค้าจะเท่ากับ 3
ถ้าลูกค้าอยู่ข้างหน้าเราแล้วห่างไป 5 ช่วงตึก หรือห่างประมาณ 5 แยก
แสดงว่าระยะเรากับลูกค้าจะเท่ากับ 5
วัดระยะง่ายๆแบบนี้เลยแหละเอ้า
แล้วถ้าลูกค้าอยู่คนละทิศของเมืองเลยล่ะ !?
ยังเก็บภาพเมืองในมุมสูงได้อยู่ใช่ไหมครับ
ภาพด้านล่างที่เราเห็น ถนน คงคล้ายกับ
เส้นที่เทียบได้กับเส้น แกน X และ แกน Y
แกน X เหมือนเส้นถนนที่ลากจากซ้าย ไป ขวา
แกน Y เหมือนเส้นถนนที่ลากจากล่าง ขึ้น บน
เอาล่ะ ถ้าผู้โดยสารเราอยู่ที่ขอบมุมบนขวาของเมือง
และเราขับ Taxi อยู่มุมล่างซ้ายของเมือง
ระยะทางที่สั้นที่สุดที่เราจะไปหาผู้โดยสารได้ เป็นเท่าไหร่
หรือระยะห่างระหว่างเรากับผู้โดยสาร เป็นเท่าไหร่เอ่ย ??
เราก็คงต้องค่อยๆขับรถไปทางขวาเรื่อยๆ
จนสุดขอบของเมือง
ระหว่างนั้นเราก็นับระยะไปด้วย
ว่าขับผ่านไปแล้วกี่ช่วงตึก
เช่นถ้านับช่วงตึกได้ 10 ช่วงตึก
ก็เท่ากับเราเดินทางไปในแกน X = 10 หน่วยด้วยกัน
หลังจากนั้นเราจึงขับรถต่อขึ้นไปด้านบนจนสุดขอบ
ก็จะพบผู้โดยสารที่รอเราอยู่ที่มุมบนขวาของเมือง
ณ จุดนี้เราทำการนับช่วงตึกเช่นเดียวกันถ้านับได้ 5 ช่วงตึก
แสดงว่า เราเดินทางไปในแกน Y = 5 หน่วยด้วยกัน
ดังนั้นผลรวมของระยะทางช่วงตึกทั้งหมด
จะนำมารวมกันเป็นระยะห่างระหว่าง Taxi ไปยังผู้โดยสารนั่นเอง
หรือ X = 10 บวกกับ Y = 5 ผลลัพธ์คือ 15 หน่วยนั่นเองครับ
แล้ว L1-Norm ล่ะ คืออะไรหว่า !?
เป็นเหมือนการหาขนาดของ Vector นั่นเองครับ
แต่ขนาดของ Vector ของ L1-Norm นั้นหาได้จาก
สมมติ X มีขนาด 10 หน่วย
Y มีขนาด 5 หน่วย
เราสามารถเขียนในรูป Vector ได้ว่า
v = [ 10, 5 ]
แล้วขนาดของ Vector แบบ L1-Norm หรือ Manhattan Distance
ก็คือการนำแต่ละค่า ในแต่ละแกน
มาลบกับจุดกำเนิดจุดกำเนิดคือจุด 0, 0 ตามที่เราเรียนมานั่นเอง
ถ้ามี 2 แกน ก็เขียน 0, 0
ถ้ามี 5 แกน ก็เขียน 0, 0, 0, 0, 0
ทีนี้เราค่อยๆวัดระยะห่างทีละแกนของ Vector
เทียบกับจุดกำเนิด
Delta ของ X
หรือระยะของ X จะได้ค่าเท่ากับ
Delta ของ X = 10 – 0 = 10
และ
Delta ของ Y = 5 – 0 = 5
หลังจากนั้นจึงนำค่า Delta ที่ได้ของแต่ละแกนมาทำการบวกรวมกัน
เป็นคำตอบของ การหาขนาด Vector ด้วยวิธี L1-Norm นั่นเองครับ
แค่จะขับรถ Taxi ไปรับผู้โดยสารยังเกิดเป็นฟังก์ชันในการหาระยะทางได้
==============
อธิบายศัพท์เพิ่มเติม
==============
Delta คือการหาระยะห่าง
หรือความแตกต่างของข้อมูลเทียบกัน
เช่น Delta(X2, X1) คือนำ X2 มาลบ กับ X1
Gradient คืออัตราการเปลี่ยนแปลงของฟังก์ชัน
เช่น ฟังก์ชัน f(X) โดยที่ X เปลี่ยนแปลงน้อยๆ
จะได้ d(f(x)) / dxโดยที่เรียก d(f(x)) / dx ได้อีกชื่อว่า Slope นั่นเอง
ยกตัวอย่างเช่น
อัตราการเปลี่ยนแปลงของความเร็วรถ จาก ตำแหน่ง x1 ไปยัง x2
แสดงว่าระยะทางมีการเพิ่มขึ้น = x2-x1
โดยเทียบกับ เวลาที่เปลี่ยนแปลงไปชั่วขณะหนึ่ง
และ Gradient ของความเร็วที่เปลี่ยนแปลง
ต่อ เวลาที่เปลี่ยนแปลงชั่วขณะหนึ่ง ก็คือ ความเร่งนั่นเอง
=========================
ประโยชน์ของ Manhattan Distance
=========================
อาทิเช่น
– ใช้ในระบบการแก้สมการที่มี Infinite Solution(Underdetermined systems)
– ใช้การการคำนวณเล่นหมากรุก !
– ดูความแตกต่างของข้อมูลกลุ่ม Discrete
– ตรวจดูความแตกต่างของรูปร่างโมเลกุล
– การค้นหาคนที่มีพฤติกรรมเหมือนกลุ่มใดกลุ่มหนึ่ง
– การนำเสนอสินค้าที่ใกล้เคียงกับคนแต่ละกลุ่ม
– Classification Model เช่น KNN ใช้การวัดระยะห่างเข้ามาช่วยทำนาย
– และอื่นๆอีกมากมาย
=========================
ขอบคุณทุกท่านที่ติดตามครับ
ฝากไลค์ แชร์ คอมเมนท์ เพื่อเป็นกำลังใจ
Made with Love by Boyd
=========================
Series นี้ออกแบบมาให้เพื่อนๆที่สนใจในเรื่องของ Data
หรือเพื่อนๆที่ทำงานสาย Data แต่มีเวลาจำกัดได้อ่านกันครับ
โดยเนื้อหาอาจจะมีสลับกันไปทั้งในเรื่องของความง่าย และยาก
รวมถึงเนื้อหาที่หลากหลายทั้ง Coding, Math, Data, Business, และ Misc- Feedback กันเข้ามาได้นะครับ ว่าชอบหรือไม่ชอบอย่างไร
เพื่อการปรับปรุง Content ให้ดียิ่งขึ้น
– หากผิดพลาดประการใดต้องขออภัยมา ณ ที่นี้ด้วยนะครับ
– ท่านใดมีประสบการณ์การใช้งาน สามารถแชร์ให้เพื่อนๆอ่านได้เลยนะครับ