MatrixFlowMatrixFlowお役立ち記事

総合情報サイト / お役立ち記事 / プログラミングせずにコロナ感染者数を予測するAIを作る

プログラミングせずにコロナ感染者数を予測するAIを作る

TrendFlowを使用しての時系列予測

 
◆目次◆
1. 題材と分析手法の説明
2. プロジェクトの説明
3. AIを作成する流れの全体像の説明
4. データセットの説明
5. 予測する列の選択
6. 前処理
7. レシピ
8. 学習
9. 学習結果
10. 推論

 
 

1. 題材と分析手法の説明

こんにちは。
ビジネスのためのAI活用プラットフォーム「MatrixFlow」の広報部の中野です。

MatrixFlowのAIのレシピ(設計図)の一つである時系列解析を行う「TrendFlow」を紹介したいと思います。

時系列解析とは、時間の経過に伴い変化するデータを分析することです。
例えば、日によって変化する株価、気温の遷移や降水状況などの気象観測、ダイエット中の体重の変化などのデータを分析できます。

TrendFlowは難しいプログラミングを一切必要とせずにデータを投入するだけで未来を予測するAIを作成できる機能です。

今回は「TrendFlow」を使ってコロナの感染者数を予測するAIを作成したいと思います。
では、さっそく作っていきましょう!

2. プロジェクトの説明

MatrixFlowにログインして、はじめにプロジェクトを作成します。

プロジェクトとは、AIで分析するための作業(データセット~推論まで)に必要なものを一つに纏められるフォルダの役割を持つシステムです。パソコンのフォルダと同じ意味合いです。これから行ってく作業は、このプロジェクトで管理します。

では、始めていきましょう。
プロジェクト一覧から「新規プロジェクトを作成する」をクリックします。

「テンプレートを使用してAIを構築する」または「自分でAIを構築する」のどちらかを選択します。今回は、「自分でAIを構築する」を選択します。

プロジェクト名とプロジェクトの説明を入れて作成します。

3. AIを作成する流れの全体像の説明

ここから実際にAIを作っていくのですが、どのようなことをするのか、どのような手順で進めるのか確認しておきましょう。

【AIを作成する過程】
①使用するデータをインポート
②予測する項目を設定
③データの整形(前処理)
④AIの設計図の作成(レシピ)
⑤AIに学習させる
⑥予測する(推論)

「AI」といえば、難しいイメージがありますが、MatrixFlowでの作業はクリックやドラッグアンドドロップが多くとても簡単です。

4. データセットの説明

データセットとは、分析したいデータをまとめたものです。

まず、使用するデータを用意します。
今回使うのは、日別のコロナ感染者数のリストCSVファイルです。
※2020/6/1〜2020/8/25までの東京のデータです。

データはここを参考にしました。
確定日が陽性が確定した日で、感染者数がその確定日の人数です。

このCSVファイルを使って、データセットの設定を行います。
使用するデータを設定するには、3つの方法がありますが、今回は「ファイルをアップロード」をします。
上記で用意したCSVファイルを所定の場所にドラッグ&ドロップします。

ファイルの情報が表示されたら、名前と説明を入力して「データセットをアップロードする」をクリックしましょう。

5. 予測する列の選択

データセットをアップロードしたら、予測する列の選択画面に移行します。
ここでは、予測する項目を設定します。何を予測分析したいのかを選びます。

コロナの感染者数の推移を分析したいので、「感染者数」を選択し、「予測する列を決定する」をクリックします。

6. 前処理

前処理の画面に移行します。
ここでは、学習用データをAIが学習できる形に加工します。その工程を前処理と呼びます。
文字を数値変換したり、欠損値のある項目を特定の値で埋めたり、欠損値を含む行を削除します。これを行うことで、AIの学習精度が上がります。

ここで、前処理を行う必要があると、エラー(赤字)表示されますが、今回はデータが整っていたので、前処理の必要はありませんでした。
何もせずに、左上の「前処理を完了する」をクリックします。
※前処理が必要な場合の設定方法については別の記事で説明しています。

また、通常は欠損値がある場合、前処理を行うのですが、実はTrendFlowの最大の特徴の一つとして欠損値の補完をせずに機械学習ができるという特徴があります。

