คะแนนระยะทางแบบยุคลิดและความคล้ายคลึงกัน


13

ฉันแค่ทำงานกับหนังสือ Collective Intelligence (โดย Toby Segaran) และเจอคะแนนระยะทางแบบยุคลิด ในหนังสือเล่มนี้แสดงให้เห็นว่าผู้เขียนวิธีการคำนวณความคล้ายคลึงกันระหว่างสองอาร์เรย์คำแนะนำ (เช่น )person×moviescore)

เขาคำนวณระยะทางแบบยุคลิดสำหรับคนสองคนและp 2โดย d ( p 1 , p 2 ) = p1p2

d(p1,p2)=i  item(sp1sp2)2

เรื่องนี้ทำให้ฉันรู้สึกอย่างสมบูรณ์ สิ่งที่ฉันไม่เข้าใจจริงๆคือเหตุผลที่เขาคำนวณตอนท้ายต่อไปนี้เพื่อให้ได้ "ความคล้ายคลึงกันตามระยะทาง":

11+d(p1,p2)

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


มีหลายวิธีในการแปลงความแตกต่างและความคล้ายคลึงกันให้เป็นกัน - สูตรเฉพาะขึ้นอยู่กับสิ่งที่สมเหตุสมผลสำหรับคุณและสำหรับการวิเคราะห์ในอนาคต ในหนังสือเล่มนั้นผู้แต่งต้องการสูตรที่คุณแสดงด้วยเหตุผลบางอย่าง คนอื่นในสถานการณ์ที่แตกต่างกันอาจเลือกสูตรอื่น ส่วนใหญ่ที่ถูกต้องทางเรขาคณิตวิธีการแปลงeuclideanระยะทางในความคล้ายคลึงกันจะตามมาจากทฤษฎีบทโคไซน์ภายใต้ข้อมูลที่จะเป็นศูนย์กลางสภาพและมีการอธิบายที่นี่ในที่ตราไว้หุ้น 1.
ttnphns

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

หากคุณมีเมทริกซ์สมมาตรแบบสแควร์ของระยะทางแบบยุคลิดกำลังสองและคุณดำเนินการแบบ "กึ่งกลาง" แล้วคุณจะได้เมทริกซ์ของผลิตภัณฑ์สเกลาร์ซึ่งจะสังเกตได้เมื่อคุณใส่จุดกำเนิดกับพื้นที่แบบยุคลิด วัตถุ ผลิตภัณฑ์เซนต์คิตส์และเนวิสมีความคล้ายคลึงกันชนิดมุม พวกเขาเหมือนโควาเรีย พวกมันไม่ได้อยู่ในช่วง 0-1 พวกมันอาจเป็นลบบวกและเส้นทแยงมุมก็ไม่จำเป็นว่าจะต้องเป็น 1 แต่ก็ยังมีความคล้ายคลึงกัน
ttnphns

คำตอบ:


12

ตรงกันข้ามคือการเปลี่ยนจากระยะทางเป็นความคล้ายคลึง

1 ในตัวส่วนคือการทำให้มันเพื่อให้ค่าสูงสุดคือ 1 (ถ้าระยะทางเป็น 0)

รากที่สอง - ฉันไม่แน่ใจ หากระยะทางปกติใหญ่กว่า 1 รูตจะทำให้ระยะทางขนาดใหญ่น้อยลง หากระยะทางน้อยกว่า 1 มันจะทำให้ระยะทางขนาดใหญ่สำคัญกว่า


ขออภัย! รากที่สองผิด ผู้เขียนวางมันลงในสูตรที่สอง แต่ทิ้งไว้ในตอนแรก ดังนั้นจึงไม่ควรอยู่ที่นั่น
navige

ใช่ แต่คำใบ้ของคุณด้วยการตั้งค่าสูงสุดเป็น 1 ก็สมเหตุสมผล! ขอบคุณ!
navige

4

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


1

อย่างที่คุณพูดถึงคุณรู้การคำนวณระยะทางยูคลิดดังนั้นฉันจึงอธิบายสูตรที่สอง

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

อย่างไรก็ตามเราต้องการฟังก์ชั่นที่ให้ค่าที่สูงกว่าของฟังก์ชั่นที่คล้ายกัน สิ่งนี้สามารถทำได้โดยการเพิ่ม 1 ในฟังก์ชั่น (เพื่อให้คุณไม่ได้รับข้อผิดพลาดการหารด้วยศูนย์) และกลับหัวกลับหาง เช่นถ้าระยะห่าง 0 และคะแนนความคล้ายคลึงกัน 1/1 = 1


ฉันไม่เข้าใจคำตอบนี้
Michael R. Chernick

โอเคสมมติว่าระยะทางแบบยุคลิดระหว่างรายการที่ 1 และรายการที่ 2 คือ 4 และระหว่างรายการที่ 1 และรายการที่ 3 คือ 0 (หมายถึงพวกมันเหมือนกัน 100%) เหล่านี้คือระยะทางของรายการในพื้นที่เสมือน ค่าระยะทางที่น้อยลงหมายความว่าพวกมันอยู่ใกล้กันหมายความว่ามีแนวโน้มที่จะคล้ายกัน ตอนนี้เราต้องการค่าตัวเลขเพื่อให้มีจำนวนที่สูงกว่าหากพวกมันคล้ายกันมาก ดังนั้นเราสามารถค่าระยะทางผกผัน แต่ถ้าเรามีระยะทางคือ 0 นั่นคือสาเหตุที่เราบวก 1 ในตัวส่วน คะแนนความเหมือนกันของรายการ 1 และ 2 คือ 1 / (1 + 4) = 0.2 และสำหรับรายการ 1 และรายการ 3 คือ 1 / (1 + 0) = 0
user10009133

บางทีคุณกำลังพูดถึงการวัดระยะทางบางอย่าง แต่ระยะทางแบบยุคลิดนั้นตามสูตรเฉพาะเกี่ยวกับพื้นที่เวกเตอร์
Michael R. Chernick

1/1+d(p1,p2)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.