【Python】ベイジアンネットワーク用ライブラリpgmpyのインストール

【Python】ベイジアンネットワーク用ライブラリpgmpyのインストール データ分析

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.62016年12月23日2021年12月
3.72018年6月27日2023年6月
3.82019年10月14日2024年10月
3.92020年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の動作確認に関する説明でした。

タイトルとURLをコピーしました