- 作者:韓信子@ShowMeAI
- 資料分析實戰系列: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
或者在Python中通過如下幾行代碼完成:
# 讀取資料
df = pd.read_csv(file_name)
# 資料分析
profile = ProfileReport(df, title="Data Report", explorative=True)
# html分析報告生成
profile.to_file(Path("data_report.html"))
?? Sweetviz
Sweetviz 的功能與 pandas-profiling 很相似, 它是一個開源 Python 庫,可生成精美的高資訊量結果報告,只需兩行代碼即可啟動探索性資料分析程序, 輸出是一個完全獨立的 HTML 報告(而且可以完整互動式操作),
Sweetviz的特征:
- 型別推斷
- 摘要資訊
- 目標欄位分析
- 顯示目標列與其他特征的關聯分析
- 可視化和對比
SweetViz的官方代碼可以在 ??GitHub 找到,分析與報告生成只需要如下 2 行代碼:
# 資料分析
my_report = sv.analyze(data)
# 報告生成
my_report.show_html()
下圖為使用 Sweetviz 生成的報告,
?? AutoViz
AutoViz 是另外 1 個自動化 EDA 框架, 它在功能方面與 Sweetviz 和 pandas-profiling 也比較類似, AutoViz 只需一行代碼即可對任何資料集進行自動可視化,它還可以完成自動欄位選擇,找到最重要的特征欄位進行分析可視化,運行速度也非常快,
AutoViz可以結合Bokeh做互動式資料探索分析,詳細教程大家可以在官方 ??AutoViz 示例 Notebook 找到,核心代碼如下:
AV = AutoViz_Class()
_ = AV . AutoViz(filename)
下圖所示為使用 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/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/498768.html
標籤:其他
上一篇:OneOS下除錯支持的幾種方式
