問題背景
船沉了让腹,大家驚慌逃生远剩,但是沒有足夠的救生艇。是否獲救并非隨機(jī)骇窍,有些群體比其他人更有可能生存瓜晤,如婦女、兒童和上層階級(jí)等等腹纳。
數(shù)據(jù)集是乘客的個(gè)人信息以及存活狀況痢掠,根據(jù)已有數(shù)據(jù)集生成模型預(yù)測(cè)其他人的存活情況。
該問題是一個(gè)二分類問題嘲恍。
數(shù)據(jù)概覽
pandas中的dataframe類可以比較方便的處理.csv 文件足画,讀入train.csv中的數(shù)據(jù)如下:
先來看看訓(xùn)練集的一些基本情況:
由上面的數(shù)據(jù)可以看出訓(xùn)練集中一共含有891位乘客,12列屬性中年齡(714項(xiàng))和客艙(204項(xiàng))數(shù)據(jù)有缺省項(xiàng)佃牛。
屬性分析:
下面結(jié)合實(shí)際情況淹辞,分析一下12個(gè)屬性。
PassengerId:乘客Id俘侠,這個(gè)和Survived基本沒什么關(guān)系象缀。
Survived:0代表沒有獲救,1代表獲救爷速。
Pclass:1央星,2,3分別代表倉(cāng)位等級(jí)惫东;根據(jù)背景莉给,頭等艙可能會(huì)獲得更多的救援資源,優(yōu)先安排救援廉沮,要重點(diǎn)關(guān)注颓遏。
Name:姓名,這個(gè)關(guān)聯(lián)度不是很強(qiáng)滞时,可以放一放做備選州泊。
Sex:根據(jù)情景,可能會(huì)優(yōu)先救援女性漂洋,這個(gè)需要關(guān)注一下。
Age:一般來說會(huì)先安排小孩和老人力喷,青壯年的逃生概率會(huì)比較大刽漂,這個(gè)要看下具體情況,需要關(guān)注下弟孟。
SibSp:兄妹妻子等的個(gè)數(shù)贝咙,這個(gè)看起來是個(gè)對(duì)獲救有益的因子,互幫互助的話可能成功率更高拂募,可以關(guān)注下庭猩。
Parch:老人孩子的個(gè)數(shù)窟她,如果有老人和小孩,要先安排老人和小孩蔼水,然后才是自己震糖,看起來是個(gè)負(fù)相關(guān)因子,需要關(guān)注一下趴腋。
Ticket:船票號(hào)吊说,這個(gè)沒有發(fā)現(xiàn)明顯的規(guī)律,暫時(shí)先放一放优炬。
Fare:票價(jià)颁井,和Pclass可能有對(duì)應(yīng)關(guān)系,可以關(guān)注下蠢护。
Cabin:倉(cāng)位雅宾,這個(gè)是個(gè)地理位置特征,和獲救有一定的關(guān)系葵硕,但是無法結(jié)合具體的倉(cāng)位分布圖眉抬,不確定離甲板的距離,而且缺失項(xiàng)較多贬芥,這個(gè)前面可以先放一放吐辙,優(yōu)化的時(shí)候再做其他處理。
Embarked:港口蘸劈,這個(gè)可能和獲救有關(guān)系昏苏,可以關(guān)注下。
數(shù)值型屬性一覽:
下面看看數(shù)值型數(shù)據(jù)的基本分布情況:
由mean字段可以知道威沫,大約38%的人獲救了贤惯;結(jié)合分位數(shù),船上人員年齡集中在20-40之間棒掠,平均年齡約30歲孵构,pclass的1/4分位數(shù)是2,說明買1等艙的人數(shù)很少烟很。
我們看一下需要關(guān)注的屬性的分布情況:
由圖能進(jìn)一步得出的信息是:
- 獲救的人數(shù)未達(dá)半數(shù)颈墅;
- 3等艙的乘客非常多,遠(yuǎn)超其余2類雾袱;
- 女性約占總?cè)藬?shù)的1/3恤筛;
- 大多數(shù)人未同親人同行;
- Fare與Pclass并未成階梯狀分布芹橡,fare與Survived的關(guān)系有待挖掘毒坛;
- S港口登陸的乘客最多;
相關(guān)性分析:
進(jìn)一步,我們看一下各屬性與Survived之間的相關(guān)性:
Pclass:可以看到1等艙和2等艙的存活率明顯高于3等艙煎殷,說明存活率和艙位等級(jí)還是有關(guān)系的屯伞,這個(gè)可以作為因子。
Sex:女性的存活率要遠(yuǎn)高于男性豪直,Sex也是一個(gè)因子劣摇。
Age:年齡這個(gè)屬性和存活率的相關(guān)性不是特別明顯,但是真的不是優(yōu)先照顧老人和小孩嗎顶伞?這個(gè)屬性先放一放饵撑,后面優(yōu)化的時(shí)候再挖掘。
SibSp:由圖得知唆貌,在3和4的這個(gè)位置存活率較高滑潘,是不是越多存活率越高,這里不太確定锨咙,后面再挖掘语卤,這個(gè)屬性可以作為一個(gè)備用因子。
Parch:這個(gè)圖可以看到存活率隨父母小孩數(shù)量增加在增加酪刀,至于是不是越多越好這個(gè)圖看不出來粹舵,這個(gè)關(guān)系放到后面挖掘,這個(gè)屬性可以作為一個(gè)備用因子
票價(jià)竟然沒有顯著作用骂倘,fare這個(gè)屬性我們先放一放眼滤。
cabin這個(gè)屬性缺失項(xiàng)比較多,我們暫時(shí)先放棄历涝。
C港口的存活率最高诅需,Embarked屬性可以作為一個(gè)因子。
數(shù)據(jù)預(yù)處理
訓(xùn)練集中荧库,Age和Cabin是有缺失的堰塌。
通常遇到缺值的情況,我們會(huì)有幾種常見的處理方式:
- 如果缺值的樣本占總數(shù)比例極高分衫,我們可能就直接舍棄了场刑,作為特征加入的話,可能反倒帶入noise蚪战,影響最后的結(jié)果了
- 如果缺值的樣本適中牵现,而該屬性非連續(xù)值特征屬性(比如說類目屬性),那就把NaN作為一個(gè)新類別邀桑,加到類別特征中
- 如果缺值的樣本適中施籍,而該屬性為連續(xù)值特征屬性,有時(shí)候我們會(huì)考慮給定一個(gè)step概漱,然后把它離散化,之后把NaN作為一個(gè)type加到屬性類目中喜喂。
- 有些情況下瓤摧,缺失的值個(gè)數(shù)并不是特別多竿裂,那我們也可以試著根據(jù)已有的值,擬合一下數(shù)據(jù)照弥,補(bǔ)充上腻异。
Age比較符合后面2種情況,從年齡的分布來看这揣,年齡比較符合正態(tài)分布悔常,這里我們?nèi)∧挲g的均值進(jìn)行填充。
Cabin符合第一種情況给赞,我們先放棄机打。
接下來,Sex和Embarked為非數(shù)值型數(shù)據(jù)片迅,我們先轉(zhuǎn)換成int型數(shù)據(jù)残邀。
現(xiàn)在,選入的因子都成為數(shù)值型的了柑蛇,但是Age和Fare的幅度有點(diǎn)寬芥挣,這個(gè)會(huì)影響收斂速度〕芴ǎ可以用scikit-learn里面的preprocessing模塊對(duì)這倆屬性做一個(gè)scaling空免,將范圍鎖定到[-1,1]。
現(xiàn)在盆耽,初步的數(shù)據(jù)處理完了蹋砚,接下來可以建模了。
【目錄】