Алгоритм машинного обучения для прогнозирования числа случаев во время пандемии

Вопрос или проблема

Я делаю свои первые шаги в ИИ и машинном обучении, поэтому столкнулся со следующей проблемой. Я пытаюсь предсказать результат по количеству дней с начала пандемии COVID-19 против подтвержденных случаев, используя библиотеку scikit-learn. То есть мой вход — это количество дней с начала пандемии в моей стране, а выход — количество подтвержденных случаев на соответствующую дату. Однако, как с GradientBoosting, так и с RandomForest, я получаю одни и те же значения на тестовом наборе данных. Привожу ниже код на Python, так как он очень короткий…

import numpy as np

from sklearn import ensemble

import pandas
datos = pandas.read_csv('covid.csv',";")

entrada = np.array(datos['ORDEN']).reshape(-1,1)

salida = datos["CASOS"]    

regr = ensemble.GradientBoostingRegressor(random_state=0,n_estimators=500).fit(entrada,salida)

test = np.array([i for i in range(63,70)]).reshape(-1,1)

print(regr.predict(test))

regr = ensemble.RandomForestRegressor(random_state=0,n_estimators=500).fit(entrada,salida)

print(regr.predict(test))

Мои результаты выглядят так:

[1782.99976513 1782.99976513 1782.99976513 1782.99976513 1782.99976513
 1782.99976513 1782.99976513]
[1773.99 1773.99 1773.99 1773.99 1773.99 1773.99 1773.99]

Что я делаю не так? Заранее спасибо.

Все будет полностью зависеть от вашего инженерного подхода к признакам, так что я могу предположить, что в данном случае ваша модель, возможно, просто предсказывает среднее или медиану вашей целевой переменной.

Также может помочь попробовать использовать другие типы моделей, так как вы пытаетесь спрогнозировать количество событий за определенный период времени, поэтому может быть полезно использовать Пуассоновские модели, которые находятся в экспериментальной фазе в sklearn, тем не менее, документация может помочь понять, как работает модель.

Ответ или решение

Предсказание числа случаев заболеваний в условиях пандемии с использованием алгоритмов машинного обучения — это сложная задача, особенно для новичка в области искусственного интеллекта и машинного обучения. Рассмотрим более детально вашу текущую методику и некоторые рекомендации по улучшению результатов.

Обзор вашей задачи

Вы пытаетесь спрогнозировать количество подтвержденных случаев COVID-19 в зависимости от количества дней, прошедших с начала пандемии, используя две модели: GradientBoostingRegressor и RandomForestRegressor из библиотеки scikit-learn. Однако обе модели возвращают идентичные предсказания для всех тестовых значений, что указывает на наличие проблемы в вашем подходе.

Возможные причины проблемы

  1. Отсутствие значимых признаков: Использование только одного признака (число дней) для моделирования сложной эпидемиологической динамики может быть недостаточным. Ваша модель может предсказывать среднее значение в данных, если информация в признаках не поддерживает сложную структуру выходных данных.

  2. Проблемы с данными: Убедитесь, что данные корректные и содержат достаточное количество наблюдений для обучения модели. Если данные сильно зашумлены или недостаточны, модели могут учиться неправильно.

  3. Настройка моделей: Убедитесь, что вы правильно настраиваете гиперпараметры моделей. Хотя вы используете значительное количество деревьев в ансамбле (n_estimators=500), может потребоваться более детальная настройка других параметров.

Рекомендации по улучшению

  1. Расширение набора признаков: Добавьте дополнительные признаки, такие как мобилити (активность населения), климатические условия, введенные меры безопасности и пр. Это может повысить информативность модели.

  2. Проверка агрегированных моделей: Рассмотрите использование более подходящих алгоритмов для временных рядов, таких как ARIMA, Prophet или те же градиентные boosting модели, но с учётом временной корреляции.

  3. Использование Поассоновской регрессии: Поскольку вы предсказываете число событий (случаев) в конечный период, целесообразно попробовать регрессию Поассона, которая может быть более приспособленной для анализа счётных данных.

  4. Анализ данных: Проведите анализ признаков и целевой переменной для выявления трендов, сезонности и выбросов, что поможет улучшить подготовку данных и выбор признаков.

  5. Визуализация результатов: Всегда полезно визуализировать предсказания модели на графике, чтобы лучше понять, как модель интерпретирует данные.

Заключение

Машинное обучение может значительно помочь в анализе пандемических данных, но важно тщательно подойти к выбору признаков и моделей. Рекомендую также обратить внимание на изучение основ обработки временных рядов и более детальное исследование характеристик ваших данных. Это может значительно повысить качество предсказаний и дать более стойкий результат в долгосрочной перспективе.

Изучите дополнительные подходы и алгоритмы, и это позволит вам существенно улучшить вашу модель. Удачи!

Оцените материал
Добавить комментарий

Капча загружается...