ML入門——EDA探索性數(shù)據(jù)分析(上)

本系列其他全部鏈接:
ML入門——EDA探索性數(shù)據(jù)分析(上)
ML入門——EDA探索性數(shù)據(jù)分析(中)(Seaborn)
ML入門——EDA探索性數(shù)據(jù)分析(下)(特征工程)

前言:在傳統(tǒng)的統(tǒng)計分析方法中,通常都是先假定數(shù)據(jù)服從某種分布,然后運用這種模型進行預測凭疮,以概率論為基礎(chǔ)来屠,做各種的參數(shù)檢驗螟碎。

EDA“拋開”概率理論切端,從數(shù)據(jù)出發(fā)挤庇,強調(diào)數(shù)據(jù)可視化够挂。

image

1.什么是EDA旁仿?

摘抄網(wǎng)上的一個中文解釋:

是指對已有的數(shù)據(jù)(特別是調(diào)查或觀察得來的原始數(shù)據(jù))在盡量少的先驗假定下進行探索,通過作圖孽糖、制表枯冈、方程擬合、計算特征量等手段探索數(shù)據(jù)的結(jié)構(gòu)和規(guī)律的一種數(shù)據(jù)分析方法办悟。特別是當我們面對大數(shù)據(jù)時代到來的時候尘奏,各種雜亂的“臟數(shù)據(jù)”,往往不知所措病蛉,不知道從哪里開始了解目前拿到手上的數(shù)據(jù)時候炫加,探索性數(shù)據(jù)分析就非常有效。探索性數(shù)據(jù)分析是上世紀六十年代提出铺然,其方法有美國統(tǒng)計學家John Tukey提出的俗孝。

2.基本步驟

2.1 導入不可或缺的工具包

  1. 用于可視化:Matplotlib、Seaborn

  2. 用于數(shù)據(jù)處理:Numpy探熔、Pandas

  3. 用于統(tǒng)計分析:Sklearn驹针、Statsmodels

  4. 用于忽略煩人的warning:warnings

import warnings
warnings.filterwarnings("ignore")

2.2 數(shù)據(jù)導入和觀察

  1. 觀察數(shù)據(jù)的基本情況:df.head()df.info()

  2. 查看不同類型變量的基本統(tǒng)計信息

    • 數(shù)值型變量:df[["Survived","Age", "SibSp", "Parch"]].describe()

    • 分類型變量:df.describe(include=[np.object])

      [注意]:分類型變量的describe與數(shù)值型變量的describe不同

2.3 缺失值處理

一般真實數(shù)據(jù)中诀艰,變量都會存在著缺失值的情況柬甥。

  • df.describe()反饋的信息中,count這一行數(shù)據(jù)反映了不同字段的數(shù)量其垄;

    image
  • df.info()反饋的信息中苛蒲,也可觀測到各字段not-null的數(shù)據(jù)量和全部數(shù)據(jù)的總量。

    image

