泰坦尼克船員獲救分析

1.導(dǎo)入數(shù)據(jù)

import pandas #ipython notebook
titanic = pandas.read_csv("titanic_train.csv")
titanic.head(5)
數(shù)據(jù)預(yù)覽

由上可知立磁,該數(shù)據(jù)共有12個字段告丢,各個字段含義如下:

  • PassengerId 整型變量,標(biāo)識乘客的ID垒玲,遞增變量陆馁,對預(yù)測無幫助
  • Survived 整型變量,標(biāo)識該乘客是否幸存合愈。0表示遇難叮贩,1表示幸存。將其轉(zhuǎn)換為factor變量比較方便處理
  • Pclass 整型變量佛析,標(biāo)識乘客的社會-經(jīng)濟(jì)狀態(tài)益老,1代表Upper,2代表Middle寸莫,3代表Lower
  • Name 字符型變量捺萌,除包含姓和名以外,還包含Mr.
    Mrs. Dr.這樣的具有西方文化特點的信息
  • Sex 字符型變量储狭,標(biāo)識乘客性別互婿,適合轉(zhuǎn)換為factor類型變量
  • Age 整型變量,標(biāo)識乘客年齡辽狈,有缺失值
  • SibSp 整型變量慈参,代表兄弟姐妹及配偶的個數(shù)。其中Sib代表Sibling也即兄弟姐妹刮萌,Sp代表Spouse也即配偶
  • Parch 整型變量驮配,代表父母或子女的個數(shù)。其中Par代表Parent也即父母,Ch代表Child也即子女
  • Ticket 字符型變量壮锻,代表乘客的船票號 Fare 數(shù)值型琐旁,代表乘客的船票價
  • Cabin 字符型,代表乘客所在的艙位猜绣,有缺失值
  • Embarked 字符型灰殴,代表乘客登船口岸,適合轉(zhuǎn)換為factor型變量

2.數(shù)據(jù)預(yù)處理

2.1數(shù)據(jù)描述性統(tǒng)計
titanic.describe()
描述性統(tǒng)計

可以知道掰邢,字段Age有缺失值牺陶,將平均值作為填充

titanic["Age"] = titanic["Age"].fillna(titanic["Age"].median())
2.2非數(shù)字型數(shù)據(jù)轉(zhuǎn)換為數(shù)字表示類型
# 男性用0表示,女性用1表示
titanic.loc[titanic["Sex"] == "male", "Sex"] = 0
titanic.loc[titanic["Sex"] == "female", "Sex"] = 1
print(titanic["Embarked"].unique())
# 將Embarked字段缺失值填充為數(shù)量最多的S
titanic["Embarked"] = titanic["Embarked"].fillna('S')
# 把S辣之、C掰伸、Q分別用數(shù)字0、1怀估、2表示
titanic.loc[titanic["Embarked"] == "S", "Embarked"] = 0
titanic.loc[titanic["Embarked"] == "C", "Embarked"] = 1
titanic.loc[titanic["Embarked"] == "Q", "Embarked"] = 2

處理后的數(shù)據(jù)預(yù)覽:


處理后數(shù)據(jù)
2.3對訓(xùn)練數(shù)據(jù)進(jìn)行劃分狮鸭,進(jìn)行交叉驗證
from sklearn.model_selection import KFold  # cross_validation 已經(jīng)被model_selection 代替
# 七個特征值
predictors = ["Pclass", "Sex", "Age", "SibSp", "Parch", "Fare", "Embarked"]

3.邏輯回歸算法實現(xiàn)

# 從sklearn中導(dǎo)入邏輯回歸算法
from sklearn import model_selection
from sklearn.linear_model import LogisticRegression
alg = LogisticRegression(random_state=1)
scores = model_selection.cross_val_score(alg, titanic[predictors], titanic["Survived"], cv=3)
print(scores.mean())

輸出結(jié)果:

邏輯回歸算法預(yù)測分?jǐn)?shù)

可知,該算法預(yù)測準(zhǔn)確率達(dá)到78%多搀,預(yù)測效果不錯

4.隨機(jī)森林算法實現(xiàn)

from sklearn import model_selection
from sklearn.ensemble import RandomForestClassifier

predictors = ["Pclass", "Sex", "Age", "SibSp", "Parch", "Fare", "Embarked"]

