時系列解析を手軽に行うことのできるライブラリのProphetですが,どうやら直近のバージョンアップグレードで,ライブラリの依存関係周りの不具合がいろいろと出ているようです(21年5月27日時点).
で、いろいろと調査した結果、一番手っ取り早いのはライブラリ及びPython環境のダウングレード(3.8⇒3.7)という事だったので、その手順を記します.
1. Anacondaでの Python3.7の環境の作り方
手順1-1: Anaconda Navigatorの起動
左下のスタートボタンから「Anaconda3(64bit)」を選択し,「Anaconda Navigator」をクリック。
手順1-2: 画面左の「Environments」を選択
ホーム画面左の「Environments」タブをクリック
手順1-3: 画面下の「Create」ボタンをクリック
Anaconda Navigator画面の中央下部に「Create」ボタンがあるので、そのボタンをクリック
手順1-4: 環境の指定
「Create new enviroment」画面が出現します。「Name」には任意の名前(今回はPython_ex)を設定し,「Packages」のチェックボックスで「Python」が選ばれれていることを確認し、更に、ドロップダウンから「3.7」を選択する。
最後に「Create」ボタンをクリック。
少し時間がかかります。
もし、3.7が選択できない場合は、手順1-4-1 に移ってください。適切にできた場合は、手順1-5に移りましょう
手順1-4-1 baseのターミナルを起動
画面中央に「base(root)」環境があり、その右側に「▶」ボタンがあるので、このボタンを「右クリック」
小さな選択画面が出てくるので、「Open Terminal」を選択して「左クリック」
手順1-4-2 ターミナルにコマンドの入力
ターミナルと呼ばれる黒い画面が出てくるかと思います。そこに次のコマンドをコピペして、「enter」キーを押してください
conda create -n Python_ex python=3.7
enterキーを押して,少し経つと「Proceed ([y]/n)?」と表記されて、処理が一時停止します。カーソルを合わせて、「y」と入力して再度「enter」を押しましょう。
少し時間がかかります。以上の操作で、python3.7の環境が作成されていると思うので、手順1-5に進んでください。
手順1-5: Python_ex環境が作成されていることを確認
AnacondaNavigatorの「Enviroments」画面に戻ります。画面中央部に先ほど作成した「Python_ex」環境が作成されているはずです。「Python_ex」を左クリックすると、環境が base(root) から Python_ex に切り替わります。
画面右側にはこの環境にインストールされているものの一覧が表示されています。Nameがpythonである行のVersion列の値が「3.7.●」である事を確認できればOKです。
2.Prophetをインストール
手順2-1 Python_ex環境のターミナルを起動
画面中央に先ほど作成した「Python_ex」環境があり、その右側に「▶」ボタンがあるので、このボタンを「右クリック」
小さな選択画面が出てくるので、「Open Terminal」を選択して「左クリック」
手順2-2 コマンドプロンプトの出現
コマンドプロンプトと呼ばれる黒い画面が出現します。左側には現在の環境の名前が表示されているはずです。
次の手順からは、この黒い画面にコマンドを入力していきます。
手順2-3 コマンドの入力①
次のコマンドを入力してenterを押しましょう。ただし、実際にコマンドをキーボード入力をするとスペルミスにつながるので,コピー&ペーストしてコマンドプロンプトに張り付けてください。
conda install libpython
enterキーを押して,少し経つと「Proceed ([y]/n)?」と表記されて、処理が一時停止します。カーソルを合わせて、「y」と入力して再度「enter」を押しましょう。
手順2-4 コマンド入力②
他にも入力するコマンドが複数あります。1行ずつコピー&ペーストをして実行していきましょう。全ての工程で「Proceed ([y]/n)? 」が出現して、「y」の入力が求められるので、気を付けてください。
以下、実行するコマンドです。
conda install -c msys2 m2w64-toolchain
conda install numpy cython matplotlib pandas statsmodels scikit-learn
conda install -c conda-forge fbprophet
conda install -n base -c conda-forge jupyterlab_widgets
conda install -n Python_ex -c conda-forge ipywidgets
手順3: 適切に導入できたかの確認
手順3-1 jupyterLabのinstallとLaunch
新しい環境「Python_ex」を作ったので、再度JupyterLabをインストールする必要があります。
画面左の「Home」タブを押し,画面中央上部の「Applications on」が作成した「Python_ex」環境になっていることを確認します。
最後にJupyterLabアイコンの下にある「install」ボタンをクリックします。JupyterLabのインストールには時間がかかります。
しばらくすると、installが終了し、[Launch]ボタンに切り替わります。
もし、インストールにあまりにも時間がかかりすぎる様ならいったんAnacondaを再起動してみましょう。そうすると[Launch]ボタンに切り替わっています。
Launchボタンをクリックして、JupyterLabを起動しましょう。
手順3-2 サンプルのコード
適当なipynbファイルを用意して、次のコードを実行してみましょう。
# 使用するモジュールのインポート import matplotlib.pyplot as plt from datetime import datetime as dt from datetime import timedelta import random import pandas as pd random.seed(10) # 日付条件の設定 strdt = dt.strptime("2020-02-24", '%Y-%m-%d') # 開始日 enddt = dt.strptime("2020-07-5", '%Y-%m-%d') # 終了日 days_num = (enddt - strdt).days + 1 datelist = list(map(lambda x, y=strdt: y + timedelta(days=x), range(days_num))) df = pd.DataFrame(pd.Series(datelist,name="ds")) df["y"] = [random.random() for i in range(days_num)] from fbprophet import Prophet model = Prophet() model.fit(df) future_df = model.make_future_dataframe(10) pre_df = model.predict(future_df) result = model.plot(pre_df) plt.savefig("prophet.png")
その結果、次のような画像が表示されればOKです。 お疲れ様でした!