Github: https://github.com/DistrictDataLabs/yellowbrick機械学習モデルの選択を容易にする視覚的分析および診断ツール。 http://www.scikit-yb.org/
イエローブリック
機械学習モデルの選択を容易にする視覚的分析および診断ツール。
許可を得て使用されたQuatro Cincoの画像、Flickr Creative Commons
このREADMEは開発者のためのガイドです。Yellowbrickを初めてお使いの場合は、 ドキュメントを参照してください。
Yellowbrickとは何ですか?
Yellowbrickは、モデル選択プロセスの人間の操縦を可能にするscikit-learn APIを拡張する「ビジュアライザー」と呼ばれるビジュアル診断ツールのスイートです。 簡単に言えば、Yellowbrickはscikit-learnドキュメントの最高の伝統の中でscikit-learnとmatplotlibを組み合わせていますが、モデルのビジュアライゼーションを作成します !
ビジュアライザー
ビジュアライザーは、モデル選択プロセスの洞察を可能にするビジュアライゼーションを作成することを第一の目的とする見積もり(データから学ぶオブジェクト)です。 scikit-learnの用語では、 “ModelCV”(例えばRidgeCV、LassoCV)メソッドの働きと同様に、データ空間を視覚化するときやモデル推定器をラップするときにトランスフォーマーに似ています。 Yellowbrickの主な目標は、scikit-learnに似た官能的なAPIを作成することです。 最も一般的なビジュアライザーには次のものがあります。
フィーチャの視覚化
- ランクの特徴 :関係を検出するための特徴の単一またはペアごとのランキング
- パラレル座標 :インスタンスの水平視覚化
- 放射状視覚化 :円形プロットの周りのインスタンスの分離
- PCA投影 :主成分に基づくインスタンスの投影
- 多様な視覚化 :多様な学習による高次元視覚化
- 機能の重要性 :モデル内のパフォーマンスに基づいて機能をランク付けする
- 再帰的な特徴の除去 :重要な特徴の最良の部分集合を見つける
- 散布図とジョイント図 :フィーチャ選択による直接的なデータの視覚化
分類ビジュアリゼーション
- クラスバランス : クラスの分布がモデルに与える影響を参照
- クラス予測エラー :分類のエラーとサポートを示します
- 分類レポート :精度、リコール、およびF1の視覚的表現
- ROC / AUC曲線 :受信機のオペレータ特性および曲線下面積
- 混同行列 :クラス意思決定の視覚的記述
- 識別しきい値 :バイナリクラスを最もよく区別するしきい値を見つける
回帰の視覚化
- 予測誤差プロット :ターゲットのドメインに沿ってモデルの内訳を見つける
- 残差プロット :トレーニングとテストデータの残差の差を表示する
- アルファ選択 : アルファの選択が正規化にどのように影響するかを示します
クラスタリングの可視化
- K-Elbow Plot :エルボー法と様々なメトリックを使ってkを選択する
- シルエットプロット : シルエット係数値を視覚化してkを選択する
モデル選択の可視化
- 検証曲線 :単一のハイパーパラメータに関してモデルをチューニングする
- 学習曲線 :モデルがより多くのデータまたはより少ない複雑さから恩恵を受けるかどうかを示します
テキストの視覚化
- 用語頻度 :コーパス内の用語の頻度分布を視覚化する
- t-SNEコーパスビジュアライゼーション :プロジェクトドキュメントに確率的なネイバー埋め込みを使用します。
もっと! ビジュアライザーは常に追加されていますので、例(または開発ブランチ)を確認して、ビジュアライザーのアイデアを投稿してください!
Yellowbrickのインストール
YellowbrickはPython 2.7以降と互換性がありますが、すべての機能をフルに活用するには、Python 3.5以降を使用することをお勧めします。 Yellowbrickはscikit-learn 0.18以降とmatplotlib 1.5以降にも依存します。 Yellowbrickをインストールする最も簡単な方法は、PythonのPythonの優先パッケージインストーラであるPyPIからです。
$ pip install yellowbrick
Yellowbrickはアクティブなプロジェクトであり、より多くのビジュアライザーとアップデートで新しいリリースを定期的に公開しています。 Yellowbrickを最新バージョンにアップグレードするには、pipを次のように使用します。
$ pip install -U yellowbrick
また、 -U
フラグを使用して、scickit-learn、matplotlib、またはYellowbrickで最新のバージョンにうまくいく他のサードパーティのユーティリティを更新することもできます。
Anacondaを使用している場合(Windowsユーザには推奨)、condbrユーティリティを利用してYellowbrickをインストールすることができます。
conda install -c districtdatalabs yellowbrick
しかし、YellowbrickをLinuxにAnacondaとともにインストールする既知のバグがあることに注意してください。
Yellowbrickを使う
Yellowbrick APIは、特にscikit-learnでうまくいくように設計されています。 scikit-learnとYellowbrickの典型的なワークフローシーケンスの例を次に示します。
フィーチャの視覚化
この例では、Rank2Dがデータセット内の各フィーチャの特定のメトリックまたはアルゴリズムとのペアワイズ比較を実行し、左下の三角形図としてランク付けされた結果を返します。
from yellowbrick.features import Rank2D visualizer = Rank2D(features=features, algorithm='covariance') visualizer.fit(X, y) # Fit the data to the visualizer visualizer.transform(X) # Transform the data visualizer.poof() # Draw/show/poof the data
モデルの可視化
この例では、scikit-learnクラシファイアをインスタンス化し、YellowbrickのROCAUCクラスを使用して、クラシファイアの感度と特異度の間のトレードオフを視覚化します。
from sklearn.svm import LinearSVC from yellowbrick.classifier import ROCAUC model = LinearSVC() model.fit(X,y) visualizer = ROCAUC(model) visualizer.score(X,y) visualizer.poof()
Yellowbrickを使い始めるための追加情報については、 ノートブックノートブックを参照してください。
クイックスタートガイドもあります 。
イエローブリックへの貢献
Yellowbrickは、プロジェクトに貢献したことを喜んで謙虚に受け入れるコミュニティによってサポートされているオープンソースプロジェクトです。 大きくても小さくても、どんな貢献も大きな違いになります。 これまでにオープンソースプロジェクトに貢献したことがない人は、Yellowbrickを使い始めることを願っています!
主にYellowbrickの開発は、データから学び、データやモデルの視覚的表現を作成するオブジェクトであるビジュアライザの追加と作成に関するものです。 ビジュアライザーは、特定の目的のためにscikit-learn見積もり、トランスフォーマー、パイプラインと統合され、その結果、構築と配備が簡単になります。 したがって、最も一般的な貢献は、特定のモデルまたはモデルファミリの新しいビジュアライザです。 後でビジュアライザを構築する方法について詳しく説明します。
ビジュアライザーの作成以外にも、貢献する方法はたくさんあります。
- GitHubに関するバグレポートや機能リクエストを送信してください 。
- Jupyterのノートブックを私たちのサンプルギャラリーに寄付してください。
- ユーザーテストを支援してください。
- ドキュメンテーションやウェブサイトのヘルプscikit-yb.orgに追加してください。
- 私たちのプロジェクトの単位テストまたは統合テストを書く。
- 私たちの問題、メーリングリスト、Stack Overflowなどの質問に答えてください。
- ドキュメントを別の言語に翻訳してください。
- ブログ投稿やツイートを書くことができます。
- イエローブリックの使い方を教えてください。
ご覧のとおり、参加する方法はたくさんあります。皆様のご参加をお待ちしております。 私たちが尋ねる唯一のことは、 Python Software Foundation Code of Conductに記述されているように、オープン性、敬意、そして他者に対する配慮の原則を遵守することです。
詳細については、リポジトリのルートにあるCONTRIBUTING.mdファイル、またはYellowbrickへの貢献に関する詳細なドキュメントを参照してください。
開発スクリプト
Yellowbrickには、テスト用のフィクスチャデータのダウンロードや比較用の画像の管理など、開発を支援するスクリプトが含まれています。
イメージ
画像比較ヘルパースクリプトは、ファイルをactual_images
フォルダからセットアップベースラインにコピーすることによって、テストディレクトリのbaseline_images
フォルダを管理します。 このスクリプトを使用するには、最初にテストを実行します(イメージが見つからないエラーが発生します)。次に、イメージをベースラインに次のようにコピーします。
$ python -m tests.images tests/test_visualizer.py
ここで、 tests/test_visualizer.py
は画像比較テストを含むテストファイルです。 関連するすべてのテストが検出され、検証され、ベースラインディレクトリにコピーされます。 実際のテストとベースラインの両方の画像を消去してテストをリセットするには、 -C
フラグを使用します。
$ python -m tests.images -C tests/test_visualizer.py
Glob構文を使用して複数のファイルを移動できます。 たとえば、すべての分類テストをリセットするには:
$ python -m tests.images tests/test_classifier/*
ディレクトリ全体を更新するのではなく、特定のテストケースを対象にすることをお勧めします。