程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

One-click automated data analysis!Check out the most popular Python treasure trove of tools for 2022!

編輯:Python

作者: 韓信子@ ShowMeAI
 數據分析◉技能提升系列: http://www.showmeai.tech/tutorials/33
 數據分析實戰系列: http://www.showmeai.tech/tutorials/40
 本文地址: http://www.showmeai.tech/article-detail/284
聲明:版權所有,轉載請聯系平台與作者並注明出處
收藏 ShowMeAI查看

實際工作中,我們往往依托於業務數據分析制定業務策略.這個過程需要頻繁地進行數據分析和挖掘,發現模式規律.對於算法工程師而言,一個有效的 AI 算法系統落地,不僅僅是模型這麼簡單——數據才是最底層的驅動.

典型的『機器學習工作流程』包含 6 個關鍵步驟,其中『探索性數據分析(Exploratory Data Analysis, EDA) 』是至關重要的一步.

  • 定義問題
  • 數據采集和 ETL
  • 探索性數據分析
  • 數據准備
  • 建模(模型訓練和選擇)
  • 部署和監控

Wiki: In statistics, exploratory data analysis is an approach of analyzing data sets to summarize their main characteristics, often using statistical graphics and other data visualization methods. A statistical model can be used or not, but primarily EDA is for seeing what the data can tell us beyond the formal modeling and thereby contrasts traditional hypothesis testing.

探索性數據分析,通常使用統計圖形等數據可視化方法,探索數據的結構和規律,總結數據主要特征的方法.這一過程通常包含細碎的處理步驟和分析操作.

探索性數據分析 EDA 的常用工具

優秀的工具可以簡化上述過程!甚至可以一鍵生成分析報告.本篇 ShowMeAI 給大家總結了截至 2022年 最受歡迎的探索式數據分析工具庫,快一起試起來吧!

通常,我們有以下 3 種方式進行 EDA:

  • 方式1:在 Python/R 中使用庫/框架手動分析
  • 方式2:在 Python/R 中使用自動化 EDA 庫
  • 方式3:使用 Microsoft Power BI 或 Tableau 等工具

3種方式對應的最佳工具庫我們梳理到下文中了,對自動化數據分析感興趣的同學可以直接跳至『自動化EDA工具庫』板塊.

方式1:手動分析工具庫

Matplotlib

Matplotlib 是一個 Python 進行繪圖與交互式可視化的工具. 大家在Python中用到的絕大多數工具包擴展都是構建在 Matplotlib 之上的(包括 Seaborn、HoloViews、ggplot 以及後續提到部分自動化 EDA 工具等).

基於 Matplotlib 可以借助簡單的代碼實現:散點圖、直方圖、條形圖、誤差圖和箱線圖,輔助我們理解數據和進行後續工作.

大家可以從官方  用戶指南 教程 代碼示例 中學習,或前往B站觀看  視頻教程 也推薦下載收藏 ShowMeAI 的  Matplotlib速查表,以便快速查找所需功能.

Seaborn

另一個流行的 Python 數據可視化框架是 Seaborn,它相比 Matplotlib 更為簡潔,也拓展了很多分析功能和呈現形式.

大家同樣可以通過 Seaborn 的  用戶指南和教程 對其進行學習,或前往觀看  視頻教程.也歡迎閱讀 ShowMeAI 總結的  Seaborn速查表,以及 Seaborn 可視化教程  Seaborn工具與數據可視化.

Plotly

Plotly 是另外一個用於創建交互式數據可視化的 Python 開源工具庫. Plotly 構建在 Plotly JavaScript 庫(plotly.js) 之上,可用於創建基於 Web 的數據可視化,這些可視化可以顯示在 Jupyter 筆記本或使用 Dash 的 Web 應用程序中,或保存為單獨的 HTML 文件.

它提供了多達40+種圖表類型,包括散點圖、直方圖、折線圖、條形圖、餅圖、誤差線、箱線圖、多軸、迷你圖、樹狀圖和 3-D 圖表(甚至包括等高線圖,這在其他數據可視化庫中並不常見).大家可以通過  官方用戶指南 進行學習和使用.

Bokeh

Bokeh 是一個 Python 庫,用於為現代 Web 浏覽器創建交互式可視化. 它可以構建精美的圖形,從簡單的繪圖到帶有流數據集的復雜儀表板. 使用 Bokeh,可以創建基於 JavaScript 的可視化,而無需自己編寫任何 JavaScript.

大家可以通過 Bokeh 的  官方網站 示例庫 了解它的一系列用法.也推薦大家下載收藏 ShowMeAI 的  Bokeh速查表,快速查找所需功能.

Altair

Altair 是 Python 的聲明性統計可視化庫,基於 Vega 和 Vega-Lite. Altair 的 API 簡單、友好,可以用最少的代碼產生漂亮而有效的可視化效果.大家可以通過官方的  Altair Notebook Examples 學習Altair工具庫的使用.

方式2:自動化EDA工具庫

pandas-profiling

很多做過 Python 數據分析的同學都很熟悉 Pandas 的 describe 函數,pandas-profiling 通過其低代碼接口擴展了對應的功能,將信息以報告的形式呈現. pandas-profiling 庫自動從 pandas DataFrame 生成配置文件報告,整個過程甚至只需要兩三行代碼.

