ขั้นตอนวิธี Heatmap เพื่อให้เห็นภาพความหลากหลายของจุด


18

ทุกคนสามารถแนะนำอัลกอริทึมในการสร้างแผนที่ความร้อนเพื่อให้เห็นภาพความหลากหลายของจุดได้หรือไม่? ตัวอย่างการประยุกต์ใช้สำหรับการทำแผนที่พื้นที่ที่มีความหลากหลายของสายพันธุ์สูง สำหรับบางสปีชีส์พืชทุกต้นได้รับการแมปแล้วจึงทำให้มีคะแนนสูง แต่มีความหมายน้อยมากในแง่ของความหลากหลายของพื้นที่ พื้นที่อื่น ๆ อย่างแท้จริงมีความหลากหลายสูง

พิจารณาข้อมูลอินพุตต่อไปนี้:

x    y      cat
0.8  8.1    B
1.1  8.9    A
1.6  7.7    C
2.2  8.2    D
7.5  0.9    A
7.5  1.2    A
8.1  1.5    A
8.7  0.3    A
1.9  2.1    B
4.5  7.0    C
3.8  4.0    D
6.6  4.8    A
6.2  2.4    B
2.2  9.1    B
1.7  4.7    C
7.5  7.3    D
9.2  1.2    A

และแผนที่ผลลัพธ์:

พล็อตตาราง

ใน Quadrant ซ้ายบนมีแพทช์ที่มีความหลากหลายสูงในขณะที่ Quadrant ขวาล่างจะมีพื้นที่ที่มีความเข้มข้นของจุดสูง แต่มีความหลากหลายต่ำ สองวิธีในการมองเห็นภาพความหลากหลายคือการใช้แผนที่ความร้อนแบบดั้งเดิมหรือนับจำนวนหมวดหมู่ที่แสดงในรูปหลายเหลี่ยมแต่ละรูป ตามภาพต่อไปนี้แสดงให้เห็นว่าวิธีการเหล่านี้มีการใช้งานที่ จำกัด เนื่องจากแผนที่ความร้อนแสดงให้เห็นถึงความรุนแรงที่ยิ่งใหญ่ที่สุดในด้านล่างขวาในขณะที่วิธีการ binning จะดูเหมือนกันทุกประการหากมีเพียงหนึ่งหมวดหมู่เท่านั้น รูปหลายเหลี่ยมช่องเก็บ แต่ผลลัพธ์จะกลายเป็นเม็ดเล็ก ๆ โดยไม่จำเป็น)

แผนที่ความร้อน ป้อนคำอธิบายรูปภาพที่นี่

วิธีหนึ่งที่ฉันคิดว่าจะทำเช่นนี้คือการใช้อัลกอริทึม heatmap แบบดั้งเดิมโดยใช้จำนวนคะแนนของประเภทต่าง ๆ ภายในรัศมีที่กำหนดจากนั้นใช้การนับนั้นเป็นน้ำหนักของจุดเมื่อสร้าง heatmap อย่างไรก็ตามฉันคิดว่านี่อาจเป็นไปได้ของสิ่งประดิษฐ์ที่ไม่พึงประสงค์เช่นการเสริมแรงร่วมกันนำไปสู่ผลลัพธ์ที่คมชัดมาก นอกจากนี้จุดที่แมปประเภทเดียวกันจะยังคงแสดงให้เห็นว่ามีความเข้มข้นสูงอย่างต่อเนื่อง

แนวทางอื่น (น่าจะดีกว่า แต่แพงกว่าการคำนวณ) จะเป็น:

  1. คำนวณจำนวนหมวดหมู่ทั้งหมดในชุดข้อมูล
  2. สำหรับแต่ละพิกเซลในภาพที่ส่งออก:
    • สำหรับแต่ละหมวดหมู่:
      • คำนวณระยะทางไปยังจุดตัวแทนที่ใกล้ที่สุด (r) [อาจ จำกัด โดยรัศมีบางอย่างที่เกินขอบเขตซึ่งอิทธิพลนั้นเล็กน้อย)
      • เพิ่มสัดส่วนการถ่วงน้ำหนักเป็น 1 / r 2

มีอัลกอริทึมที่ฉันไม่รู้จักที่จะทำเช่นนี้หรือวิธีอื่น ๆ

แก้ไข

ทำตามคำแนะนำของ Tomislav Muic ฉันได้คำนวณ heatmaps สำหรับแต่ละหมวดหมู่และทำให้พวกมันเป็นมาตรฐานโดยใช้สูตรต่อไปนี้ (เครื่องคำนวณแรสเตอร์ QGIS):

((heatmap_A@1 >= 1) + (heatmap_A@1 < 1) * heatmap_A@1) +
((heatmap_B@1 >= 1) + (heatmap_B@1 < 1) * heatmap_B@1) +
((heatmap_C@1 >= 1) + (heatmap_C@1 < 1) * heatmap_C@1) +
((heatmap_D@1 >= 1) + (heatmap_D@1 < 1) * heatmap_D@1)

กับผลลัพธ์ต่อไปนี้ (ความคิดเห็นภายใต้คำตอบของเขา): ผลรวมปกติ


1
แนวทางที่สองของคุณมีลักษณะตกลงนี้ส่วนใหญ่จะเป็นปัญหาสถิติดังนั้นฉันเริ่มมองหาที่ R การปฏิบัติที่สอดคล้องกันในCRAN แม้ว่าจะทดลองกับขนาดกริดที่แตกต่างกันและมองหามาตรการ 'ความหลากหลายทางชีวภาพ' อย่างเป็นทางการเพื่อหลีกเลี่ยงการสร้างวงล้อใหม่
Deer Hunter

คำตอบ:


4

ลองทำ heatmap สำหรับแต่ละหมวดหมู่แยกกัน

จากนั้นทำการสรุป heatmaps และทำให้เป็นมาตรฐานด้วยจำนวนหมวด

นี่อาจเป็นการสำรวจที่คุ้มค่า


ฉันได้เพิ่มการสร้างภาพข้อมูลให้กับคำถามของฉันตามข้อเสนอแนะนี้และผลลัพธ์ก็ดูดี! ข้อเสียคือถ้าคุณจัดการกับหมวดหมู่หลายร้อยหรือหลายพันประเภทการจัดเก็บ rasters เหล่านั้นทั้งหมดจะเป็นปัญหา
rudivonstaden

ลองคิดดูสิว่าจะไม่มีปัญหาหากคุณเพิ่ม heatmap ใหม่แต่ละรายการลงใน heatmap รวมหลังจากแต่ละหมวดหมู่ คำถามคือวิธีการใดที่จะใช้ในการคำนวณได้เร็วขึ้น - ผลรวมแรสเตอร์หรือการคำนวณพิกเซลต่อพิกเซล
rudivonstaden

ฉันเกรงว่าคำตอบนี้ไม่เกี่ยวกับความหลากหลาย ในผลรวม (และการทำให้เป็นมาตรฐาน) พื้นที่ที่มีความหนาแน่นสูงซึ่งมีหลายกลุ่มจะมีลักษณะเดียวกันกับพื้นที่ที่ไม่หนาแน่น แต่มีกลุ่มเดียว
Andy W
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.