7. レシピ

次にAIのレシピを作ります。

レシピとは、AIの設計図です。
通常だと、ここでプログラミングが必要となりますが、MatrixFlowを使えば、ドラッグ&ドロップでブロックを置いてブロック同士を繋げるだけで、プログラミングをする事なくAIの構築(機械学習・深層学習)が出来ます。

では、レシピを作っていきましょう。
レシピ管理画面では「新規追加」ボタンを押します。

ブロックタイプ「時系列解析」(図1)をクリックすると2つのブロックが表示されます。(図2)

(図1)
(図2)

TrendFlowをドラック&ドロップで作成フィールドに置き、データ入り口(数値)と精度評価にそれぞれ繋げます。
そして、左上の「レシピを保存する」をクリックします。

名前と説明を書いて保存ボタンを押せばレシピの完成です。

データとレシピがそろったので学習します。

8. 学習

学習とは、レシピと学習用データを使ってAIを学習させます。
機械学習は、アルゴリズムを使って大量のデータを解析することで、その中に規則性や関係性を見つけ出す手法のことです。

では、AIの学習を始めましょう。

先ほど予想する列を選択「感染者数」を選びました。
ここでは、時系列解析したいので時間データを表している「確定日」を選択し、「学習を開始する」をクリックします。

学習が始まりました。
数分で学習は完了します。

9. 学習結果

緑色の線が実測値で、紫色の線が予測値になります。薄紫色の範囲は信頼区間です。
緑色と紫色の動きが大きなずれがないので、これなら精度の高い予測が出来そうです。

またグラフは、以下のように拡大して詳細を確認することもできます。
下のグラフの見たい範囲をクリックしながら動かして指定することでその部分を拡大できます。

「精度評価」をクリックすると、左の表示内容のあるトレンドや変化点や周期の傾向を確認することができます。
全体動きの傾向を確認できます。時間の経過とともに、数値が上昇していく傾向があるのか、減少していく傾向があるのかがグラフに表示されています。

変化点です。今回のタスクとは違いますが時系列データの異常検知などをしたい場合をここを確認することで異常が起こった時間を特定できます。

また、相関グラフを見ることができます。
※データに欠損値があった場合は見ることはできません。

学習が完了したAIは保存しておきましょう。
左上の「学習済みAIを保存する」をクリックして「名前」と「説明」を入力し、保存します。

10. 推論

推論とは、学習結果(規則性や関係性)に基づき、提示された新たなデータについて予測測を行うことです。

ここでは、今後のコロナの感染者数を推測します。7日先までを推測してみましょう。
学習済みAIの保存が完了すると、「このAIを使って推論をする」または「引き続き学習する」の選択肢が出てきます。「このAIを使って推論をする」を選択します。

推論画面へと移動します。
先ほどの学習済みAIを選択します。

次の選択画面に移動します。
今回は、前処理を行なっていませんのでスキップとなります。(※前処理を行なっていた場合は処理済みデータセットを選択します)
データセット選択については、推論用のデータが必要な場合に設定します。(※今回は不要なのでスキップします。)

次に、推測したい期間を設定します。7日先まで推測したいので、
予測期間に「7」を入力、時間単位に「日」を選択し、推論開始ボタンを押します。

推論結果です。
緑色の線が実測値で、紫色の線が予測値になります。薄紫色の範囲は信頼区間です。

拡大します。

推論結果はダウンロードすることもできるので結果をエクセルなどでさわりたい人は「推論結果をダウンロードする」ボタンを押してください。

またサービス管理ではこのモデルを使って推論できるAPIを発行できるので、コロナ感染者数を予測するAPIをサイトやサービスに組み込むことなどができます。

TrendFlowで驚くほど簡単に時系列解析の予測が出来ました!

今回のコロナのような大きな事件の後では人の経験や勘はうまく適応できないことも多いと思います。そこでデータに対するビジネス知識とAIを使ってより正確な予測をしてみませんか?
以上です。ありがとうございました!

サポートへのリンク

マニュアル http://www.matrixflow.net/manual/top/
問い合わせ http://www.matrixflow.net/contact/