當前位置:
首頁 > 科技 > 資源 | 可視化工具Yellowbrick:超參與行為的可視化帶來更優秀的實現

資源 | 可視化工具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

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

LinearSVCfrom yellowbrick.classifier

import

ROCAUC

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:機器之心 |