Урок 7. Ловушка тепловых карт
Урок 7. Ловушка тепловых карт: плотность ≠ сила сигнала
Паспорт урока
| Параметр | Значение |
|---|---|
| Место в модуле | WarWalk, урок 7 из 7 — финал модуля и курса |
| Длительность | 45 мин |
| Возраст | 14–16 |
| Оборудование | warwalk_csv2map.py --heatmap, учебный лог |
| Предварительные знания | Уроки 1–6; RFCurtain урок 5 (принципы визуализации) |
| Предмет | Информатика (визуализация данных), методология |
Образовательные цели
| № | Цель | Блум | Миллер | Чем доказывается |
|---|---|---|---|---|
| 7.1 | Выявлять артефакты визуализации | анализировать | показывает как | Демонстрация фальшивого пятна и его устранение |
| 7.2 | Называть ограничения метода на защите | оценивать | показывает как | Ответ: почему изолиния сквозь здание — артефакт |
| 7.3 | Различать данные и способ их представления | анализировать | знает как | Разбор: те же данные, разные выводы |
| 7.4 | Обосновывать выбор уровня визуализации под задачу | оценивать | знает как | Три уровня и их применимость |
Сценарий занятия (45 минут)
| Время | Блок | Что делает педагог | Что делают ученики |
|---|---|---|---|
| 0–5 | Retrieval | Мини-квиз по уроку 6 | Пишут, разбор |
| 5–15 | Демонстрация ловушки | Строит heatmap «в лоб» | Обнаруживают фальшивое пятно |
| 15–25 | Теория | Три уровня визуализации | Разбирают каждый |
| 25–35 | Интерполяция | Артефакты «взрослых» карт | Формулируют ограничения |
| 35–42 | Практика | Задачи | Решают |
| 42–45 | Итог курса | Финал модуля и курса | Записывают |
Блок 1. Демонстрация ловушки (5–15 мин)
Подготовка
Взять учебный лог, в котором бригада постояла минуту на одном месте со слабым сигналом (или создать такой лог заранее).
Демонстрация
Построить тепловую карту «в лоб», по сырым точкам:
python3 warwalk_csv2map.py --heatmap лог.csvЧто увидят ученики
Там, где бригада топталась, вспыхивает яркое «горячее» пятно — хотя сигнал в этой точке был слабым.
Вопрос классу
«Мы стояли там, где сигнал плохой. На карте это место выглядит как зона отличного покрытия. Данные не подделаны — все измерения настоящие. Что произошло?»
Разбор
| Гипотеза | Обсуждение |
|---|---|
| «Ошибка в данных» | Нет, проверим лог: там честные слабые значения |
| «Ошибка в программе» | Нет, программа работает как задумано |
| «Карта показывает не то, что мы думаем» | Верно |
Суть ловушки. folium.HeatMap и heatmap-слои систем визуализации — это карты плотности точек, а не значений. Чем больше измерений попало в область, тем «горячее» она отображается — независимо от того, какие это значения.
Постояли на месте минуту — получили сотню точек в одном месте — получили фальшивое яркое пятно.
Лечение
Построить heatmap не по сырым точкам, а по сетке с медианой (урок 6):
python3 warwalk_csv2map.py --heatmap --grid лог.csvПятно исчезает: в ячейке теперь одно значение — медиана, и число посещений на цвет не влияет.
«Одни и те же данные. Два способа показа. Противоположные выводы.»
Блок 2. Три уровня визуализации (15–25 мин)
Уровень 1. Облако точек
| Что это | Каждое измерение — точка, цвет = RSSI, чёрные точки = дыры |
|---|---|
| Плюс | самый честный вид: видны и данные, и их отсутствие, никакой обработки |
| Минус | при тысячах точек нечитаемо, перекрытия |
| Когда применять | первый разбор с учениками — только этот вид |
Уровень 2. Тепловой слой по сетке
| Что это | Сетка ~10 м, в ячейке медиана, цвет по медиане |
|---|---|
| Плюс | читаемо, плотность посещения не влияет на цвет |
| Минус | детали внутри ячейки теряются |
| Когда применять | обзорная карта района |
Уровень 3. Интерполяция поля
| Что это | Восстановление непрерывного поля между измерениями (IDW, кригинг в ГИС) |
|---|---|
| Плюс | «карта как у взрослых», красиво и наглядно |
| Минус | выдумывает значения там, где не измеряли |
| Когда применять | презентация, но с обязательной оговоркой |
Главное ограничение интерполяции. Алгоритм не знает о стенах, зданиях и препятствиях. Он просто плавно соединяет соседние измерения.
Поэтому изолиния, проведённая сквозь здание, есть артефакт метода, а не физический результат: с одной стороны здания сигнал сильный, с другой слабый, и алгоритм рисует плавный переход через стену, где на самом деле резкий обрыв.
Умение сказать это вслух на защите дороже красивой картинки.
Блок 3. Данные против представления (25–35 мин)
Обобщение ловушки
«Мы столкнулись с ситуацией, где все цифры правдивы, а вывод ложный. Виновата не запись данных, а способ их показа.»
Каталог приёмов, искажающих без лжи
| Приём | Как обманывает | Как проверить |
|---|---|---|
| Heatmap по плотности | «горячо» там, где много измерений | спросить: что кодирует цвет? |
| Обрезанная ось | малое различие выглядит драматическим | посмотреть на начало оси |
| Выбранный период | показан удачный отрезок | спросить: почему именно этот период? |
| Интерполяция без оговорки | выдуманные значения выглядят как измеренные | спросить: где реальные точки? |
| Отсутствие дыр | ошибка выжившего (урок 5) | спросить: а где не было связи? |
| Сглаживание без сырья | скрыт разброс | спросить: какой был шум? |
Связь с принципами RFCurtain
Все пять принципов честной визуализации (RFCurtain, урок 5) работают и здесь:
- Показывать сырьё и обработку вместе → уровень 1 наряду с уровнем 2;
- Порог рядом с признаком → шкала цветов с явными границами;
- Разные классы — разные цвета → чёрные точки для дыр;
- Ground truth поверх всего → отметки MARK на карте;
- Не скрывать неудобное → дыры покрытия обязательно на карте.
Блок 4. Практические задачи (35–42 мин)
Уровень A (14 лет)
A1. Почему на тепловой карте появилось яркое пятно там, где сигнал слабый?
Ответ
Потому что обычная тепловая карта показывает плотность точек, а не их значения. Бригада постояла на месте, накопилось много измерений в одном месте — и алгоритм отобразил это как «горячую» зону, хотя сигнал там был плохой.
A2. Как исправили эту ошибку?
Ответ
Стали строить карту не по сырым точкам, а по сетке: территория делится на ячейки около 10 м, в каждой берётся медиана. Теперь ячейка даёт одно значение независимо от того, сколько раз её посетили.
A3. Почему для первого разбора с учениками используют облако точек, а не красивую тепловую карту?
Ответ
Потому что облако точек — самый честный вид: видны реальные измерения и места, где их нет. Никакой обработки, которая могла бы что-то исказить или додумать.
Уровень B (14–15 лет)
B1. Объясните, почему изолиния, проведённая через здание, является артефактом метода.
Ответ
Интерполяция плавно соединяет ближайшие измеренные точки, не зная о препятствиях. С одной стороны здания сигнал сильный, с другой — слабый. Алгоритм рисует плавный переход сквозь стену, хотя в действительности там резкий обрыв: стена глушит сигнал.
Линия на карте отражает работу алгоритма, а не физику распространения.
B2. Три уровня визуализации: назовите плюс и минус каждого.
Ответ
| Уровень | Плюс | Минус |
|---|---|---|
| Облако точек | максимально честно, видны дыры | нечитаемо при большом числе точек |
| Сетка с медианой | читаемо, плотность не влияет | теряются детали внутри ячейки |
| Интерполяция | наглядно, «как у взрослых» | выдумывает значения между измерениями |
B3. Все цифры в отчёте правдивы, а вывод ложный. Как такое возможно?
Ответ
Из-за способа представления: тепловая карта по плотности, обрезанная ось, выбранный удачный период, отсутствие данных о неудачах. Данные при этом остаются корректными — искажает их визуализация.
Поэтому проверять надо не только цифры, но и то, что именно кодирует картинка.
Уровень C (15–16 лет)
C1. Что важнее на защите проекта: красивая карта или умение назвать её ограничения?
Разбор
Умение назвать ограничения — и это не риторика, а практическое требование.
Красивую карту может построить любой, кто освоил инструмент. Понимание того, где карта достоверна, а где является результатом работы алгоритма, показывает, что автор разбирается в методе.
Первый вопрос жюри почти всегда: «а насколько этому можно верить?» Ответ «интерполяция между измерениями выдумана, реальные точки вот здесь, а изолинии сквозь здания — артефакт» демонстрирует владение материалом.
Ответ «карта показывает покрытие» — не демонстрирует ничего.
Это прямое требование рубрики Б (документ 2 экспертизы), критерий «Границы и ограничения», обязательный для конкурсного уровня.
C2. Предложите способ показать на карте, где данные измерены, а где интерполированы.
Разбор
Возможные решения:
- Наложить точки измерений поверх интерполированного поля — зритель видит и результат, и его основу;
- Прозрачность по удалённости от измерений: чем дальше от реальной точки, тем бледнее заливка;
- Маска достоверности: области дальше некоторого радиуса от измерений вообще не закрашивать;
- Отдельная карта плотности измерений рядом с картой поля.
Лучшее решение — комбинация 1 и 3: поле показывается только там, где есть данные поблизости, а сами точки видны поверх.
Это прямое применение первого принципа честной визуализации: показывать сырьё и обработку вместе.
C3. Постройте перечень ограничений вашей карты покрытия для защиты проекта.
Ориентир для педагога
Сильный перечень включает:
- Карта отражает состояние на момент измерения: транспорт, листва, погода меняют картину;
- Измерения сделаны на высоте около 1,5 м — на другой высоте картина иная;
- Тень собственного тела вносит систематическую погрешность (компенсируется проходом в обе стороны);
- Точки за пределами маршрута отсутствуют — белое поле означает «не измеряли», а не «нет связи»;
- Дыры покрытия зафиксированы с точностью до шага выборки (2,8 м);
- Интерполяция между точками выдумана и не учитывает препятствия;
- RSSI измеряется с погрешностью ±2–3 дБ; сравнивать значения, отличающиеся на 2 дБ, бессмысленно;
- Выше примерно −50 дБм начинается компрессия: вблизи маячка цифры перестают расти.
Критерий качества: пункты, которые невозможно назвать, не поработав с системой.
Блок 5. Итог модуля и курса (42–45 мин)
Что дал модуль WarWalk
«Вы превратили невидимое радиополе в карту, которую можно потрогать ногами. На этой карте по очереди проступили темы четырёх дисциплин:
| Дисциплина | Что проявилось |
|---|---|
| Физика | децибельная арифметика, затухание, дифракция |
| Математика | лог-дистанционная модель, аппроксимация |
| Статистика | медиана, цензура, выборка |
| Информатика | протокол, конвейер данных, визуализация |
Главный результат
Разница между предсказанием модели и картой из поля — не ошибка, а самый ценный результат проекта. Симулятор показал, откуда возьмутся тени и дыры; реальная прогулка добавила то, чего модели не знали: отражения, волновод улицы, шум города.
Умение назвать эту разницу вслух дороже любой красивой картинки.
Ответы на вопросы, которые прозвучат
| Вопрос ученика | Как отвечать |
|---|---|
| «Значит, тепловые карты вообще нельзя использовать?» | Можно — если строить их по агрегированным данным и понимать, что кодирует цвет. Опасна не карта, а её бездумное применение |
| «Как проверить чужую тепловую карту?» | Спросить: что кодирует цвет — значения или плотность? Где реальные точки измерений? Есть ли места, где не измеряли? |
| «Зачем тогда интерполяция, если она выдумывает?» | Она полезна для наглядного представления и оценки тенденций. Проблема не в ней, а в подаче результата как измеренного |
| «А профессионалы делают такие ошибки?» | Регулярно. Ловушка heatmap по плотности — одна из самых распространённых в дата-журналистике и корпоративной аналитике |
| «Что показать на защите — все три уровня?» | Уровень 1 как доказательство честности, уровень 2 как основной результат, уровень 3 — при желании, с оговоркой |
Раздаточный лист (для печати)
Урок 7. Ловушка тепловых карт
Демонстрация:
Способ построения Что показала карта в месте стоянки По сырым точкам По сетке с медианой Реальный сигнал в этом месте был: ____________
Что на самом деле кодирует обычная heatmap? ________________
Три уровня визуализации:
Уровень Что это Плюс Минус Когда применять 1. Облако точек 2. Сетка с медианой 3. Интерполяция Почему изолиния сквозь здание — артефакт?
_________________________________________________
Приёмы, искажающие без единой ложной цифры:
Приём Как проверить Heatmap по плотности Обрезанная ось Выбранный период Отсутствие дыр ОГРАНИЧЕНИЯ НАШЕЙ КАРТЫ (для защиты, не менее пяти):
- ________________________________________
- ________________________________________
- ________________________________________
- ________________________________________
- ________________________________________
Что важнее на защите — красивая карта или названные ограничения?
________________________________________________
Домашнее задание
Обязательная часть
Врайтап по рубрике А, итоговый за модуль. Обязательный пункт: опишите ловушку heatmap своими словами и способ её обхода.
Уровень A
Найти в интернете тепловую карту (пробки, погода, статистика) и определить, что кодирует цвет: значения или плотность.
Уровень B
Взять лог своей прогулки и построить две карты: по сырым точкам и по сетке. Сравнить, описать различия.
Уровень C
Составить раздел «ограничения» для защиты проекта: не менее семи пунктов, каждый с объяснением механизма возникновения.
Итог урока: что записать в журнал
Вывод урока 7 и модуля
- Обычная тепловая карта кодирует плотность точек, а не их значения: где топтались — там «горячо».
- Лечение — строить по сетке с медианой: число посещений перестаёт влиять на цвет.
- Три уровня визуализации: облако точек (честно) → сетка (читаемо) → интерполяция (наглядно, но выдумывает).
- Изолиния сквозь здание — артефакт метода: алгоритм не знает о стенах.
- Визуализация может исказить вывод без единой ложной цифры.
- На защите умение назвать ограничения карты дороже самой карты.
- Разница между моделью и полем — не ошибка, а главный результат проекта.
Связь с курсом
| Что родилось на этом уроке | Где станет инструментом |
|---|---|
| Артефакты визуализации | Все защиты и конкурсные работы |
| Три уровня представления | Оформление результатов исследования |
| «Назвать ограничения» | Рубрика Б, критерий обязателен для конкурса |
| Модель против измерения | Вся исследовательская деятельность |
Чек-лист педагога перед уроком
- Подготовлен учебный лог с «топтанием на месте» в зоне слабого сигнала
- Проверено: heatmap по сырым точкам даёт фальшивое пятно, по сетке — не даёт
- Готов пример интерполяции с изолинией через здание (или его описание)
- Раздаточный лист распечатан
- Заложено время на составление перечня ограничений — это выход на защиту проекта