AREA MARKETING LAB

エリアマーケティングラボ 〜業界の最新動向〜

TensorFlowで将来人口推計

今回は話題のTensorFlowを使って将来人口を推計しました。TensorFlowはGoogleが開発した機械学習用のライブラリで、オープンソースのため無料で使用できます。
今回は趣向を変えて、話題のTensorFlowを使って将来人口を推計してみたいと思います。

TensorFlow(テンソルフロー、英語読みではテンサーフロー)はGoogleが開発した機械学習用のライブラリで、オープンソースのため無料で使用することができます。画像認識や音声認識などにも使われていますが、今回は将来人口の予測に使ってみましょう。

月刊GSI 2018年12月号(Vol.90)

今回は趣向を変えて、話題のTensorFlowを使って将来人口を推計してみたいと思います。

TensorFlow(テンソルフロー、英語読みではテンサーフロー)はGoogleが開発した機械学習用のライブラリで、オープンソースのため無料で使用することができます。画像認識や音声認識などにも使われていますが、今回は将来人口の予測に使ってみましょう。

将来人口推計とは?

 将来人口推計には基本的にコーホート法が使われます。
 例えば、2015年で0-4歳の人口は5年後の2020年には5-9歳になっています。この時の変化率を5-9歳の生存率とします。

 また、2020年の0-4歳は2015年時点で生まれていないため、2015年時点の15-49歳の女性と0-4歳人口の比率(出生率のようなもの)を使って算出します。

 他にも色々あるのですが、おおまかにはこのように生存率や出生率を基準となる人口に掛けて推計します。

※簡略化したイメージ図です。

どのようにして機械にルールを教えるのか?

 ではどのようにして生存率や出生率などのルールを機械に教えるのでしょうか?

 ここが機械学習のすごいところで、ルールを教える必要がありません。

 基準となる人口データとその結果のデータをたくさん投入すれば、途中のルールが分からなくても答えを出してくれるのです。

TensorFlowを使うための準備

 では早速やってみましょう。

 まずTensorFlowを使うために、Anaconda(アナコンダ)というソフトをインストールします(無料です)。

 設定はデフォルトのままで構いません。

https://www.anaconda.com/download/

 WindowsのスタートメニューからAnacondaを起動して、[Environments]-[root]-[Open Terminal]をクリックします。

 コマンドプロンプト(黒い画面)が表示されたら、以下のように入力します。

※インストールがうまくいかない場合は後述のトラブルシューティング参照。

 [Home]に戻って[jupyter Notebook]を[Launch](起動)します。

 プラウザ上で[jupyter Notebook]が表示されたら、[New]→[python3] とクリックします。

 これで準備は完了です。

TensorFlowで将来人口推計

 素材となるデータには弊社の将来人口推計データを使います。

 生存率を計算するには2015年と2020年というように、少なくとも2年分のデータが必要です。

 また、出生率を算出するためには女性の年齢階級別データが必要です。

 そのため、以下のようなCSVデータを用意します。(※町丁目単位。およそ20万レコード)

モデルを作成する

 [jupyter Notebook]のセル(テキストボックス)に以下のコードを入力し、[Run]ボタンを押すと、学習が始まります。

 学習を行うときは、訓練に使うデータと、訓練が正しくできているかどうかを検証するデータが必要になるため、元のデータを8対2に分割します。

2030年の人口を予測

 さて、できあがったモデルを使って、2030年の人口を予測してみましょう。

 もともと製品版の将来推計人口には2030年の推計値も入っているため、これと予測値を比較してみます。

 入力には、2020年~2025年の年齢階級別男女別人口を投入します。

 2つ目のセルに以下のコードを入力し、[Run]ボタンを押します。

 結果をグラフに表示しました。どうでしょうか?

 将来推計人口の2030年の値(コーホート法で推計したもの)と予測値の値が、ぴったり一致しているように見えます。

 ※縦軸は人口(人)、横軸は町丁目

実際の予測値を見てみましょう。

※2030年の将来人口予測

 まだまだ改善の余地はありそうですが、

 機械学習で予測をすることの可能性は感じられたのではないかと思います。

まとめ

 今回はTensorFlowを使って将来人口の予測をしてみました。細かいルールを教える必要がないといったメリットの反面、ある程度の精度を出すにはパラメータの調整等、改善が必要だと思われます。しかしそれができれば、強力な武器になるでしょう。

 将来人口の予測以外にも、売上予測等に使ってみると良いかもしれません。

トラブルシューティング

◆以下のようなメッセージが出た場合。

以下のコマンドでpipをアップグレードします。

◆404:Not Foundが出た場合。

一度「Home」タブをクリックします。

しばらくしてから、「Jupyter Notebook」をクリックします。

[F5]キーを押します。