17 тысяч замеров и один FreeStyle Libre: год данных о диабете у кошек. Big Data.. Big Data. Data Engineering.. Big Data. Data Engineering. ветеринария.. Big Data. Data Engineering. ветеринария. данные.. Big Data. Data Engineering. ветеринария. данные. диабет.. Big Data. Data Engineering. ветеринария. данные. диабет. диабет 1 типа.. Big Data. Data Engineering. ветеринария. данные. диабет. диабет 1 типа. ИИ.. Big Data. Data Engineering. ветеринария. данные. диабет. диабет 1 типа. ИИ. кошка.. Big Data. Data Engineering. ветеринария. данные. диабет. диабет 1 типа. ИИ. кошка. Открытые данные.. Big Data. Data Engineering. ветеринария. данные. диабет. диабет 1 типа. ИИ. кошка. Открытые данные. разработка.

Почти год назад я рассказывал, как за 5 дней написал приложение Diabnostic для мониторинга диабета у своей кошки. В марте делился первым датасетом: 6 773 замера от 121 питомца. С тех пор произошло три вещи.

Смотри, Маня, тут есть графики!

Смотри, Маня, тут есть графики!

Первое: датасет вырос почти втрое – 16 796 ручных замеров от 166 питомцев за 12 месяцев (ноябрь 2025 – октябрь 2026). Методология та же, релизы напрямую сравнимы.

Второе: в приложении появился пользователь-энтузиаст, который начал выгружать данные из FreeStyle Libre, и в датасете появился второй файл – 10 418 точек непрерывного мониторинга (CGM). 94 дня из жизни одной кошки с диабетом, по ~96 замеров в день вместо 1-3 вручную.

Третье: готовя релиз, я нашёл в собственных данных то, чего там быть не должно. Об этом – ниже.

Оба файла анонимизированы и лежат на GitHub под CC BY-NC. Пулл-реквесты на анализ приветствуются.

Я разработчик, а не ветеринарный врач.
Всё ниже – наблюдения из данных исследования с самоотбором, а не клинические рекомендации.

Что изменилось за год: цифры

17 тысяч замеров и один FreeStyle Libre: год данных о диабете у кошек - 2

 март 2026

 октябрь 2026

Записей (ручные)

6 773

16 796

Питомцев

117

166 (153 кошки, 13 собак)

Медиана глюкозы

14.5 ммоль/л

14.5 ммоль/л

В целевом диапазоне 4-10

28.8%

27.8%

Гипогликемия < 3.5

4.9%

3.1%

Медиана записей на питомца

16

31

Самое интересное в этой таблице – чего в ней не изменилось. Медиана глюкозы за полгода не сдвинулась ни на десятую: 14.5 и 14.5. Выборка утроилась, а картина – нет: типичный питомец на платформе по-прежнему живёт с хронической гипергликемией, и доступность мониторинга сама по себе её не лечит.

17 тысяч замеров и один FreeStyle Libre: год данных о диабете у кошек - 3

Что выросло – это вовлечённость тех, кто остался: медиана записей на питомца удвоилась (16 → 31), питомцев со 100+ замерами стало 57. Ядро владельцев ведёт дневник месяцами.

Портрет пациента не изменился и совпадает с литературой: средний возраст кошки 10.6 года, 57% самцов.

Находка №1: ручной глюкометр слеп ночью. CGM это показал

Утренняя гипогликемия – классический кошмар владельца диабетика: действие вечернего инсулина заканчивается к 5-7 утра, и именно там кот может уехать вниз. В марте я писал, что худший контроль наблюдается в 5-7 утра. Но ручные данные там почти слепы: всего 8.3% замеров делается между 03:00 и 07:00, и гипо в них – 3%.

17 тысяч замеров и один FreeStyle Libre: год данных о диабете у кошек - 4

CGM-кошка закрыла этот пробел. Из 10 418 точек:

  • 229 ниже 3.5 ммоль/л, из них 75% – между 03:00 и 07:00

  • В ночном окне 03:00-06:59 гипо – 10.3% точек (против 3% в ручных данных)

  • Минимум – 2.0 ммоль/л; 11 дней из 94 имели хотя бы одну гипо-точку

Оговорка к этому графику: синие столбики в 4 утра тоже высокие по доле. Это не «глюкометр всё видит». Это отбор: ночью меряют, когда уже плохо. Сенсор меряет всегда, поэтому его 12% в 4:00 - знаменатель другой.

Оговорка к этому графику: синие столбики в 4 утра тоже высокие по доле. Это не «глюкометр всё видит». Это отбор: ночью меряют, когда уже плохо. Сенсор меряет всегда, поэтому его 12% в 4:00 – знаменатель другой.
11 сентября 2026. Гипо держалась с 03:11 до 06:47, минимум 2.2. Ручным глюкометром эту ночь не увидеть.

11 сентября 2026. Гипо держалась с 03:11 до 06:47, минимум 2.2. Ручным глюкометром эту ночь не увидеть.