[處理方法]一般有如下三種绿满,其中2種比較推薦臂外,1種慎用:

  1. 直接刪除某一列字段

    當該字段中大部分數(shù)據(jù)都為null的時候,對于后期數(shù)據(jù)貢獻非常小,無法對缺失數(shù)據(jù)進行彌補漏健。像Cabin有超過70%以上的缺失值嚎货。

  2. 填補缺失值

    當字段中數(shù)據(jù)缺失量不大,且對于分析有重要貢獻的蔫浆,采用不同策略進行彌補殖属。像Age字段缺失100多數(shù)據(jù)。

    • 采用僅考慮當前字段的統(tǒng)計量進行填充(例如median瓦盛、mean

    • 綜合考慮其他因素進行分組洗显,用分組后的統(tǒng)計量進行填充。例如原环,綜合考慮Sex挠唆、Pclass等。

  3. 刪除具有缺失值的行(慎用嘱吗,不推薦)

    因為刪除缺失某一字段的整行玄组,會對其他非缺失的變量所能提供的有用信息造成影響。

2.4 變量分析

從分析的變量數(shù)量來看谒麦,可以分為單變量分析和多變量分析巧勤。

2.4.1 單變量分析(待補充)

直方圖
  • 對稱?
  • 分散弄匕?
  • 異常值?
  • 有間隙沽瞭?
箱線圖
  • 異常值迁匠?
  • 對稱?
  • 比較幾批數(shù)據(jù)的形狀
正態(tài)性檢驗?

2.4.2 雙變量分析

一般都會結(jié)合著任務(wù)目標(某一變量A)驹溃,去粗略統(tǒng)計并分析其余變量對變量A的影響城丧。例如,分析:哪些因素會決定生還概率豌鹤。

2.4.2.1 因變量Y(離散)-自變量X(離散)
  1. 從計算數(shù)值的角度

    • 方法一:使用經(jīng)典的分組-聚合-計算亡哄。

      df[['Pclass', 'Survived']].groupby('Pclass').mean() .sort_values(by='Survived', ascending=False)

    • 方法二:使用pd的pivot_table函數(shù)

      df.pivot_table(values='Survived', index='Pclass', aggfunc=np.mean)

      參數(shù)解釋:

      • values: 聚合后被施加計算的值,這里我們施加mean函數(shù)

      • index: 分組用的變量

      • aggfunc: 定義施加的函數(shù)

  2. 從可視化的角度

    一般雙變量之間的關(guān)系分析布疙,采用條形圖來進行繪制蚊惯。

    sns.barplot(data=df, x='Pclass', y='Survived', ci=None)

2.4.2.2 因變量Y(離散)-自變量X(連續(xù))
  1. 從計算數(shù)值的角度

    將連續(xù)變量離散化是建模中的一種常用方法,即:將某一個變量所在區(qū)間分割為幾個小區(qū)間灵临,落在同一個區(qū)間的觀測值用同一個符號表示截型。

    [處理方法]:

    • cut函數(shù)(等距):將年齡的區(qū)間均勻分割為n分

    • qcut函數(shù)(等頻):選取區(qū)間以至于每個區(qū)間里的觀察值個數(shù)都是一樣的

      # 使用cut函數(shù)
      # 可以看到每個區(qū)間的大小是固定的,大約是16歲
      titanic_df['AgeBand'] = pd.cut(titanic_df['Age'], 5)
      titanic_df.head()
      

      進而儒溉,可求出落在不同區(qū)間的人數(shù)宦焦、以及不同區(qū)間的因變量的統(tǒng)計量

      df.pivot_table(values='Survived',index='AgeBand', aggfunc='count')

      df.pivot_table(values='Survived',index='AgeBand', aggfunc=np.mean)

  2. 從可視化的角度

    • 連續(xù)變量離散化之后,就等同于離散的X-離散的Y了,使用條形圖可直觀看出各不同區(qū)間的分布情況波闹。

      sns.barplot(data=titanic_df, x='AgeBand', y='Survived', ci=None)

      image

    • 連續(xù)變量不離散酝豪,那么直接使用直方圖即可畫出來。

      sns.FacetGrid(titanic_df, col='Survived').map(plt.hist, 'Age', bins=20, normed=True)

      image

2.4.3 多變量分析

2.4.3.1 因變量Y(離散)-自變量X1..Xn(離散)
  1. 從計算數(shù)值的角度

    同樣是通過分組-聚合的計算方式精堕,只不過孵淘,這里index是復合的index。df.pivot_table(values='Survived', index=['Pclass', 'Sex'], aggfunc=np.mean)

image
  1. 從可視化的角度

    這里提供兩種作圖的方式锄码,分組條形圖和分組點圖夺英。

    關(guān)鍵參數(shù)為hue,其作用是根據(jù)hue的變量進行分組。

    • 分組條形圖

      sns.barplot(data=titanic_df, x='Pclass', y='Survived', hue='Sex', ci=None)

      image

    • 分組點圖

      sns.pointplot(data=titanic_df, x='Pclass', y='Survived', hue='Sex', ci=None)

      image

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末滋捶,一起剝皮案震驚了整個濱河市痛悯,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌重窟,老刑警劉巖载萌,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異巡扇,居然都是意外死亡扭仁,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進店門厅翔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來乖坠,“玉大人,你說我怎么就攤上這事刀闷⌒鼙茫” “怎么了?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵甸昏,是天一觀的道長顽分。 經(jīng)常有香客問我,道長施蜜,這世上最難降的妖魔是什么卒蘸? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮翻默,結(jié)果婚禮上缸沃,老公的妹妹穿的比我還像新娘。我一直安慰自己冰蘑,他們只是感情好和泌,可當我...
    茶點故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著祠肥,像睡著了一般武氓。 火紅的嫁衣襯著肌膚如雪梯皿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天县恕,我揣著相機與錄音东羹,去河邊找鬼。 笑死忠烛,一個胖子當著我的面吹牛属提,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播美尸,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼冤议,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了师坎?” 一聲冷哼從身側(cè)響起恕酸,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎胯陋,沒想到半個月后蕊温,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡遏乔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年义矛,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盟萨。...
    茶點故事閱讀 40,561評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡凉翻,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出捻激,到底是詐尸還是另有隱情噪矛,我是刑警寧澤,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布铺罢,位于F島的核電站,受9級特大地震影響残炮,放射性物質(zhì)發(fā)生泄漏韭赘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一势就、第九天 我趴在偏房一處隱蔽的房頂上張望泉瞻。 院中可真熱鬧,春花似錦苞冯、人聲如沸袖牙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鞭达。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間畴蹭,已是汗流浹背坦仍。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留叨襟,地道東北人繁扎。 一個月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像糊闽,于是被迫代替她去往敵國和親梳玫。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,573評論 2 359

推薦閱讀更多精彩內(nèi)容