pandas-profiling 會對單字段和關聯字段進行分析.對於數據集的每一列(字段),它會分析如下的內容並呈現在交互式 HTML 報告中:

  • 類型推斷:字段列的類型
  • 要點:類型、唯一值、缺失值
  • 分位數統計:包括最小值、Q1、中位數、Q3、最大值、范圍、四分位間距
  • 描述性統計:包括均值、眾數、標准差、總和、中值絕對差、變異系數、峰度、偏度等
  • 直方圖:分類和數字
  • 相關性:Spearman、Pearson 和 Kendall 矩陣
  • 缺失值:矩陣、計數、熱圖和缺失值的樹狀圖
  • 文本分析:了解文本數據的類別(大寫、空格)、腳本(拉丁文、西裡爾文)和塊(ASCII)
  • 文件和圖像分析:提取文件大小、創建日期和尺寸,並掃描截斷的圖像或包含 EXIF 信息的圖像

大家可以在 pandas-profiling 的項目  GitHub 頁面獲取詳細使用方法,簡單的數據分析與報告生成過程可以只通過如下1行命令生成(在命令行運行).

pandas_profiling --title "Example Profiling Report" --config_file default.yaml data.csv report.html

  • 1.

或者在Python中通過如下幾行代碼完成:

# 讀取數據
df = pd.read_csv(file_name)
# 數據分析
profile = ProfileReport(df, title="Data Report", explorative=True)
# html分析報告生成
profile.to_file(Path("data_report.html"))

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

Sweetviz

Sweetviz 的功能與 pandas-profiling 很相似. 它是一個開源 Python 庫,可生成精美的高信息量結果報告,只需兩行代碼即可啟動探索性數據分析過程. 輸出是一個完全獨立的 HTML 報告(而且可以完整交互式操作).

Sweetviz的特征

  • 類型推斷
  • 摘要信息
  • 目標字段分析
  • 顯示目標列與其他特征的關聯分析
  • 可視化和對比

SweetViz的官方代碼可以在  GitHub 找到.分析與報告生成只需要如下 2 行代碼:

# 數據分析
my_report = sv.analyze(data)
# 報告生成
my_report.show_html()

  • 1.
  • 2.
  • 3.
  • 4.

下圖為使用 Sweetviz 生成的報告.

AutoViz

AutoViz 是另外 1 個自動化 EDA 框架. 它在功能方面與 Sweetviz 和 pandas-profiling 也比較類似. AutoViz 只需一行代碼即可對任何數據集進行自動可視化,它還可以完成自動字段選擇,找到最重要的特征字段進行分析可視化,運行速度也非常快.

AutoViz可以結合Bokeh做交互式數據探索分析,詳細教程大家可以在官方  AutoViz 示例 Notebook 找到.核心代碼如下:

AV = AutoViz_Class()
_ = AV . AutoViz(filename)

  • 1.
  • 2.

下圖所示為使用 AutoViz 生成的報告.

方式3:數據分析工具軟件

Microsoft Power BI

Power BI 是由 Microsoft 開發的交互式數據可視化軟件,主要關注商業智能. 它是 Microsoft Power Platform 的一部分. Power BI 是軟件服務、應用程序和連接器的集合,它們協同工作,將不相關的數據源轉變為連貫、視覺沉浸式和交互式見解. 可以通過直接從數據庫、網頁或電子表格、CSV、XML 和 JSON 等結構化文件中讀取數據來輸入數據.

不過,Power BI 不是開源的,它是一款付費企業工具,提供免費桌面版本. 大家可以從  官方學習指南 學習 Power BI.

Tableau

Tableau 是用於數據分析和商業智能的領先數據可視化工具. Gartner 的魔力象限將 Tableau 列為分析和商業智能領域的領導者.Tableau 是一種工具,它正在改變我們使用數據解決問題的方式——使人們和組織能夠充分利用他們的數據.

下圖所示為使用 Tableau 生成的報告.大家前往B站觀看  1小時速學視頻教程.

參考資料

  • Matplotlib 官方教程:  https://matplotlib.org/stable/tutorials/index.html
  • Matplotlib 知識速查表:  http://www.showmeai.tech/article-detail/103
  • Seaborn 數據可視化教程:  http://www.showmeai.tech/article-detail/151
  • Seaborn 知識速查表:  http://www.showmeai.tech/article-detail/105
  • Plotly 官方教程:  https://plotly.com/python/getting-started/
  • Bokeh 官方教程:  http://docs.bokeh.org/en/latest/
  • Bokeh 知識速查表:  http://www.showmeai.tech/article-detail/104
  • Altair Notebook Examples:  https://github.com/altair-viz/altair_notebooks
  • pandas-profilling 詳細教程:  https://github.com/ydataai/pandas-profiling
  • SweetViz 官方代碼:  https://github.com/fbdesignpro/sweetviz
  • AutoViz 示例:  https://github.com/AutoViML/AutoViz/tree/master/Examples
  • Power BI 官方學習指南:  https://powerbi.microsoft.com/en-ca/learning/


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved