Ciencia de datos vs COVID-19_Part 1





Ya es obvio que en 2021 COVID-19 seguirá estando, como dicen, en la agenda. Esto significa que las preguntas surgen naturalmente: ¿tenemos herramientas para predecir el crecimiento y la disminución de la incidencia, podemos predecir el desarrollo de eventos en una semana, un mes o incluso un año? Vamos a averiguarlo.


Dado: capacidades colosales de ciencia de datos, tres especialistas talentosos.

Buscar: formas de predecir la propagación de COVID-19 con una semana de anticipación.



Solución:



De hecho, habrá tres soluciones, siga las publicaciones. Y hoy hablaremos de uno de ellos, con Vladislav Kramarenko. Encontró un modelo capaz de construir el pronóstico * más preciso para todo el mundo para la semana siguiente.



- Vladislav, hola. Analicemos en detalle lo que hiciste: qué sucedió, en qué queda por trabajar, qué errores fueron y cómo se pueden tener en cuenta en el futuro. Comencemos con lo principal: dime, ¿qué algoritmo de aprendizaje automático usaste?



- Me detuve en un aumento de gradiente. La dificultad fue que los aumentos de gradiente son diferentes y dan una imagen diferente. Tuve la mejor puntuación adaboost, seguida de Catboost.



- Quiero decir, ¿probaste diferentes y adaboost fue el mejor?



- Sí. Lo mejor fue adaboost, dio el pronóstico más moderado. Si vimos que todo estaba creciendo rápidamente, significa que todo seguirá creciendo rápidamente para el algoritmo, y otros impulsos estaban llevando el pronóstico a las nubes en alguna parte. Pero adaboost fue el más conservador.



- ¿Cómo entrenaste al modelo?



- La mayor dificultad en estos problemas es encontrar la forma correcta de entrenar modelos, es decir, hacer la elección correcta de muestras de entrenamiento y prueba. Si tomamos 1 día como muestra de prueba y dividimos todos los datos en datos de entrenamiento y de prueba, resulta que solo predecimos para 1 día. No es difícil, solo necesita distribuir aleatoriamente los días para entrenar y probar, y se puede predecir 1 día. De inmediato descarté esta idea y predije la última semana: es decir, corté la última semana, le di el resto de los días a los datos de entrenamiento y predije honestamente día tras día de la última semana, es decir, tomé datos de hace una semana para la predicción. Pero aquí también surgió una dificultad. Hice un modelo que predice perfectamente la segunda semana, agregué un montón de características que ayudaron en esto, pero resultó que el modelo,que predice muy bien la segunda semana, predice muy mal la tercera. Estoy empezando a pensar que tal vez sería más fácil poner los datos manualmente y no usar el aprendizaje automático, y ese modelo podría ser mejor.



- ¿Estás hablando de mirar el número con los ojos y dibujar una línea más?



- Analizar estadísticas mensuales. Estos datos encajan bien en alguna curva. Todas estas estadísticas son bastante extrañas y no todas las personas enfermas se involucran en ellas. Por tanto, las estadísticas no reflejan el número de casos. Sé que algunos chicos usan el modelo SEIR (modelo epidemiológico) para tal tarea. También pensé en usarlo, pero luego decidí que deberíamos saber exactamente cuántas personas están enfermas, pero no lo sabemos. Este modelo está vinculado a cuántas personas infecta una persona, cuántas personas se enferman. Si no conocemos estos datos, no podremos trabajar con ellos. En mi opinión, tal modelo daría una predicción errónea. *



* Analizaremos las ventajas y desventajas del modelo SEIR con Nikolai Kobalo en el próximo artículo.



Me parece razonable que las personas que hacen esto primero deben hacer todo usando una computadora, y luego editarlo y arreglarlo manualmente. La máquina a veces suelta todo tipo de tonterías. Por ejemplo, ella ve que en China el número de casos no ha crecido durante mucho tiempo, pero al mismo tiempo en otras regiones nada ha crecido durante mucho tiempo, y luego comenzó un crecimiento explosivo. Y sobre esta base, la máquina “comprende” que se debe hacer lo mismo con China, que, de hecho, ya tiene una meseta. Y comienza a dar no 80k, pero de repente deja un millón. Tenía esto en uno de los modelos.



- ¿Y los modelos tradicionales? ¿Qué piensas de ellos? ¿Análisis de series de tiempo como ARIMA?



