之前說到在模型選擇方面沒有銀彈,那么如何確定最合適的模型提出假設(shè),探索性數(shù)據(jù)分析(EDA)是一個(gè)必不可少的環(huán)節(jié)。
為什么要做EDA
- 更好的理解數(shù)據(jù)涨醋。數(shù)據(jù)主要是什么類型,數(shù)據(jù)量有多少逝撬,大概分布如何浴骂。。
- 構(gòu)建模型直覺宪潮。根據(jù)對數(shù)據(jù)的了解可以構(gòu)建對于模型的直覺溯警,這可能需要一些經(jīng)驗(yàn)。
- 提出模型假設(shè)狡相。當(dāng)你對數(shù)據(jù)有基本的了解以及直覺之后就可以預(yù)設(shè)從那個(gè)范圍選取模型梯轻,線性、決策樹尽棕、聚類還是NN喳挑。
分析什么
這里我們以iris數(shù)據(jù)集為例
import pandas as pd
iris = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')
-
數(shù)據(jù)取樣
隨機(jī)獲取5個(gè)樣例,可以看到有多少列萄金,每列的數(shù)據(jù)類型蟀悦。類似的你也可以用.head()
或者.tail()
方法, 得到的分別是數(shù)據(jù)集的頭部和尾部數(shù)據(jù)氧敢。 概要統(tǒng)計(jì)信息
主要用到的是Pandas的describe()
這個(gè)方法輸出非常豐富日戈,包括數(shù)據(jù)總量、平均數(shù)孙乖、方差浙炼、最小最大值以及各種分位數(shù)。通過這個(gè)結(jié)果可以對數(shù)據(jù)大概分布有一個(gè)了解
- 可視化
數(shù)據(jù)可視化在EDA過程中非常重要唯袄,常惩淝可以通過可視化過程發(fā)現(xiàn)可能的建模方向×悼剑可視化主要有兩個(gè)目的资厉,一是探索單個(gè)特征的分布規(guī)律 , 二是探索特征之間的相互關(guān)系蔬顾。
在單特征探索用到的主要工具有直方圖宴偿、散點(diǎn)圖
直方圖
直方圖將單個(gè)特征值的數(shù)據(jù)劃分為不同的數(shù)據(jù)區(qū)段,可以直觀看到數(shù)據(jù)在各個(gè)區(qū)段的分布情況诀豁。需要注意的是窄刘,直方圖是一種聚合方法,我們無法看到一個(gè)數(shù)據(jù)區(qū)間里面的數(shù)據(jù)分布情況舷胜,這有時(shí)候可能造成判斷偏差娩践。
在存在數(shù)據(jù)缺失或有異常值的情況這種誤差可能尤其明顯,這時(shí)候可能需要做一些預(yù)處理,比如填補(bǔ)缺失值或者取log等操作翻伺。
點(diǎn)圖
以index為x軸材泄, 各特征值為y值畫散點(diǎn)圖,可以看到數(shù)據(jù)隨index變化情況穆趴,用以檢查數(shù)據(jù)有沒有shuffle, 比如上圖petal_length是均勻分布的脸爱,petal_width就呈現(xiàn)出階段性特點(diǎn)。
在多特征相互作用探索用到的主要工具有散點(diǎn)圖和相關(guān)矩陣圖
散點(diǎn)圖
可以看兩個(gè)特征之間的相互關(guān)系未妹。值得注意的是簿废,有時(shí)散點(diǎn)圖會
矩陣圖
矩陣圖囊括了散點(diǎn)圖和直方圖,是Pandas提供的一種非常方便的可視化工具络它,但是需要注意的是對于大型數(shù)據(jù)集渲染速度可能有些慢
寫在最后
EDA 由于其探索方式多種多樣族檬,其本身可以稱之為一種藝術(shù),其效果好壞來自于你對數(shù)據(jù)的直覺以及對于各種工具技巧的熟悉程度化戳,想要提高這方面的能力需要不斷的練習(xí)并且學(xué)習(xí)各種先進(jìn)的思路单料。