50種常用的matplotlib可視化,再也不用擔心模型背著我亂跑了
機器之心報道
參與:思源
數據分析與機器學習中常需要大量的可視化,因此才能直觀了解模型背地裡都幹了些什麼。而在可視化中,matplotlib 算得上是最常用的工具,不論是對數據有個預先的整體了解,還是可視化預測效果,matplotlib 都是不可缺失的模塊。最近 Machine Learning Plus 的作者介紹了 50 種最常用的 matplotlib 可視化圖表,而本文簡要介紹了這篇文章,詳細的 50 種可視化需要查閱原文。
50 種可視化圖原地址:https://www.machinelearningplus.com/plots/top-50-matplotlib-visualizations-the-master-plots-python
介紹
該表格主要介紹了 7 種不同的 matplotlib 可視化類別,讀者可根據目的選擇不同的圖。例如,如果你想要繪製兩個變數之間的關係,查看下面 Correlation 部分;或者如果你想展示某個變數的動態變化,查看下面的 Change 部分。
一個美麗的圖表應該:
提供準確、有需求的信息,不歪曲事實;
設計簡單,獲取時不會太費力;
美感是為了支持這些信息,而不是為了掩蓋這些信息;
不要提供太過豐富的信息與太過複雜的結構。
如下所示為 7 種不同類型的可視化圖表:協相關性主要描述的是不同變數之間的相互關係;偏差主要展現出不同變數之間的差別;排序主要是一些有序的條形圖、散點圖或斜線圖等;分布就是繪製概率與統計中的分布圖,包括離散型的直方圖和連續型的概率密度分布圖等。後面還有變數的時序變化圖和類別圖等常見的可視化製圖類別。
配置
在繪製這 50 種可視化圖之前,我們需要配置一下依賴項以及通用設定,當然後面有一些獨立的美圖會修改通用設定。如果讀者看中了某種可視化圖,那麼用這些配置再加上對應的可視化代碼就能嵌入到我們自己的項目中。
如下所示 pandas 與 numpy 主要用於讀取和處理數據,matplotlib 與 seaborn 主要用於可視化數據。其中 seaborn 其實是 matplotlib 上的一個高級 API 封裝,在大多數情況下使用 seaborn 就能做出很有吸引力的圖,而使用 matplotlib 能製作更具特色的圖。
製圖示意
前面列出了 7 大類共 50 種不同的可視化圖,但我們無法一一介紹,因此我們從協相關性、偏差、分布、時序變化和群組圖中各選擇了一個示例,它們能展示不同數據在不同情況下的可視化需求。
相關圖(Correllogram)
若有兩種變數,且它們的值為離散的,那麼二維相關圖可以表示兩個變數所有可能組合之間的相關性。當然如果是單變數,那麼自身所有可能的組合也可以組成一個相關圖:
面積圖(Area Chart)
通過使用不同的顏色表示水平軸和線之間的區域,面積圖不僅強調峰值和低谷值,同時還強調它們持續的時間:即峰值持續時間越長,面積越大。
密度圖(Density Plot)
在概率論與統計學習方法中,可視化概率密度就變得非常重要了。這種密度圖正是可視化連續型隨機變數分布的利器,分布曲線上的每一個點都是概率密度,分布曲線下的每一段面積都是特定情況的概率。如下所示,通過將它們按「response」變數分組,我們可以了解 X 軸和 Y 軸之間的關係。
此外值得注意的是,深度學習,尤其是深度生成模型中的分布極其複雜,它們是不能直接可視化的,我們一般會通過 T-SNE 等降維方法可視化。
時序變化圖(Time Series Plot)
時序變化圖也是機器學習中最常見的一種可視化圖表,不論是可視化損失函數還是準確率,都需要這種時序變化圖的幫助。這種圖主要關注某個變數怎樣隨時間變化而變化,以下展示了從 1949 到 1969 航空客運量的變化:
樹狀圖(Dendrogram)
樹狀圖是另一個比較有用的圖表,層次聚類或決策樹等演算法可以使用它完成優美的可視化。樹形圖是以樹的圖形表示數據或模型結構,以父層和子層的結構來組織對象,是枚舉法的一種表達方式。下圖展示了一種神似層次聚類演算法的圖表:
本文為機器之心報道,轉載請聯繫本公眾號獲得授權。
------------------------------------------------
※從硬體到框架,30+巨頭參與的AI基準競爭結果公布(第一回合)
※Python「八宗罪」
TAG:機器之心 |