值得收藏!你最應(yīng)該學(xué)3個(gè) Python AutoEDA 工具包!
關(guān)注上方"機(jī)器學(xué)習(xí)社區(qū)",
設(shè)為"置頂或星標(biāo)",第一時(shí)間送達(dá)干貨
機(jī)器學(xué)習(xí)必備的 14 個(gè)博客
6 款機(jī)器學(xué)習(xí)模型可解釋性工具包
數(shù)據(jù)科學(xué)愛(ài)好者知道,在將原始數(shù)據(jù)輸入機(jī)器學(xué)習(xí)模型解決實(shí)際問(wèn)題之前,需要對(duì)其進(jìn)行大量處理。根據(jù)問(wèn)題的類(lèi)型(回歸或分類(lèi)),需要遵循一系列步驟來(lái)準(zhǔn)備和格式化數(shù)據(jù)。為了探索數(shù)據(jù)集,Python 是可以說(shuō)是最強(qiáng)大的數(shù)據(jù)分析工具之一。此外,它可以更好地?cái)?shù)據(jù)可視化。
數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)不僅僅是擁有強(qiáng)大計(jì)算機(jī)科學(xué)背景的人可以接觸到的。相反,越來(lái)越多的來(lái)自不同行業(yè)的專(zhuān)業(yè)人士已加入這一領(lǐng)域。但是對(duì)于一個(gè)剛剛開(kāi)始機(jī)器學(xué)習(xí)的初學(xué)者來(lái)說(shuō),也不是一件很容易的事情。
在本文中,我們將討論三個(gè)面向初學(xué)者非常友好的自動(dòng)化 EDA Python 庫(kù),在文末我會(huì)分享其他有趣的 AutoEDA 庫(kù)。喜歡的小伙伴歡迎收藏學(xué)習(xí)、點(diǎn)贊。
首先我們加載一下數(shù)據(jù)
#loading?the?dataset
from?sklearn?import?datasets
import?pandas?as?pd
data?=?datasets.load_iris()
df?=?pd.DataFrame(data.data,columns=data.feature_names)
df['target']?=?pd.Series(data.target)
df.head()
如果我們不使用 AutoEDA,這里有一個(gè)通常用于 EDA 的命令列表,用于打印有關(guān) DataFrame/數(shù)據(jù)集的不同信息
df.head() – 前五行
df.tail() – 最后五行
df.describe() – 有關(guān)數(shù)據(jù)集的百分位數(shù)、平均值、標(biāo)準(zhǔn)偏差等的基本統(tǒng)計(jì)信息
df.info() – 數(shù)據(jù)集摘要
df.shape() – 數(shù)據(jù)集中的觀察值和變量的數(shù)量,即數(shù)據(jù)的維度
df.dtypes() – 變量的數(shù)據(jù)類(lèi)型(int、float、object、datetime)
df.unique()/df.target.unique() – 數(shù)據(jù)集/目標(biāo)列中的唯一值
df[‘target’].value_counts() – 分類(lèi)問(wèn)題的目標(biāo)變量分布
df.isnull().sum()- 計(jì)算數(shù)據(jù)集中的空值
df.corr() – 相關(guān)信息
等等..
AutoEDA 庫(kù)可以通過(guò)幾行 Python 代碼快速完成所有這些以及更多工作。但在我們開(kāi)始之前,讓我們先檢查安裝的 Python 版本,因?yàn)檫@些庫(kù)需要 Python >=3.6。
print(python?--version)?#?check?installed?Python?version
1. Pandas Profiling
首先,auto-EDA 庫(kù)是一個(gè)用 Python 編寫(xiě)的開(kāi)源選項(xiàng)。它為給定的數(shù)據(jù)集生成一個(gè)全面的交互式 HTML 報(bào)告。它能夠描述數(shù)據(jù)集的不同方面,例如變量類(lèi)型、處理缺失值、數(shù)據(jù)集的眾數(shù)。
要安裝庫(kù),請(qǐng)?jiān)?jupyter notebook 中輸入并運(yùn)行以下命令
!pip?install?pandas-profiling
EDA 使用 Pandas Profiling
我們將首先導(dǎo)入主包pandas 來(lái)讀取和處理數(shù)據(jù)集。
接下來(lái),我們將導(dǎo)入pandas profiling
import?pandas_profiling
#Generating?PandasProfiling?Report
report?=?pandas_profiling.ProfileReport(df)
從報(bào)告中,初學(xué)者可以很容易地理解 iris 數(shù)據(jù)集中有 5 個(gè)變量——4 個(gè)數(shù)字變量,結(jié)果變量是分類(lèi)變量。此外,數(shù)據(jù)集中有 150 個(gè)樣本并且沒(méi)有缺失值。
下面由 Pandas 分析生成的一些示例圖有助于理解我們之前列出的命令的相關(guān)性、唯一值和缺失值。
相關(guān)性
總的來(lái)說(shuō),Pandas Profiling 在從數(shù)據(jù)集中可以快速生成方面令人印象深刻。
2. Sweetviz
這是一個(gè)開(kāi)源 Python 庫(kù),僅使用兩行代碼即可執(zhí)行EDA。該庫(kù)為數(shù)據(jù)集生成的報(bào)告以.html 文件形式提供,可以在任何瀏覽器中打開(kāi)。使用 Sweetviz,我們可以實(shí)現(xiàn):
數(shù)據(jù)集特征如何與目標(biāo)值相關(guān)聯(lián)
可視化測(cè)試和訓(xùn)練數(shù)據(jù)并比較它們。我們可以使用analyze()、compare() 或compare_intra() 來(lái)評(píng)估數(shù)據(jù)并生成報(bào)告。
繪制數(shù)值和分類(lèi)變量的相關(guān)性
總結(jié)有關(guān)缺失值、重復(fù)數(shù)據(jù)條目和頻繁條目的信息以及數(shù)值分析,即解釋統(tǒng)計(jì)值
要安裝庫(kù),請(qǐng)?jiān)?jupyter notebook 運(yùn)行以下命令
!pip?install?sweetviz
EDA 使用 Sweetviz
與前面的部分類(lèi)似,我們將首先導(dǎo)入pandas 來(lái)讀取和處理數(shù)據(jù)集。
接下來(lái),我們只需導(dǎo)入 sweetviz 來(lái)探索數(shù)據(jù)。
import?sweetviz?as?sv
#Generating?Sweetviz?report
report?=?sv.analyze(df)
report.show_html("iris_EDA_report.html")?#?specify?a?name?for?the?report
這就是典型的 Sweetviz 報(bào)告的樣子
確實(shí)令人印象深刻和漂亮。
3. AutoViz
AutoViz 只需一行代碼即可快速分析任何數(shù)據(jù)。要安裝庫(kù),與以上類(lèi)似。
from?autoviz.AutoViz_Class?import?AutoViz_Class
AV?=?AutoViz_Class()
#Generating?AutoViz?Report?#this?is?the?default?command?when?using?a?file?for?the?dataset
filename?=?""
sep?=?","
dft?=?AV.AutoViz(
????filename,
????sep=",",
????depVar="",
????dfte=None,
????header=0,
????verbose=0,
????lowess=False,
????chart_format="svg",
????max_rows_analyzed=150000,
????max_cols_analyzed=30,
????)
由于我們使用的是庫(kù)中的數(shù)據(jù)集,我們需要如下修改
#Generating?AutoViz?Report
filename?=?""?#?empty?string?("")?as?filename?since?no?file?is?being?used?for?the?data
sep?=?","
dft?=?AV.AutoViz(
????'',
????sep=",",
????depVar="",
????dfte=df,
????header=0,
????verbose=0,
????lowess=False,
????chart_format="svg",
????max_rows_analyzed=150000,
????max_cols_analyzed=30,
?????)




AutoViz 報(bào)告包括有關(guān)數(shù)據(jù)集形狀的信息以及所有可能的圖表,包括條形圖、小提琴圖、相關(guān)矩陣(熱圖)、配對(duì)圖等。所有這些信息與一行代碼肯定對(duì)任何初學(xué)者都有用。
結(jié)論
還有其他有趣的 AutoEDA 庫(kù),如 Dora、D-Tale 和 DataPrep,它們類(lèi)似于本文中討論的這三個(gè)庫(kù),如果你感興趣,可以深入研究。
從初學(xué)者的角度來(lái)看,Pandas Profiling、Sweetviz 和 AutoViz 似乎是最簡(jiǎn)單的生成報(bào)告以及呈現(xiàn)數(shù)據(jù)集洞察力的工具。
參考:
https://github.com/Devashree21/AutoEDA-Iris-AutoViz-Sweetviz-PandasProfiling https://pypi.org/project/pandas-profiling/[accessed: Aug-09-2021] https://pypi.org/project/sweetviz/ [accessed: Aug-09-2021] https://pypi.org/project/autoviz/ [accessed: Aug-09-2021]
(完)
歡迎大家加入機(jī)器學(xué)習(xí)社區(qū)技術(shù)交流群,加入方式非常簡(jiǎn)單,在下方二維碼后臺(tái)回復(fù):加群,備注說(shuō)明:你的研究方向,小助手拉你入群。
長(zhǎng)按掃碼,申請(qǐng)入群
推薦閱讀
