もう一つの機械学習モデル説明ツール: Shapash

もう一つの機械学習モデル説明ツール: Shapash


シャパシュとは

モデルの解釈可能性と理解可能性は、多くの研究論文やオープンソース プロジェクトの焦点となっています。また、多くのプロジェクトにはデータの専門家や十分に訓練された専門家が配置されています。

Shapash は、ほとんどの sklearn、lightgbm、xgboost、catboost モデルで動作し、分類タスクと回帰タスクの両方に使用できます。 Shap バックエンドを使用して特徴のローカル寄与を計算しますが、これはローカル寄与を計算するための他の戦略に置き換えることができます。データ サイエンティストは、Shapash Explainer を使用してモデルを調査およびトラブルシューティングしたり、展開して各推論の視覚化を提供したりできます。また、エンドユーザーや起業家に大きな価値をもたらす Web アプリケーションの作成にも使用できます。

シャバッシュ図書館

シャパシュのゴール

1. 明確で合理的な結果を表示する

プロットと出力では、各コンポーネントとそのモードのラベルが使用されます。

2. Webアプリケーション

データ サイエンティストは、Web アプリケーションを使用してグローバルとローカルの近隣間のロジックを簡単に調査することで、モデルをすばやく理解し、さまざまな重要なポイントがどのように作用するかを確認できます。

shapash ライブラリ Web アプリ

3. 要約して説明を導き出す

Shapash は簡潔かつ明確な説明を提供します。 Shapash の機能が要約され、明確に説明されているため、背景に関係なく、すべての顧客がホスティング モデルを明確に理解できます。

4. 完全なデータサイエンスレポート

完全なデータレポートは、こちらからご覧いただけます: https://shapash-demo.ossbymaif.fr/

Shapashの特徴

Shapash の機能の一部は次のとおりです。

1. 機械学習モデル: 分類 (バイナリまたはマルチクラス問題) および回帰問題に適用できます。 Catboost、Xgboost、LightGBM、Sklearn Ensemble、線形モデル、SVM などの複数のモデルをサポートします。

2. 特徴エンコーディング: ワンホットエンコーディング、序数エンコーディング、ベース N エンコーディング、ターゲットエンコーディング、バイナリエンコーディングなど、データセット内のカテゴリ特徴を処理するための多数のエンコーディング手法をサポートしています。

3. SklearnColumnTransformer: OneHotEncoder、OrdinalEncoder、StandardScaler、QuantileTransformer、または PowerTransformer

4. 視覚化: 結果を簡単に解釈し、理解しやすく明確な結果を表示するためのビジュアル セットを提供します。

5. LimeとShapと互換性があります。 Shap バックエンドを使用し、結果を表示するために必要なコードは数行だけです。

6. 結果を簡潔に得るために、パラメータのオプションが多数用意されています。

7. Shapash はインストールも使用も簡単です。モデルを理解し、簡単な構文で説明を要約するための SmartExplainer クラスを提供します。

8. 展開: 運用上の使用のための調査と展開 (API またはバッチ モード経由) が重要です。グローバルからローカルに移動する Web アプリケーションを簡単に作成します。

9. 汎用性が高い: 結果を表示するには、非常に多くの引数が必要です。しかし、データのクリーニングとアーカイブをより多く行うほど、顧客にとって最終結果がより明確になります。

Shapashの仕組み

Shapash は、機械学習を理解し、説明できるようにする Python ライブラリです。データ愛好家はモデルを簡単に理解し、共有できます。 Shapash はバックエンドとして Lime と Shap を使用し、結果を表示するために必要なのは数行のコードだけです。 Shapash は、結果を合理的なものにするために、機械学習モデルの構築におけるさまざまな重要な進歩に依存しています。次の図は、shapash パッケージのワークフローを示しています。

Shapashの仕組み

仕組み

  1. まず、データの準備、特徴エンジニアリング、モデルのフィッティング、モデルの評価、モデルの理解など、各ステップの要素をコンパイルします。
  2. 2 番目に、モデルをよりよく理解するための Web アプリと図を提供します。モデルの結果はクライアントと共有して議論することができます。
  3. 最後に、解釈可能性の概要を示します。

インストール

Shapash は次のコードを使用してインストールできます。

 pip インストールshapash

Jupyter Notebook の場合: Jupyter Notebook を使用していてインライン プロットを表示する場合は、別のコマンドを使用する必要があります。

 pip でipywidgets をインストールします

はじめる

ここでは、House Price Prediction データセットを使用して Shapash を調べます。これは住宅価格を予測しなければならない回帰問題です。まず、単変量および二変量解析を含むデータセットを分析し、次に特徴の重要性、特徴の寄与、ローカルおよび比較プロットを使用してモデルの解釈可能性を分析し、続いてモデルのパフォーマンスを分析し、最後に WebApp を分析します。

データセットを分析する

単変量解析

