Evidentlyを用いたPythonデータマイニングによる機械学習モデルダッシュボードの作成
機械学習モデルの説明は、通常、ほとんどのモデルがブラックボックスであり、モデルの内部で何が起こっているのか分からないため、難しいプロセスとなっています。様々な種類の可視化を作成することは、モデルがどのように動作するかを理解するのに役立ちますが、モデルがどのように動作するかを説明するためのライブラリはほとんどありません。
Evidentlyは、検証や予測中の機械学習モデルの分析に役立つ、インタラクティブな可視化レポート、ダッシュボード、JSONプロファイルを作成するためのオープンソースPythonライブラリです。データドリフト、分類や回帰のモデルパフォーマンスなどに関連する6種類のレポートを作成します。
はじめに
1. パッケージのインストール
パッケージマネージャのpipを使用してインストールし、以下を実行します。
$ pip install evidently
このツールは、インタラクティブなレポートをJupyter notebookと個別のHTMLファイルとして構築することができます。インタラクティブなレポートをHTMLファイルとして生成したい、またはJSON設定ファイルとしてエクスポートしたいだけであれば、これでインストールは完了です。
Jupyter notebookでインタラクティブなレポートを作成できるようにするために、Jupyter nbextensionを使用します。Jupyter notebookでレポートを作成する場合は、インストール後にターミナルで以下の2つのコマンドを実行してください。
jupyter Nbextionをインストールするために、実行します。
$ jupyter nbextension install --sys-prefix --symlink --overwrite --py evidently
実行
jupyter nbextension enable evidently --py --sys-prefix
注意点としては、インストール後に1回実行すれば十分です。最後の2つのコマンドを毎回繰り返す必要はありません。
2. 必要なライブラリのインポート
このステップでは、MLモデルを作成するために必要なライブラリをインポートします。また、モデルのパフォーマンスを分析するためのダッシュボードを作成するためのライブラリもインポートします。さらに、データセットをロードするためにpandasをインポートします。
import pandas as pd
import numpy as np
from sklearn.ensemble import RandomForestRegressor
from evidently.dashboard import Dashboard
from evidently.tabs import RegressionPerformanceTab
from evidently.model_profile import Profile
from evidently.profile_sections import RegressionPerformanceProfileSection
3. データセットの読み込み
このステップでは、データをロードし、参照データと予測データに分離します。
raw_data = pd.read_csv('/content/day.csv', header = 0, sep = ',', parse_dates=['dteday'])
ref_data = raw_data[:120]
prod_data = raw_data[120:150]
ref_data.head()
4. モデルの作成
このステップでは、機械学習モデルを作成します。この特定のデータセットには、ランダムフォレスト回帰モデルを使用します。
target = 'cnt'
datetime = 'dteday'
numerical_features = ['mnth', 'temp', 'atemp', 'hum', 'windspeed']
categorical_features = ['season', 'holiday', 'weekday', 'workingday', 'weathersit',]
features = numerical_features + categorical_features
model = RandomForestRegressor(random_state = 0)
model.fit(ref_data[features], ref_data[target])
ref_data['prediction'] = model.predict(ref_data[features])
prod_data['prediction'] = model.predict(prod_data[features])
5. ダッシュボードの作成
このステップでは、モデルのパフォーマンスを説明するダッシュボードを作成し、MAE、MAPE、誤差分布など、モデルのさまざまなプロパティを分析します。
column_mapping = {}
column_mapping['target'] = target
column_mapping['prediction'] = 'prediction'
column_mapping['datetime'] = datetime
column_mapping['numerical_features'] = numerical_features
column_mapping['categorical_features'] = categorical_features
dashboard = Dashboard(tabs=[RegressionPerformanceTab])
dashboard .calculate(ref_data, prod_data, column_mapping=column_mapping)
dashboard.save('bike_sharing_demand_model_perfomance.html')
上の画像では、モデルのパフォーマンスを示すレポートをはっきりと見ることができます。このレポートは、上記のコードを使用してダウンロードし、HTMLレポートとして作成することができます。
6. 利用可能なレポートの種類
1)データドリフト
特徴量分布の変化を検出する
2) 数値目標ドリフト
数値目標や特徴の挙動の変化を検出する。
3)クラス分けのターゲットドリフト
分類対象や特徴の振る舞いの変化を検出する
4) 回帰モデルの性能
回帰モデルの性能とモデル誤差の分析
5) 分類モデルの性能
分類モデルの性能と誤差を分析する。バイナリーモデルとマルチクラスモデルに適用する
6) 確率的分類モデルの性能
確率的分類モデルの性能、モデルのキャリブレーションの品質、およびモデルの誤差を分析します。バイナリクラスとマルチクラスモデルに適用されます。
上記は、機械学習モデルダッシュボードを作成するためにEvidentlyを使用してパイソンデータマイニングの詳細であり、機械学習モデルダッシュボードを作成するEvidentlyについての詳細は、スクリプトハウスの他の関連記事に注意を払うしてください
関連
-
Python Decorator 練習問題
-
[解決済み】Python: SyntaxError: キーワードは式になり得ない
-
[解決済み] TypeError: write() の引数は bytes ではなく str でなければならない (Python 3 vs Python 2 )
-
[解決済み] インデックスとして使用する配列は整数型(またはブーリアン型)でなければならない。
-
[解決済み] Python3 で ** や pow() でサポートされていないオペランド型: 'str' と 'int' [重複].
-
[解決済み] 'ValueError: not enough values to unpack (expected 2, got 0)'.
-
[解決済み] 文字列の中の文字が文字であるかどうかを調べるには?(Pythonの場合)
-
[解決済み] Python TypeError: サポートされていないオペランドタイプ(s) for ^: 'float' および 'int'
-
numpy实用技巧(一)
-
Python 3.6でscipyという名前のモジュールがない場合の解決策
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Python トレースバック (最新の呼び出し) [複製]
-
[解決済み】itertools.groupby()を使うにはどうしたらいいですか?)
-
[解決済み】WindowsError: [Error 126] 指定されたモジュールが見つかりません。
-
Pythonの標準ライブラリPathlibはディレクトリとファイルを操作する
-
Pythonを使用して、Desertプラグインを正常に呼び出すためのゲームランタイムスクリプトを開発する。
-
[解決済み] scipy.miscモジュールにimread属性がない?
-
[解決済み] ImportError pyaudio という名前のモジュールがありません。
-
[解決済み] Scipy の疎な行列の乗算
-
[解決済み] JSONをpandasのdataframeに読み込む - ValueError: dictsと非Seriesを混ぜると曖昧な順序になる可能性がある
-
Pythonの小さなエラー collectionsAttributeError: 'dict' オブジェクトに 'add' 属性がない。