今回は、Pythonを使って東京の1日の新規感染者数を予想してみました。
初めての機械学習ということで、シンプルなことしかできませんが、温かい目で見ていただけたら幸いです。
NumPy, Pandas, Matplotlibをそれぞれインポートします。
import matplotlib.dates as mdatesは、後にグラフを作る際に日にちを加えるためのコードです。
都内の最新感染動向というホームページに、これまでの感染者数の推移が乗っているので、そこからデータを集めます。こちらがそのホームページです。
https://stopcovid19.metro.tokyo.lg.jp/
上記の画像は2月14日から12月2日までの1日の新規感染者数をまとめたデータです。NumPyを使って、ndarray化させています。
次にPandasのDataFrameを使って、綺麗な表を作ります。
3. 説明変数と目的変数を決め、訓練データとテストデータに分ける
ここではTechAcademyで習った技術を生かします。Xは、その日の感染者数、y は次の日の感染者数とします。ある日の感染者数がXなら、その次の日の感染者数はy になる」という形で X(説明変数)と y(目的変数)を設定します。
今回は、直近(後半の)30日をテストデータにします。つまり、2月14日から11月3日までのデータを訓練データとし、11月4日から12月2日までをテストデータにします。
4. scikit-learnのLinearRegression(回帰)を使って、学習させる
今回は感染者数の予測を行いたいため、 linear_modelをインポートし、linear_model.LinearRegression()で学習をさせます。
predict()を使って、期待する性能が出たかを評価します。
Pandasのpd.date_range()を使って、11月4日から12月2日までのデータを作ります。
あとはラベルやタイトルを入れて完成です。
赤い線はコンピューターが予想した数で、青い線は実際の数を表しています。
こうして見ると、ちゃんと予想はできてるように感じますが、専門家ではないので詳しい事はわからないです。
でも、初めての機械学習にしては上出来だったかなと思います。
もっと機械学習についての知識を深めて、難しいことにチャレンジしていけたらなと思います!
最後まで読んでいただきありがとうございました!