# Initialize our algorithm with the default paramters
# n_estimators is the number of trees we want to make
# min_samples_split is the minimum number of rows we need to make a split
# min_samples_leaf is the minimum number of samples we can have at the place where a tree branch ends (the bottom points of the tree)
alg = RandomForestClassifier(random_state=1, n_estimators=10, min_samples_split=2, min_samples_leaf=1)
# Compute the accuracy score for all the cross validation folds.  (much simpler than what we did before!)
kf = model_selection.KFold( n_splits=3, random_state=1).split(titanic)
scores = model_selection.cross_val_score(alg, titanic[predictors], titanic["Survived"], cv=3)

# Take the mean of the scores (because we have one for each fold)
print(scores.mean())

輸出結(jié)果:


隨機(jī)森林算法預(yù)測分?jǐn)?shù)

可知歧蕉,隨機(jī)森林算法預(yù)測準(zhǔn)確率達(dá)到80%,預(yù)測效果好于邏輯回歸算法

4.1調(diào)整隨機(jī)森林算法參數(shù)
# 調(diào)參
alg = RandomForestClassifier(random_state=1, n_estimators=100, min_samples_split=4, min_samples_leaf=2)
# Compute the accuracy score for all the cross validation folds.  (much simpler than what we did before!)
kf = model_selection.KFold(n_splits=3, random_state=1).split(titanic)
scores = model_selection.cross_val_score(alg, titanic[predictors], titanic["Survived"], cv=3)

# Take the mean of the scores (because we have one for each fold)
print(scores.mean())

輸出結(jié)果:


參數(shù)調(diào)整后的預(yù)測分?jǐn)?shù)

可以知道酗昼,通過調(diào)節(jié)參數(shù)廊谓,能夠達(dá)到提高模型預(yù)測能力的效果

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市麻削,隨后出現(xiàn)的幾起案子蒸痹,更是在濱河造成了極大的恐慌,老刑警劉巖呛哟,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件叠荠,死亡現(xiàn)場離奇詭異,居然都是意外死亡扫责,警方通過查閱死者的電腦和手機(jī)榛鼎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鳖孤,“玉大人者娱,你說我怎么就攤上這事∷沾В” “怎么了黄鳍?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長平匈。 經(jīng)常有香客問我框沟,道長藏古,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任忍燥,我火速辦了婚禮拧晕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘梅垄。我一直安慰自己厂捞,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布哎甲。 她就那樣靜靜地躺著蔫敲,像睡著了一般饲嗽。 火紅的嫁衣襯著肌膚如雪炭玫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天貌虾,我揣著相機(jī)與錄音吞加,去河邊找鬼。 笑死尽狠,一個胖子當(dāng)著我的面吹牛衔憨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播袄膏,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼践图,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了沉馆?” 一聲冷哼從身側(cè)響起码党,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎斥黑,沒想到半個月后揖盘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡锌奴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年兽狭,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鹿蜀。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡箕慧,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出茴恰,到底是詐尸還是另有隱情颠焦,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布琐簇,位于F島的核電站蒸健,受9級特大地震影響座享,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜似忧,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一渣叛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧盯捌,春花似錦淳衙、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至幼衰,卻和暖如春靴跛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背渡嚣。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工梢睛, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人识椰。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓绝葡,卻偏偏與公主長得像,于是被迫代替她去往敵國和親腹鹉。 傳聞我的和親對象是個殘疾皇子藏畅,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,675評論 2 359

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

  • 機(jī)器學(xué)習(xí)的步驟:先擼一個baseline的model出來,再進(jìn)行后續(xù)的分析步驟功咒,一步步提高愉阎,所謂后續(xù)步驟可能包括『...
    apricoter閱讀 3,370評論 0 9
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,111評論 1 32
  • 學(xué)習(xí)C語言程序設(shè)計都會用到高等數(shù)學(xué)知識和計算機(jī)基礎(chǔ)理論知識。 使用可變參數(shù)應(yīng)該有以下步驟: 1)首先在函數(shù)里定義一...
    皓小天閱讀 5,787評論 0 2
  • 很多人認(rèn)為我們保險代理人只是給客戶推薦一個險種航瞭,客戶買了保險后诫硕,理賠那是公司的事,與業(yè)務(wù)員關(guān)系不大了刊侯,我以...
    高瓊閱讀 594評論 2 0
  • 描述所有權(quán) 交易的完整歷史記錄是識別當(dāng)前所有者的關(guān)鍵章办。 保護(hù)所有權(quán) 識別所有者,認(rèn)證所有者滨彻,限制其他人獲得 存儲交...
    Jack_66e1閱讀 423評論 0 1