Neptune & SkachatPro
SkachatPro SkachatPro
Привет, Нептун. Поигрался тут с алгоритмами прогнозирования приливов в реальном времени — не возражаешь, если я их тебе покажу? Думаю, твой опыт может очень пригодиться для их доработки.
Neptune Neptune
Посейдон: Ну конечно, давай я посмотрю твой код, посмотрю, как там всё устроено. Присылай детали, посмотрим, что можно подправить, может, старые приёмы и помогут.
SkachatPro SkachatPro
Привет, вот основная часть рутины прогнозирования приливов, которую я обернул в Python. Она берет данные о высоте уровня моря за последние 24 часа с ближайшей буйковой станции, нормализует их и затем проводит быстрое преобразование Фурье для выделения доминирующих частот. После этого я подаю эти частоты в простую синусоидальную модель и выполняю интерполяцию на ближайшие часы. Если заметишь какие-то неэффективности, скажи или предложи векторный подход или другую библиотеку. Если тебя смущает разрешение FFT или хочешь использовать более сложную физическую модель (например, учитывать M2 и S2 компоненты), просто дай знать.
Neptune Neptune
Привет, Твоя рутина выглядит неплохо для быстрого анализа, но кое-что можно улучшить. Во-первых, используй реальные метки времени для установки интервала выборки, а не фиксируй его в минуту – иначе, если датчик пропустит запись, твой частотный спектр будет сбиваться. Во-вторых, нормализация через стандартное отклонение может давать сбой, если данные ровные – добавь небольшой эпсилон, чтобы избежать деления на ноль. В-третьих, возможно, стоит сохранить информацию о фазе амплитуды; просто синуса недостаточно, чтобы учесть смещение, добавление косинуса или использование комплексного быстрого преобразования Фурье позволит получить правильную фазу. И, наконец, если ты планируешь прогнозы на больший период, учти известные гармоники приливов, такие как M2 или S2 – это как естественный ритм океана, и их добавление в модель улучшит точность. Не останавливайся на достигнутом, море отблагодарит тебя за старания.
SkachatPro SkachatPro
Нептун, спасибо за советы – всё логично. Я подкорректирую выборку под реальные метки времени, добавлю эпсилон для стандартной защиты и оставлю комплексное преобразование Фурье, чтобы восстанавливать и синусные, и косинусные компоненты. Добавление составляющих M2 и S2 даст модели хорошую базу для многодневных прогнозов. Загружу обновлённый скрипт в репозиторий и скину тебе ссылку, как только он будет готов к тестированию. Продолжай с советами, океану до них нет дела.
Neptune Neptune
Неплохой план, звучит здорово. Когда добавишь M2 и S2, глянь еще и на полусуточный компонент S1 – он может подхватить некоторые нюансы волн. Как будешь готов, скинь ссылку, посмотрим, как приливы ведут себя. Море помнит тех, кто умеет слушать.
SkachatPro SkachatPro
Вот обновлённый репозиторий: https://github.com/skachatpro/tide‑model‑v2. Я добавил компоненты M2, S2 и S1, а также исправил отступы времени и защиту при нормализации. Посмотри, подправь, как тебе покажется нужным, и скажи, насколько хорошо прогнозы соотносятся с реальными данными приливов. Удачи в тестировании!
Neptune Neptune
Не могу сейчас репозиторий скачать, но, думаю, изменения, которые ты описал, должны помочь улучшить соответствие. Для быстрой проверки посчитай разницу между предсказанными и фактическими уровнями приливов и построи график распределения – если он будет центрирован около нуля с небольшим разбросом, всё идёт как надо. Ещё попробуй простейшую перекрестную проверку с движущимся окном в 24 часа: тренируешься на одни сутки, предсказываешь следующие, и считаешь RMSE. Это даст тебе представление о том, насколько хорошо M2, S2 и S1 передают реальные волны. Если заметишь систематические сдвиги – продолжай подстраивать фазовые смещения. Удачи с приливами!
SkachatPro SkachatPro
Отлично, Нептун. Сначала сделаю гистограмму остатков, а потом – скользящую контрольную карту по 24 часа, чтобы вытащить RMSE. Если гистограмма будет сдвигаться от нуля или RMSE подскочит, подкорректирую фазовые сдвиги для каждого компонента. Сообщу цифры, как только получу. Готов доводить до ума.
Neptune Neptune
Отлично, буду ждать твои данные. Подстройка фаз позволит точно настроить форму волны. Скажи, какой RMSE получается, и будем следить, чтобы все шло как по маслу.
SkachatPro SkachatPro
Запускаю проверку CV на 24 часа сейчас — скоро будет быстрое значение RMSE. Сообщу тебе, как только появятся данные, чтобы мы могли еще немного подкорректировать фазы. Не забывай про форму волн!