Day 03 – Manhattan Distance

ลองเขียน 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 ให้ดียิ่งขึ้น

– หากผิดพลาดประการใดต้องขออภัยมา ณ ที่นี้ด้วยนะครับ
– ท่านใดมีประสบการณ์การใช้งาน สามารถแชร์ให้เพื่อนๆอ่านได้เลยนะครับ

#BigDataRPG#DataScienceวันละตอน#ManhattanDistance

Published by BigData RPG

I'm just Ordinary Data Scientist who love in A.I., Machine learning, Deep Learning, and Business.

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out /  เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out /  เปลี่ยนแปลง )

Connecting to %s

%d bloggers like this: