文科生學Python系列18:泰坦尼克數(shù)據(jù)4(多因素影響)

第八課:案例分析 - 泰坦尼克數(shù)據(jù)

本節(jié)課將重點分析泰坦尼克號沉船事故田轧,我們將探索是什么因素決定了最后是否生還暴匠。

我們將前面課程所學過的知識點融會貫通,舉一反三傻粘。

新增知識點:

? ? ? 缺失值處理:pandas中的fillna()方法

? ? ?數(shù)據(jù)透視表:pandas中的pivot_table函數(shù)

上篇文章的作業(yè)疑惑每窖,其實用下圖是可以簡潔說明的,此圖截屏于 新生大學-解密大數(shù)據(jù)《Python編程&數(shù)據(jù)科學入門》線上課程(說明來處弦悉,應該沒侵權啊窒典。。)稽莉。

對啦瀑志,我上的就是這個課,有讀者問到這課程講得那么詳細是什么課污秆,這個介紹一下劈猪,就是 新生大學-解密大數(shù)據(jù)《Python編程&數(shù)據(jù)科學入門》,感興趣的讀者可以去了解一下良拼。

此圖來自 新生大學-解密大數(shù)據(jù)《Python編程&數(shù)據(jù)科學入門》

為什么前面聽了那么久战得,我都不知道index是行索引,columns是列索引呢将饺?贡避?痛黎!

好吧予弧,接下來是正文內(nèi)容:


3-4 年齡與生還情況

與上面的艙位刮吧、性別這些分類變量不同,年齡是一個連續(xù)的變量掖蛤。

生還組和罹難組的年齡分布直方圖

分類變量可以繪制條形圖杀捻,連續(xù)變量可以繪制直方圖。將泰坦尼克號的數(shù)據(jù)映射到 hist 函數(shù)中蚓庭,來繪制 Age 這一列的直方圖致讥,并且把區(qū)間設成 20,輸出得到年齡分布的直方圖器赞。

年齡分布直方圖

這張圖并沒能明顯顯示 FacetGrid 圖表的優(yōu)勢垢袱,由于我們需要的是罹難和生還兩個組的年齡分布,所以這時候可以加一個語句:

生還組和罹難組的年齡分布直方圖

這個 col='Survived' 充滿了魔力案酃瘛G肫酢!夏醉!一變二爽锥!這里就能顯示生還組(Survived=1)和罹難組( Survived=0 )兩個圖表中年齡的分布了析珊。col代表的是列的屬性将谊,這時把0和1分布在兩個圖表中穗椅,為了一致起見朵逝,把兩個圖表歸一化柿顶,使用normed=True 這個參數(shù)监徘,我們能夠看到縱坐標的值改變了忘巧,并不是頻數(shù)等統(tǒng)計曲横,歸一化的意思就是下面陰影區(qū)域的面積為1玄捕。

在這個圖可以看到秸仙,相對來說,生還組中兒童占比比較大桩盲。

結論:兒童有更高的生還可能寂纪。

作業(yè) 8-3:

考慮艙位因素后,繪制生還組和罹難組的年齡分布直方圖提示:FacetGrid參數(shù)中同時設置col和row

年齡是一個連續(xù)的值赌结,要是用直方圖來觀察捞蛋,不是太方便。這里就需要將連續(xù)性的變量離散化了:


將連續(xù)型變量離散化

連續(xù)型變量離散化是建模中一種常用的方法

離散化指的是將某個變量的所在區(qū)間分割為幾個小區(qū)間柬姚,落在同一個區(qū)間的觀測值用同一個符號表示

以年齡為例拟杉,最小值是0.42(嬰兒),最大值是80量承,如果我們想產(chǎn)生一個五個級(levels)搬设,我們可使用cut或者qcut函數(shù)

cut函數(shù)將年齡的區(qū)間均勻分割為5分穴店,而qcut則選取區(qū)間以至于每個區(qū)間里的觀察值個數(shù)都是一樣的(五等分), 這里演示中使用cut函數(shù)拿穴。

我們上面的圖中可以看到年齡是0-80歲泣洞,我們可以嘗試將它劃分為五等分,等于就是把一個連續(xù)的值變成離散的值了默色,將數(shù)值變量變成一個分類變量球凰。

pd.cut(titanic_df.Age,5) (1)
pd.cut(titanic_df.Age,5) (2)

此處離散化的方法是使用 pandas 里面的 cut 函數(shù),首先傳遞給這個函數(shù)將要離散化的數(shù)據(jù):年齡腿宰,后面的5呕诉,表示將數(shù)據(jù)分割成五等分。這里將原本數(shù)據(jù)的每一行對應到一個區(qū)間數(shù)據(jù)吃度。

新添加的AgeBand

然后把這個輸出添加到原來的數(shù)據(jù)中甩挫,通過添加一個新的列,賦值給 AgeBand椿每,代表了年齡區(qū)間伊者。


查看落在不同年齡區(qū)間里的人數(shù)

沒有sort=False的結果

sort=False 表示不需要將結果排序,上圖是沒有加上這句話的輸出拖刃,可以看到區(qū)間是按照區(qū)間數(shù)量的多少進行從大到小的排序的删壮,要是想要把區(qū)間捋一捋,將區(qū)間從小到大無縫連接地排序兑牡,就可以加上 sort=False 這個語句了央碟,下圖是輸出效果:

加上sort=False的結果

這里的結果輸出可以看到年齡最小的區(qū)間人數(shù)有100人,按年齡區(qū)間分布最多的是16-32歲之間均函,老年人最少亿虽。

同樣的,得出這樣結果的方法不止一個苞也,我們用 pivot_table 方法進行操作:

查看落在不同年齡區(qū)間里的人數(shù)

因為這里統(tǒng)計的是頻數(shù)洛勉,values 對應的是非空數(shù)值就可以了。這里的主語是年齡區(qū)間如迟,所以索引引導的是 AgeBand收毫。也因為這里統(tǒng)計的是頻數(shù),所以聚合函數(shù) aggfunc 的值是 count殷勘。

方法一和方法二不同的是此再,方法一是Series格式,方法二是DataFrame格式玲销。


查看各個年齡區(qū)間的生還率

各個年齡區(qū)間的生還率

上面表格可以看到不同年齡區(qū)間的生還率输拇,年齡最小區(qū)間的生還率是最高的,有55.5%贤斜,中堅力量三個區(qū)間的生還率不相上下策吠,老年人最低逛裤,只有9%,從上面看到老年人只有11人猴抹,應該就是只有個別老人成功逃離了带族。。洽糟。

按照套路炉菲,我們下面到了繪制圖表的時間啦堕战!

各個年齡區(qū)間的生還率

這個圖標的橫坐標每個數(shù)據(jù)有點長坤溃,相互打架了。所以我們進行設置:

調(diào)整橫坐標

plt.xticks 這個函數(shù)我們之前提到過的嘱丢,一般是用來調(diào)整坐標軸薪介,可以通過旋轉角度,對圖表進行調(diào)整越驻。這里 rotation=60汁政,表示旋轉的度數(shù)為 60 度,然后可以看到輸出缀旁。

結論:兒童的生還率更高记劈。

以上是單獨看年齡/性別/艙位和生還率的關系,下面我們綜合不止一個因素來看生還率并巍。


3-5 年齡目木、性別 與生還概率

落在不同年齡區(qū)間男女的生還概率

這里設置行索引 index 是年齡區(qū)間 AgeBand ,列索引 columns 是性別 Sex懊渡,聚合函數(shù) aggfunc 是 numpy 的平均值刽射。

第八課講到挺多這樣結構的案例的,前面我搞得挺迷糊剃执,昨天在地鐵上忍不住打開電腦敲代碼的時候誓禁,真的發(fā)現(xiàn)這東西因為太簡潔了,所以邏輯性特別強肾档。比如這里需要看年齡性別兩個因素同時與生還概率的關系摹恰,所以是用了二重索引來作為分支,數(shù)字是生還率怒见,所以 values 是等于生還率的俗慈,我的理解就是主語是這些數(shù)字,主要就是為了展示主語速种。然后有分支分類的從句姜盈,對句子進行補充,行索引 是年齡區(qū)間配阵,列索引 是性別馏颂,我的理解就是 行索引 和 列索引 的關系是并列的示血,然后同時從屬于主句,為生還率這個主語服務救拉。得出來的輸出就是 在某年齡區(qū)間难审,男性的生還率和女性的生還率分別是多少。這段話是文科生說給文科生聽的??

接下來是繪制圖表:

年齡區(qū)間與生還率

這里會自動幫你把Y軸 survived 這個數(shù)據(jù)求平均亿絮。不過這張圖只有一條折線告喊,因為這里還沒有進行按性別來分組。折線圖的分組句型記得芭擅痢黔姜!是hue!加上要修改距離打架的X軸蒂萎,下面兩處改動:

年齡區(qū)間秆吵,性別與生還率

這張折線圖可以看到,綠色代表的女性生還率無論在哪個年齡區(qū)間都是大于男性的五慈,而且女性的生還率隨年齡的增加也在遞增纳寂。對于男性來說,也就是藍色那條線的代表值泻拦,幼者生還率最大毙芜,年長的生還率都低于20%。老師說争拐,從這幅圖可以看出營救的策略應該是兒童優(yōu)先腋粥,然后女性優(yōu)先。


3-6 年齡陆错、艙位灯抛、性別 與生還概率

年齡、艙位音瓷、性別 與生還概率

我覺得要是前面說給文科生的那段話理解清楚对嚼,或者知道那段話代表的內(nèi)容能理解清楚,這里加多一個因素的時候绳慎,不會那么慌纵竖。這里加了一個艙位的分支⌒臃撸看到最后一行輸出靡砌,老年組女性的值是NaN,這一區(qū)間珊楼,無人生還通殃。

看數(shù)據(jù)會有點懵,接下來繪制折線圖厕宗,直觀點吧画舌!

艙位堕担,性別與生還概率

上圖并沒有年齡區(qū)間的劃分,這個函數(shù)不合適有三重索引地表達吧曲聂。所以下面要引進另一個函數(shù)霹购,正確表達年齡,艙位朋腋,性別和生還概率的關系齐疙。