Практический вывод владельцу: если вы меряете только «до/после укола» – а большинство меряет именно так, пики 08:00 и 20:00 – вы систематически пропускаете окно, где гипогликемия наиболее вероятна. Сенсор видит то, что глюкометр в 4 утра не увидит никогда.

Оговорка: это одна кошка, плохо компенсированная (медиана 20.3, TIR 12.4% - данные не популяционные). Но окно 03:00-07:00 как зона риска - ожидаемо и в ручных данных, просто там его толком не видно.

Оговорка: это одна кошка, плохо компенсированная (медиана 20.3, TIR 12.4% – данные не популяционные). Но окно 03:00-07:00 как зона риска – ожидаемо и в ручных данных, просто там его толком не видно.

Находка №2: среди питомцев были люди

Готовя релиз, я прогнал по датасету автовалидацию – и среди «безинсулиновых» профилей нашёл три, которые вели себя не как кошки.

Один – 8 месяцев аккуратного дневника: глюкоза 6-9 (человеческий, а не кошачий диапазон), дозы 8-10 единиц, заметки на английском «after ~15K steps», «after 3 pieces of sugar and cup of sweet grape juice» (человек купировал собственную гипо), лаборатория LifeLabs, сравнение показаний с Libre 2 и Libre 3. Владелец вёл в приложении дневник собственного диабета 2 типа – под видом кошки. Второй и третий – дозы 10-24 единицы и замер «2303» (мг/дл с человеческого глюкометра): кошка при 10+ единиц инсулина просто не выживет.

Итого 91 запись, 3 профиля – исключены. В первой статье я говорил, что мусорных записей в базе нет, потому что есть валидация диапазонов. Валидация честно отработала: 8-10 единиц и глюкоза 6-9 проходят в любые кошачьи рамки. Против правдоподобных данных нет приёма, кроме взгляда глазами.

Урок для публикующих датасеты: анонимизация удаляет имена, но не вид. Если ваш датасет о кошках – ищите записи, которые «слишком человеческие». Шаги, HbA1c, мг/дл вместо ммоль/л, человеческие дозы.

Находка №3: «4 кошки» оказались одним сенсором

Вторая история из той же валидации. В CGM-файле было 4 кошки – и валидатор взвыл: у «разных» кошек совпадают дата, время и глюкоза до десятой. Копнул: на общих таймстампах профили совпадают на 97-99% значений. Это один физический сенсор, который владелец залил в 4 профиля (обкатка интеграции: «попробуем ещё раз», «а теперь полный импорт»).

Если бы я опубликовал «4 кошки, 29 516 точек» – биолог-пользователь сделал бы из этого выводы про 4 животных. Я слил профили в одного питомца с дедупликацией: 30 096 → 10 418 точек. Три четверти «CGM-данных» были копиями.

Урок тот же, что в №2, но зеркальный: дубликаты в реальном времени не выглядят ошибкой – они выглядят как рост выборки. Считайте не строки, а физические источники.

Находка №4: пустой insulin_group != «без инсулина»

Мелкая, но важная деталь для пользователей датасета. Я сравнил профили «без инсулина» – а у 25 из 30 дозы инсулина прямо в записях. Просто тип в профиле не выбран. Если анализировать по insulin_group, четверть «безинсулиновых» уедет в неправильную группу.

Поэтому в README теперь явная оговорка: пустой insulin_group значит «тип не указан», а не «инсулина нет». Реальную терапию смотреть по insulin_dose_u > 0. Это не баг приложения – это честное поведение людей: доза важна каждый день, справочник – один раз.

Как строился релиз v2

Коротко о процессе, вдруг кому пригодится:

  • Экспорт из production PostgreSQL (те же фильтры, что в v1: глюкоза 0.1-50 ммоль/л)

  • Автовалидация: структура, диапазоны, дубликаты (pet, date, time), анонимность (grep по email/именам), непрерывность pet_id

  • Ручное разбирательство каждого флага валидатора на живой базе – так и нашлись люди и клонированный сенсор

  • Найденные артефакты v1 (тестовые записи дня запуска, повторные замеры в ту же минуту) оставлены как есть – чистка сломала бы сравнимость с релизом марта

Планы

  • Все ещё хочется повторить анализ инсулинов на выборке втрое больше – гларгин U100 против детемира на 166 питомцах

  • Всё ещё мало лабораторных анализов для коморбидности с ХБП

  • Всё ещё мало данных для реализации ML модели, предсказывающей возникновение гипо.


    К слову, если ваше животное больно диабетом и вам нужен удобный трекер –
    приходите. Чем больше будет данных, тем быстрее можно будет достичь реализации ML модели.

Датасет на GitHub, лицензия CC BY-NC.
Первая статья: habr.com/ru/articles/1010334.
Если нашли в данных что-то интересное – приходите с PR, упомяну в следующей статье.

Надеюсь, было интересно.

Автор: teamfighter

Источник