Pythonでベイジアンネットワークを扱うなら、pgmpyが選択肢となります。
しかし、pgmpyのインストールは若干ややこしいです。
この記事は、pgmpyについての解説となります。
pgmpyのインストールについても、丁寧に解説しています。
本記事の内容
- pgmpyとは?
- pgmpyのシステム要件
- pgmpyのインストール
- pgmpyの動作確認
それでは、上記に沿って解説していきます。
pgmpyとは?
pgmpyとは、確率的グラフィカルモデルを扱うためのPythonライブラリです。
そして、グラフィカルモデルとは次のようなモノのことです。
また、グラフィカルモデルはベイズ統計や機械学習で使用されています。
そのこともあり、pgmpyはベイジアンネットワーク用ライブラリと記載されています。
以上、pgmpyの説明でした。
次は、pgmpyのシステム要件を確認します。
pgmpyのシステム要件
現時点(2021年7月末)でのpgmpyの最新バージョンは、0.1.15となります。
この最新バージョンは、2021年6月30日にリリースされています。
pgmpyを動かすには、次の3つがポイントになります。
- OS
- Python
- PyTorch
それぞれを下記で説明します。
OS
サポートOSに関しては、以下を含むクロスプラットフォーム対応です。
- Windows
- macOS
- Linux
Pythonが動けば、どんなOSでもOKということでしょう。
Python
サポート対象となるのは以下のバージョンです。
- Python 3.7
- Python 3.8
- Python 3.9
そして、以下はPythonの公式開発サイクルとなります。
バージョン | リリース日 | サポート期限 |
3.6 | 2016年12月23日 | 2021年12月 |
3.7 | 2018年6月27日 | 2023年6月 |
3.8 | 2019年10月14日 | 2024年10月 |
3.9 | 2020年10月5日 | 2025年10月 |
比較すると、pgmpyが適切にメンテナンスされていることがわかります。
Pythonのライブラリは、多く存在します。
しかし、メンテンナスされずに放置されたモノも結構あります。
そんな状況であるため、サポート対象のPythonバージョンは指標に目安になります。
その意味では、pgmpyを安心して使うことができそうです。
なお、検証では以下のPythonを利用しています。
>python -V Python 3.9.6
Pythonをアップグレードする必要があるなら、次の記事をご覧ください。
PyTorch
公式には、詳細が記載されていません。
PyTorchが前提であることは、明示されています。
ただ、インストール前に必須なのかどうかは不明です。
そこで実際に検証しました。
結論は、PyTorchのインストール状況によります。
PyTorch | どうなる? |
インストール済み | PyTorch以外で必要なモノがインストール |
未インストール | PyTorchを含む必要なモノがインストール |
未インストールの場合、その時点で最新のPyTorchがインストールされます。
これはこれで便利です。
しかし、インストールされるのはCPU版のPyTorchとなります。
つまり、GPU版のPyTorchは自動ではインストールされません。
したがって、GPU版のPyTorchを利用したい場合は、事前にPyTorchをインストールしておきます。
PyTorchのインストールは、次の記事で説明しています。
以上、pgmpyのシステム要件を説明でした。
次は、pgmpyをインストールしていきましょう。
pgmpyのインストール
まずは、現状のインストール済みパッケージを確認しておきます。
>pip list Package Version ----------------- ------------ numpy 1.21.1 Pillow 8.3.1 pip 21.1.3 setuptools 57.4.0 torch 1.9.0+cu111 torchaudio 0.9.0 torchvision 0.10.0+cu111 typing-extensions 3.10.0.0
事前にGPU対応のPyTorchをインストール済みです。
そのため、「torch 1.9.0+cu111」などのパッケージを確認できます。
次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip setuptools
では、pgmpyのインストールです。
pgmpyのインストールは、以下のコマンドとなります。
pip install pgmpy
pgmpyのインストールには、少し時間がかかります。
事前にPyTorchがインストールされていないなら、さらに時間はかかるでしょう。
では、どんなパッケージがインストールされたのかを確認しましょう。
>pip list Package Version ----------------- ------------ colorama 0.4.4 decorator 4.4.2 joblib 1.0.1 networkx 2.5.1 numpy 1.21.1 pandas 1.3.0 patsy 0.5.1 pgmpy 0.1.15 Pillow 8.3.1 pip 21.1.3 pyparsing 2.4.7 python-dateutil 2.8.2 pytz 2021.1 scikit-learn 0.24.2 scipy 1.7.0 setuptools 57.4.0 six 1.16.0 statsmodels 0.12.2 threadpoolctl 2.2.0 torch 1.9.0+cu111 torchaudio 0.9.0 torchvision 0.10.0+cu111 tqdm 4.61.2 typing-extensions 3.10.0.0
かなり多くのパッケージが、インストールされています。
それだけ依存するパッケージ数が、多いということでしょう。
このことより、pgmpyは仮想環境へのインストールがおススメです。
仮想環境の構築に関しては、次の記事で解説しています。
以上、pgmpyのインストールについての説明でした。
最後は、pgmpyの動作確認を行います。
pgmpyの動作確認
pgmpyの動作確認は、以下のコードで行います。
from pgmpy.utils import get_example_model asia_model = get_example_model('asia') print(asia_model.get_cpds('lung'))
上記を実行します。
pgmpyのインストールに問題がなければ、以下の結果が表示されます。
+-----------+------------+-----------+ | smoke | smoke(yes) | smoke(no) | +-----------+------------+-----------+ | lung(yes) | 0.1 | 0.01 | +-----------+------------+-----------+ | lung(no) | 0.9 | 0.99 | +-----------+------------+-----------+
コードの内容は、サンプル(asia)のモデルを読み込むというモノです。
読み込んで、その分析内容を表示しています。
pgmpyの動作確認としては、これで十分でしょう。
以上、pgmpyの動作確認に関する説明でした。