[PYTHON] Tokyo Corona: Machen Sie mit der Exponentialfunktion kurve_fit eine einfache Vorhersage aus offenen Daten

Eine Corona-Infektion ist weit verbreitet. Wenn keine Maßnahmen ergriffen werden (oder keine Auswirkungen haben), steigt die Anzahl der Infizierten im Allgemeinen entlang der Exponentialfunktion.

Die tatsächliche Anzahl der Infektionen wird täglich auf der Tokyo Corona-Website bekannt gegeben, es wurde jedoch keine Prognose abgegeben.

Die Exponentialfunktion kurve_fit wird verwendet, um den zukünftigen vorhergesagten Wert zu berechnen und den Graphen hier zu zeichnen. (Natürlich möchte ich nicht, dass das Ergebnis so gut wie möglich ist, und ich hoffe aufrichtig, dass die Maßnahmen die Situation so schnell wie möglich zum Abschluss bringen.

Nun, es ist schlecht. Intuition, die recht gut zur Exponentialfunktion passt. Der Entscheidungskoeffizient wird separat berechnet. TokyoCorona_20200403.png

Die Daten stammen von der offiziellen Website. https://stopcovid19.metro.tokyo.lg.jp/

Es scheint, dass es normalerweise nachts aktualisiert wird, aber es ist eine Voraussetzung für das Zeichnen eines Diagramms am nächsten Tag. Die Zahl am Montag ist in der Regel viel kleiner als die tatsächliche Zahl, da es viele Orte gibt, an denen die Inspektionsagentur am vergangenen Sonntag geschlossen ist. Es kann als periodischer Faktor entfernt werden, aber hier werde ich es so zeichnen, wie es ist.

import pandas as pd
from pathlib import Path
from datetime import datetime
BASEDIR = Path('.')
FILE_PATH = 'https://stopcovid19.metro.tokyo.lg.jp/data/130001_tokyo_covid19_patients.csv'
df = pd.read_csv(str(FILE_PATH))
#Prognosezeitraum
TO_PERIODS = 7

#Generieren Sie verschiedene Dinge für das Zeichnen von Diagrammen
target_columns = ['Veröffentlicht_Datum','geduldig_Alter']
df_select = df[target_columns]
list_now = list(df_select.groupby('Veröffentlicht_Datum').count().index)
today = datetime.today()
today.strftime('%Y-%m-%d')

list_to = list(pd.date_range(today.strftime('%Y-%m-%d'), periods=TO_PERIODS, freq='D').strftime('%Y-%m-%d'))
list_total = list_now + list_to

Berechnet als Exponentialfunktionsanpassungsprämisse unter Verwendung von edge_fit

from scipy.optimize import curve_fit
import numpy as np
import matplotlib.pyplot as plt

#Definition des ungefähren Ausdrucks
def nonlinear_fit(x, a, b):
    return a * x ** b

#Generieren Sie einmal temporäre x-Achsendaten
array_now_x = np.linspace(0, len(list_now)-1, len(list_now))

#Kurve unter Annahme einer Exponentialfunktion_Fit-Ausführung
param, cov = curve_fit(nonlinear_fit, array_now_x, array_now_y,maxfev=1000)

Berechnen Sie den zukünftigen Wert mit Parametern, die durch die Verarbeitung der Exponentialfunktionsanpassung erhalten wurden

list_total_y = []
for num, values in enumerate(list_total):
    list_total_y.append(nonlinear_fit(num, param[0], param[1]))

#Berechnen Sie die Anzahl der infizierten Personen pro Tag aus veröffentlichten Daten
array_now_y = df_select.groupby('Veröffentlicht_Datum').count()['geduldig_Alter'].values

Zeichnen Sie ein Diagramm.

import seaborn as sns
import matplotlib.pyplot as plt
sns.set()
sns.set_style('whitegrid')

fig, ax = plt.subplots(1, 1, figsize=(15, 10))
ax.bar(list_total, list_total_y, color='blue')
ax.bar(list_now, array_now_y, color='red',alpha=0.75)
plt.xticks(rotation=90)
plt.show()

Recommended Posts

Tokyo Corona: Machen Sie mit der Exponentialfunktion kurve_fit eine einfache Vorhersage aus offenen Daten
Versuchen Sie, mit matplotlib aus den Daten von "Schedule-kun" eine Kampfaufzeichnungstabelle zu erstellen.
Versuchen Sie, in Python einen "Entschlüsselungs" -Code zu erstellen
Versuchen Sie, mit Python eine Diedergruppe zu bilden
Eine einfache Problemumgehung für Bots, um zu versuchen, Tweets mit demselben Inhalt zu veröffentlichen
WEB Scraping mit Python und versuchen, aus Bewertungen eine Wortwolke zu machen
Versuchen Sie, die offenen Daten von COVID-19 aus Yokohama / Tokio / Osaka zu verwenden
Ich habe eine Funktion zum Abrufen von Daten aus der Datenbank spaltenweise mithilfe von SQL mit SQLite3 von Python [SQLite3, SQL, Pandas] erstellt.
Lassen Sie uns ein Befehls-Standby-Tool mit Python erstellen
Erstellen Sie mit OpenCV eine Funktion zum Beschreiben japanischer Schriftarten
Versuchen Sie, COVID-19 Tokyo-Daten mit Python zu kratzen
[Linux] Kopieren Sie Daten mit einem Shell-Skript von Linux nach Windows
Wie man ein einfaches Flappy Bird-Spiel mit Pygame macht
[Einführung in Python] So erhalten Sie Daten mit der Funktion listdir
Versuchen Sie, Merkmale von Sensordaten mit CNN zu extrahieren
Rubyist hat versucht, eine einfache API mit Python + Flasche + MySQL zu erstellen
[Einführung in Python] So teilen Sie eine Zeichenfolge mit der Funktion split
So erstellen Sie einen Befehl zum Lesen der Einstellungsdatei mit Pyramide
Versuchen Sie, mit Python3 eine Zeichenfolge aus einem Bild zu extrahieren
Rails-Benutzer versuchen, mit Django eine einfache Blog-Engine zu erstellen
Versuchen Sie, einen Web-Service-ähnlichen Typ mit 3D-Markup-Sprache zu erstellen
Versuchen Sie, den kürzesten Weg mit Python + NetworkX + Social Data zu lösen
Vom "Zeichnen" zum "Schreiben" des Konfigurationsdiagramms: Zeichnen Sie das AWS-Konfigurationsdiagramm mit Diagrammen
[Python] Eine einfache Funktion zum Ermitteln der Mittelkoordinaten eines Kreises
So erstellen Sie eine rekursive Funktion
[Python] Machen Sie die Funktion zu einer Lambda-Funktion
Einführung und Verwendung der Python-Flasche ・ Versuchen Sie, einen einfachen Webserver mit Anmeldefunktion einzurichten
Teilen und Verarbeiten eines Datenrahmens mithilfe der Groupby-Funktion
[Python] Erklärt anhand eines konkreten Beispiels, wie die Bereichsfunktion verwendet wird
Versuchen Sie, mit Python (2) eine Erfassungssoftware zu erstellen, die so genau wie möglich ist.
Versuchen Sie, die Höhendaten des National Land Research Institute mit Python abzubilden
Ich habe mir eine Möglichkeit ausgedacht, aus einem Foto ein 3D-Modell zu erstellen.
Versuchen Sie, das Problem des Handlungsreisenden mit einem genetischen Algorithmus zu lösen (Theorie)
[Einführung in Python] So schreiben Sie eine Zeichenfolge mit der Formatierungsfunktion
Machen Sie mit Python einen Entscheidungsbaum von 0 und verstehen Sie ihn (4. Datenstruktur)
Extrahieren Sie die Datentabelle von Azure SQL Server mit pyodbc und versuchen Sie, sie als numpy array / pandas dataframe zu definieren
Machen wir einen Jupyter-Kernel
Ein einfaches IDAPython-Skript zum Benennen einer Funktion
Lassen Sie uns mit PLY 1 eine einfache Sprache erstellen
Versuchen Sie, mit Pandas in ordentliche Daten umzuwandeln
Versuchen Sie, das Problem des Handlungsreisenden mit einem genetischen Algorithmus (Python-Code) zu lösen.
Versuchen Sie, mit Talking Head Anime aus einem einzigen Bild zu verschönern [Python-Vorbereitung]
Lassen Sie uns mit Flask eine Webanwendung zur Konvertierung von A nach B erstellen! Von Grund auf neu ...
Versuchen Sie, das Problem des Handlungsreisenden mit einem genetischen Algorithmus zu lösen (Ausführungsergebnis)
Ich habe eine einfache Mail-Sendeanwendung mit tkinter von Python erstellt
Ein Anfänger des maschinellen Lernens versuchte, mit Python ein Vorhersagemodell für Pferderennen zu erstellen
[Python] Smasher hat versucht, den Video-Ladevorgang mithilfe eines Generators zu einer Funktion zu machen
SSH-Anmeldung am Zielserver von Windows mit einem Klick auf eine Verknüpfung
[Überprüfung] Versuchen Sie, die Punktgruppe an der Optimierungsfunktion von Pytorch Part 1 auszurichten
[Python] Ich habe versucht, den Typnamen als Zeichenfolge aus der Typfunktion abzurufen
Ich habe versucht, eine einfache Bilderkennungs-API mit Fast API und Tensorflow zu erstellen
[Einführung in Python] So erhalten Sie den Datenindex mit der for-Anweisung