- Probé ARIMA un par de veces, pero nunca dio un resultado mejor que el aumento de gradiente. Parecería que ARIMA puede explicar cualquier proceso, pero resultó que no siempre funciona mejor. También hay un montón de parámetros, el proceso debe ser estacionario, etc. Incluso si se integra, no es un hecho que resultará un proceso estacionario.



- Una pregunta sobre árboles. Los árboles no extrapolan. ¿Cómo conseguir que extrapolen?



- Para hacer esto, necesita predecir no el número total de infectados, sino algo más. Está claro que si predecimos el total, entonces en alguna región como Moscú no será posible predecir, ya que los árboles no pueden predecir más de lo que vieron en la muestra de entrenamiento. Tomé el logaritmo de la proporción de enfermos de hoy y de los días anteriores. Estos números (0.3,1, quizás 2) están en la muestra de entrenamiento y se obtiene el modelo. Está claro que no podremos predecir un fuerte aumento de 500 veces. Este modelo está más allá del poder. Pero si hablamos, por ejemplo, de la relación entre la ganancia de hoy y la ganancia de ayer, la cifra será aproximadamente uno, y tenemos diferentes valores de este tipo en la muestra; en este caso, el modelo predice perfectamente .



- Como objetivo en el modelo final, ¿tomó el logaritmo de la razón entre los enfermos de hoy y los de ayer?



- Sí. También probé la proporción de deltas: "cuánto ha crecido hoy", dividido por "cuánto ha crecido ayer". También funcionó bien. Pero el "número total" y el "aumento en el número de casos por día" funcionaron mal.



- ¿Qué tomaste como variables explicativas?



- Tomé unos 4 días anteriores. Funcionó. Tomé información sobre la población, el número de fumadores, etc. Se agregaron muchas estadísticas diferentes. Y luego pasé una semana mirando qué factores dan un aumento y cuáles no. Pero la situación está cambiando demasiado, estos factores resultaron no ser estables, más bien aleatorios.



- ¿Qué resultó ser estable, aparte de los valores anteriores?



- Lo más importante que influyó fue el número de días desde la primera enfermedad, décimo, centésimo ... Al principio tomé el número de días del primer contagiado, pero pensé que esto no era muy bueno, ya que muchas veces el infectado se aísla rápidamente y no conduce a un aumento brusco. Por lo tanto, comencé a tomar 10 infectados, y luego bajé a 100 y 1000 infectados.



En la tercera etapa de esta tarea, agregué 50 y 500 infectados, y esto me jugó una broma cruel: el modelo estaba muy sobreentrenado y comenzó a predecir mal la próxima semana.



Datos más importantes, probé el índice de autoaislamiento. Algunas semanas dio un fuerte aumento, y otras no importó en absoluto. Utilicé datos sobre el nivel de atención en salud: qué cantidades se transfieren a los médicos, cuántos médicos en general hay en el país, cuántos ancianos, etc. Esto se hizo para predecir la mortalidad.



Había varios problemas que quería resolver. Tome el autoaislamiento, por ejemplo. Me di cuenta de que el nivel de autoaislamiento no afecta el mañana, sino la fecha en dos semanas. Y no es un hecho que el autoaislamiento afecte al número de casos; quizás, por el contrario, el número de casos afecte el nivel de autoaislamiento.



, - Casual Inference in ML ( https://ods.ai/tracks/causal-inference-in-ml-df2020/) – 2020 – -, - COVID-19 , .. , .




- ¿Qué conclusión sacaría sobre los modelos de AA en general, no en relación con este problema? Su afirmación parece que necesita "cuidar" modelos ...



- Hay tareas que una computadora resuelve mucho mejor que un humano. Por ejemplo, la última competencia en la que participé fue el Examen Estatal Unificado de Ruso. Mi modelo era mejor en estas tareas que yo. Pero esto es procesamiento de textos ...



¿Por qué hay tanta gente enferma en San Petersburgo y MSC? Estamos siendo probados sin excepción. No diré que en otras regiones prueben tan masivamente. Por ejemplo, las estadísticas incluyen a 100 personas. ¿Qué significa esto? Hace tres semanas se infectaron. Como resultado, no predecimos el número de casos, sino alguna otra cifra. Y cómo esta cifra se correlaciona con el número de casos no está muy claro. Una computadora no puede predecir nada normalmente si le damos números incomprensibles.



A quién le importa, aquí está mi solución: https://github.com/vlomme/sberbank-covid19-forecast-2020



, – 10, 100, 1000 (, , ).



. . , , , , , 2021.



, , .




* «Forecast the Global Spread of COVID-19»



All Articles