0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Pythonで東京の1日の新規感染者数を予想してみた!

Posted at

今回は、Pythonを使って東京の1日の新規感染者数を予想してみました。

初めての機械学習ということで、シンプルなことしかできませんが、温かい目で見ていただけたら幸いです。

  1. NumPyやPandasなどの外部ライブラリをインポート!
    image.png

NumPy, Pandas, Matplotlibをそれぞれインポートします。
import matplotlib.dates as mdatesは、後にグラフを作る際に日にちを加えるためのコードです。

2. データを集める
image.png

都内の最新感染動向というホームページに、これまでの感染者数の推移が乗っているので、そこからデータを集めます。こちらがそのホームページです。
https://stopcovid19.metro.tokyo.lg.jp/

上記の画像は2月14日から12月2日までの1日の新規感染者数をまとめたデータです。NumPyを使って、ndarray化させています。

次にPandasのDataFrameを使って、綺麗な表を作ります。​
image.png

3. 説明変数と目的変数を決め、訓練データとテストデータに分ける
image.png
ここではTechAcademyで習った技術を生かします。Xは、その日の感染者数、y は次の日の感染者数とします。ある日の感染者数がXなら、その次の日の感染者数はy になる」という形で X(説明変数)と y(目的変数)を設定します。

今回は、直近(後半の)30日をテストデータにします。つまり、2月14日から11月3日までのデータを訓練データとし、11月4日から12月2日までをテストデータにします。

4. scikit-learnのLinearRegression(回帰)を使って、学習させる
image.png
今回は感染者数の予測を行いたいため、 linear_modelをインポートし、linear_model.LinearRegression()で学習をさせます。

predict()を使って、期待する性能が出たかを評価します。

5. matplotlibを使って、グラフ化する
image.png

Pandasのpd.date_range()を使って、11月4日から12月2日までのデータを作ります。
あとはラベルやタイトルを入れて完成です。

結果はこうなりました!
image.png

赤い線はコンピューターが予想した数で、青い線は実際の数を表しています。
こうして見ると、ちゃんと予想はできてるように感じますが、専門家ではないので詳しい事はわからないです。
でも、初めての機械学習にしては上出来だったかなと思います。
もっと機械学習についての知識を深めて、難しいことにチャレンジしていけたらなと思います!

最後まで読んでいただきありがとうございました!

0
0
6

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?