下の画像を使用して、「1 階の平方フィート」という機能を確認します。平均、最大値、最小値、標準偏差、中央値など、トレーニング データセットとテスト データセットのさまざまな統計を示す表が表示されます。右側には、トレーニング データセットとテスト データセットの分布プロットが表示されます。 Shapash では、機能がカテゴリ型か数値型かについても言及しており、すべての機能が利用できるドロップダウン オプションも提供しています。

単変量解析

カテゴリ機能の場合、トレーニング データセットとテスト データセットには一意の値と欠損値が表示されます。右側には、各機能の対応するカテゴリの割合を示す棒グラフが表示されます。

特集のカテゴリー

ターゲット分析

また、「販売価格」というターゲット変数の詳細な分析も確認できます。左側には、トレーニング データセットと予測データセットの両方について、カウント、平均、標準偏差、最小値、最大値、中央値などのすべての統計が表示されます。右側には、トレーニング データセットと予測データセットの分布が表示されます。

ターゲット分析

多変量解析

単変量解析については上記で詳しく説明しました。このセクションでは、多変量解析について説明します。次の図は、トレーニング データセットとテスト データセットの最初の 20 個の特徴の相関マトリックスを示しています。相関スケールもさまざまな色に基づいて表示されます。これが、Shapash を使用して機能間の関係を視覚化する方法です。

多変量解析

モデルの解釈可能性

特徴重要度プロット

このライブラリを使用すると、この機能の重要性がわかります。特徴重要度は、出力値を予測する際に入力特徴の重要度を調べる方法です。次の図は、特徴の重要度曲線を示しています。

特徴重要度プロット

特徴寄与プロット

これらの曲線は、特徴が予測にどのように影響するか、その貢献はプラスかマイナスかなどの質問に答えるのに役立ちます。この図はモデルの解釈可能性の重要性を証明しており、モデルの全体的な一貫性により、機能がモデルに与える影響を理解しやすくなります。

数値的特徴とカテゴリ的特徴の両方の寄与プロットを見ることができます。

数値特徴の場合

貢献チャート

カテゴリカル特徴の場合

カテゴリカル特徴の場合

ローカルマップ

ローカルグラフを描くことができます。次の図は部分的なビューを示しています。

ローカルマップ

比較表

比較表を描くことができます。次の図は比較チャートを示しています。

比較表

モデルのパフォーマンス

データ分析後、機械学習モデルをトレーニングしています。次の図は予測された出力を示しています。左側には、カウント、最小値、最大値、中央値、標準偏差など、真の値と予測値の統計が表示されます。右側には予測値と実際の値の分布が表示されます。

モデルのパフォーマンス

ウェブアプリ

モデルをトレーニングした後、WebApp を構築することもできます。この Web アプリには、これまでに説明した内容も含め、データの完全なダッシュボードが表示されます。次の画像はダッシュボードを示しています。

ウェブアプリ

プロジェクトアドレス: https://github.com/MAIF/shapash

最後に

この記事では、shapash の基本的な機能と描画表示について簡単に紹介しました。この Python ライブラリについては、皆さんもある程度理解されていると思います。

<<:  1行のコードでランダム迷路を生成し、確率的プログラミング言語はGitHubのホットリストに載っています。作者は有名なWFCアルゴリズムを開発しました。

>>:  2022年の5つの新しいテクノロジートレンド

ブログ    
ブログ    

推薦する

...

AIプロジェクトが失敗する6つの理由

データの問題は、企業の AI プロジェクトが意図した目標を達成できない主な理由です。しかし、企業が失...

ディープラーニングと比較すると、この新しいアルゴリズムの方が優れているようですね?

ニューラル ネットワーク アルゴリズムと機械学習における人類の現在の成果に基づくと、コンピューター ...

...

ITとビジネスの調和を実現する: デジタル変革にローコードが不可欠な理由

[51CTO.com クイック翻訳]ビジネスの世界では、デジタルトランスフォーメーションという言葉を...

...

...

...

...

月間 30 万個の H100 チップ、Nvidia は Intel にチップの製造を依頼しているのでしょうか? CoWosの生産能力が低すぎるからといって

TSMCの生産能力不足により、Nvidiaはチップ製造をIntelに頼らざるを得なくなったのか? T...

3枚の写真からフィギュアの3Dモデルを生成!南カリフォルニア大学の中国人博士が、より現実的な新しいモデル「NeROIC」を提案しました。

ディープラーニングが加わったことで、コンピュータグラフィックスには多くの新しい分野が生まれました。 ...

暗号通貨ボットで利益を上げる方法: トレーディングボットの説明

暗号通貨は、その極端な変動性で知られています。市場の価格は非常に急速に変動するため、トレーダーが市場...

インテリジェントな音声対話サービスはますます良くなり、従順であることも芸術である

スマートスピーカー、スマートフォン、スマートブレスレット、スマートエアコンなどのデバイスを購入するこ...

新しいヘルスケアソリューション: ヘルスケアにおける AI と IoT が認知症患者をどのように支援できるか

年齢を重ねるにつれて、私たちの体はさまざまな病気や障害に悩まされるようになります。それはまるで逆方向...

...