年齡、艙位旭咽、性別 與生還概率折線圖1
年齡贞奋、艙位、性別 與生還概率折線圖2

把年齡區(qū)間放在row上轻专,按照年齡區(qū)間來分圖忆矛,老師說到第二句代碼map的時候察蹲,說把sns.pointplot请垛,也就是上面運行的結果,映射到新賦值的函數(shù)中洽议,我就想宗收,反正都把結果弄上去了,為什么后面還要加上橫縱坐標以及分類的參數(shù)呢亚兄,所以就試了一下不放其他參數(shù)的結果:

不設置參數(shù)

結果就是混稽,五個空圖,有年齡區(qū)間审胚,有頻數(shù)匈勋,就是沒有參數(shù)的內(nèi)容。不能偷懶啊不能偷懶~~????

因為上面正確輸出的圖不是太完美膳叨,所以要進行調(diào)整:


美圖1
美圖2

aspect是長寬比等于1.5倍洽洁,還是胖一點好看??????

palette是調(diào)色板,用內(nèi)置的色板進行調(diào)整菲嘴,然后那條幾乎隱形的白線終于顯示出來了饿自,變成綠色了。綠色代表女性數(shù)據(jù)龄坪,藍色代表男性數(shù)據(jù)昭雌。

然而。健田。烛卧。這還沒完,看上面五張圖妓局,幾乎都是綠色在上面总放,也就是女性生還率高于男性雳旅,但是在第三個圖,也就是年齡區(qū)間在32到48歲之間的綠色線是在藍色線下面的<淞摹T苡!不可能啊哎榴,翻看前面的數(shù)據(jù)表格型豁,也是女性生還率高啊尚蝌!然后老師說迎变,這里藍色和綠色代表的數(shù)值調(diào)換了,也就是這張圖中的藍色代表女性飘言,綠色代表男性衣形。為什么呢?老師沒說??

這里的設置是加一句 hue_order=[ 'male' , 'female' ] 姿鸿,此處用的是列表形式擴住參數(shù)谆吴。然后就正常了:

hue_order=[ 'male' , 'female' ]

老師說,對上圖的色板配色感興趣的苛预,可以去這個鏈接:palette 配色參考?https://seaborn.pydata.org/tutorial/color_palettes.html?highlight=palette

哈我就沒多大要求了句狼,默認隱藏的夠用就行,你們拿去收藏吧热某!??


作業(yè)8-4:

綜合考慮性別腻菇,艙位和登船碼頭三個因素,計算其生還概率昔馋,并在一副圖中探索它們和生還概率的關系筹吐。


來來來總結一下第八課的內(nèi)容,我們一開篇就提出一個問題:生還率和什么因素有關秘遏,然后拿到了原始數(shù)據(jù)丘薛,數(shù)據(jù)通過清洗填充了缺失值,然后看單個因素和生還率的關系垄提,再看多個因素和生還率的關系榔袋,進行可視化圖表的繪制更容易得出結論,看下圖(我又侵權了嗎铡俐。凰兑。。??外框綠色蝴蝶是新生大學Logo审丘,內(nèi)框那只老虎是解密大數(shù)據(jù)團隊Logo)

案例總結

第八課終于結束了吏够,老淚縱橫。。锅知。寫不完的第八課??????今晚上第九課啦2ゼ薄!售睹!預習資料還沒看??抓緊時間

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末桩警,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子昌妹,更是在濱河造成了極大的恐慌捶枢,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件飞崖,死亡現(xiàn)場離奇詭異烂叔,居然都是意外死亡,警方通過查閱死者的電腦和手機固歪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門蒜鸡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人牢裳,你說我怎么就攤上這事逢防。” “怎么了贰健?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵胞四,是天一觀的道長。 經(jīng)常有香客問我伶椿,道長,這世上最難降的妖魔是什么氓侧? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任脊另,我火速辦了婚禮,結果婚禮上约巷,老公的妹妹穿的比我還像新娘偎痛。我一直安慰自己,他們只是感情好独郎,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布踩麦。 她就那樣靜靜地躺著,像睡著了一般氓癌。 火紅的嫁衣襯著肌膚如雪谓谦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天贪婉,我揣著相機與錄音反粥,去河邊找鬼。 笑死,一個胖子當著我的面吹牛才顿,可吹牛的內(nèi)容都是我干的莫湘。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼郑气,長吁一口氣:“原來是場噩夢啊……” “哼幅垮!你這毒婦竟也來了?” 一聲冷哼從身側響起尾组,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤军洼,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后演怎,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體匕争,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年爷耀,在試婚紗的時候發(fā)現(xiàn)自己被綠了甘桑。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡歹叮,死狀恐怖跑杭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情咆耿,我是刑警寧澤德谅,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站萨螺,受9級特大地震影響窄做,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜慰技,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一椭盏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧吻商,春花似錦掏颊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至柒爸,卻和暖如春准浴,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背揍鸟。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工兄裂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留句旱,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓晰奖,卻偏偏與公主長得像谈撒,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子匾南,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

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