資源 | 可視化工具Yellowbrick:超參與行為的可視化帶來更優秀的實現
選自GitHub
機器之心編譯
參與:
思源、劉曉坤
Yellowbrick 是一套名為「Visualizers」的視覺診斷工具,它擴展了 Scikit-Learn API 以允許我們監督模型的選擇過程。簡而言之,Yellowbrick 將 Scikit-Learn 與 Matplotlib 結合在一起,並以傳統 Scikit-Learn 的方式對模型進行可視化。
項目地址:https://github.com/DistrictDataLabs/yellowbrick
可視化器
可視化器(Visualizers)是一種從數據中學習的估計器,其主要目標是創建可理解模型選擇過程的可視化。在 Scikit-Learn 的術語中,它們類似於轉換器(transformer),其在可視化數據空間或包裝模型估計器上類似「ModelCV」(例如 RidgeCV 和 LassoCV)方法的過程。Yellowbrick 的主要目標是創建一個類似於 Scikit-Learn 的 API,其中一些流行的可視化器包括:
特徵可視化
Rank Features:單個或成對特徵排序以檢測關係
Parallel Coordinates:實例的水平可視化
Radial Visualization:圍繞圓形圖分離實例
PCA Projection:基於主成分分析映射實例
Manifold Visualization:通過流形學習實現高維可視化
Feature Importances:基於模型性能對特徵進行排序
Recursive Feature Elimination:按重要性搜索最佳特徵子集
Scatter and Joint Plots:通過特徵選擇直接進行數據可視化
分類可視化
Class Balance:了解類別分布如何影響模型
Class Prediction Error:展示分類的誤差與主要來源
Classification Report:可視化精度、召回率和 F1 分數的表徵
ROC/AUC Curves:受試者工作曲線和曲線下面積
Confusion Matrices:類別決策制定的視覺描述
Discrimination Threshold:搜索最佳分離二元類別的閾值
回歸可視化
Prediction Error Plots:沿著目標域尋找模型崩潰的原因
Residuals Plot:以殘差的方式展示訓練和測試數據中的差異
Alpha Selection:展示 alpha 的選擇如何影響正則化
聚類可視化
K-Elbow Plot:使用肘法(elbow method)和多個指標來選擇 k
Silhouette Plot:通過可視化輪廓係數值來選擇 k
模型選擇可視化
Validation Curve:對模型的單個超參數進行調整
Learning Curve:展示模型是否能從更多的數據或更低的複雜性中受益
文本可視化
Term Frequency:可視化語料庫中詞項的頻率分布
t-SNE Corpus Visualization:使用隨機近鄰嵌入來投影文檔
還有更多的可視化器!我們隨時會添加更多的可視化器,因此請確保查看示例(或甚至開發分支),並歡迎隨時為我們提供建議!
安裝 Yellowbrick
Yellowbrick 與 Python2.7 以及之後的版本兼容,但使用 Python3.5 或之後的版本會更合適並能利用其所有功能優勢。Yellowbrick 還依賴於 Scikit-Learn 0.18 或之後的版本,以及 Matplotlib1.5 或之後的版本。最簡單的安裝 Yellowbrick 的方法是從 PyPI 使用 pip 安裝。
$ pip install yellowbrick
注意 Yellowbrick 是一個活躍項目,將定期發布更多新的可視化器和更新。為了將 Yellowbrick 升級到最新的版本,按以下方式使用 pip 命令:
$ pip install -U yellowbrick
你也可以使用-U flag 來更新 Scikit-Learn、Matplotlib 或任何其它和 Yellowbrick 兼容的第三方最新版本應用。
如果你使用 Anaconda(推薦 Windows 用戶使用),你可以使用 conda 命令來安裝 Yellowbrick:
conda install -c districtdatalabs yellowbrick
然而請注意,在 Linux 上用 Anaconda 安裝 Yellowbrick 有一個已知的 bug:https://github.com/DistrictDataLabs/yellowbrick/issues/205
使用 Yellowbrick
Yellowbrick API 是特別為更好地使用 Scikit-Learn 而設計的。這裡有一個使用 Scikit-Learn 和 Yellowbrick 的典型工作流序列的例子:
特徵可視化
在這個例子中,我們將看到 Rank2D 如何使用特定指標對數據集中的每個特徵進行兩兩對比,然後返回展示排序的左下三角圖。
from import
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 import import
model = LinearSVC()
model.fit(X,y)
visualizer = ROCAUC(model)
visualizer.score(X,y)
visualizer.poof()
本文為機器之心編譯,
轉載請聯繫本公眾號獲得授權
。?------------------------------------------------
加入機器之心(全職記者/實習生):hr@jiqizhixin.com
投稿或尋求報道:
content
@jiqizhixin.com廣告&商務合作:bd@jiqizhixin.com
※論強化學習和概率推斷的等價性:一種全新概率模型
※深度學習自動前端開發:從草圖到HTML只需5秒
TAG:機器之心 |