All life is game of luck搬设,數(shù)據(jù)挖掘告訴你生存是不是考運(yùn)氣

????泰坦尼克號(hào)(RMS Titanic):20世紀(jì)初,由英國白星航運(yùn)公司制造的一艘巨大豪華客輪撕捍。是當(dāng)時(shí)世界上最大的豪華客輪拿穴,被稱為是“永不沉沒的”或是“夢幻客輪”。但她卻在1912年4月15日從南安普頓至紐約的處女航中卦洽,在北大西洋撞上冰山而沉沒贞言,由于缺少足夠的救生艇,1500人葬生海底阀蒂,造成了在和平時(shí)期最嚴(yán)重的一次航海事故该窗,也是迄今為止最著名的一次。派拉蒙電影公司與20世紀(jì)冈橄迹克斯電影公司于1997年將“泰坦尼克號(hào)”的事件改編為電影酗失,在全球各地上映,轟動(dòng)全球昧绣,也讓她變得家喻戶曉规肴。

????根據(jù)kaggle提供的數(shù)據(jù)集 ,總共樣本1392,分為訓(xùn)練集拖刃,892個(gè)樣本删壮,其中存活乘客392人,測試樣本兑牡,419個(gè)央碟。數(shù)據(jù)集可以從kaggle官方網(wǎng)站下載,也可以從我的百度云盤下載均函。

? ? 首先對(duì)數(shù)據(jù)進(jìn)行概覽亿虽,數(shù)據(jù)集中包含字段,

PassengerId:乘客編號(hào)

Survived? :存活情況(存活:1 ; 死亡:0)

Pclass:客艙等級(jí)(1苞也,2洛勉,3)

Name:乘客姓名(姓+稱謂+名)

Sex:性別(male男,female女性)

Age:年齡(乘客年齡)

SibSp:同乘的兄弟姐妹/配偶數(shù)()

Parch:同乘的父母/小孩數(shù)(小孩和保姆會(huì)算為0)

Ticket:船票編號(hào)(船票號(hào)如迟,有多個(gè)人公用一個(gè)船票號(hào))

Fare:船票價(jià)格(乘船費(fèi)用)

Cabin:客艙號(hào)(客艙編號(hào))

Embarked? : 登船港口(C = Cherbourg, Q = Queenstown, S = Southampton)

其中根據(jù)數(shù)據(jù)概覽中可以看出收毫,其他Age、Fare氓涣、Cabin和Embarked有缺失值:

下面對(duì)缺失值進(jìn)行處理:

乘客年齡:由于缺失值較多牛哺,暫不做處理陋气。

Fare根據(jù)kaggle上的多種模型驗(yàn)證一致認(rèn)為缺失的乘客的數(shù)值為:8.05劳吠,

Cabin有相同Ticket號(hào)的具有相同的Cabin,根據(jù)這條規(guī)則填充了12條數(shù)據(jù)巩趁,其余填充為Unknown痒玩;

Embarked有兩個(gè)缺失值,用C進(jìn)行填充议慰;

trainset <- read.csv('./train.csv', stringsAsFactors = F)

testset <- read.csv('./test.csv', stringsAsFactors = F)

fullset ?<-bind_rows(trainset, testset)#

str(fullset)#

fullset$Embarked[c(62,830)] <-'C'

fullset$Fare[1044] <-median(fullset[fullset$Pclass =='3'&fullset$Embarked =='S', ]$Fare,na.rm =TRUE)

CabinNA<-subset(fullset,fullset$Cabin=="")

CabinY<-subset(fullset,fullset$Cabin!="")

samet<-intersect(CabinNA$Ticket,CabinY$Ticket)

x<-match(samet,CabinY$Ticket)

for (i in x) {CabinNA$Cabin[i]<-CabinY$Cabin[i]}

fullset<- rbind(CabinNA,CabinY)

fullset$Cabin[fullset$Cabin=="NA"]<-"Unknown"

age預(yù)測

factor_vars <-c('PassengerId','Pclass','Sex','Embarked')

fullset[factor_vars] <-lapply(fullset[factor_vars], function(x)as.factor(x))

# Set a random seed

set.seed(129)

# Perform mice imputation, excluding certain less-than-useful variables:

mice_mod <- mice(fullset[, !names(fullset) %in% c('PassengerId','Name','Ticket','Cabin','Survived')], method='rf')

mice_output <-complete(mice_mod)

fullset$Age <-mice_output$Age


trainfullc <-full[1:891,]

testfullc <-full[892:1309,]

下面我選擇隨機(jī)森林(RandomForest)蠢古、決策樹(DecisionTree)、logit 模型和支持向量機(jī)别凹,建立模型草讶,先建立一個(gè)預(yù)測的基準(zhǔn)。

# Set a random seed

set.seed(754)

# Build the model (note: not all possible variables are used)

rf_model <-randomForest(factor(Survived) ~Pclass +Sex +Age +SibSp +Parch +Fare +Embarked +Title +FsizeD +Child +Mother,data =train)

# Show model errorplot(rf_model,ylim=c(0,0.36))legend('topright',colnames(rf_model$err.rate),col=1:3,fill=1:3)

# Get importanceimportance <-importance(rf_model)

varImportance <-data.frame(Variables =row.names(importance),Importance =round(importance[ ,'MeanDecreaseGini'],2))

# Create a rank variable based on importance

rankImportance <-varImportance %>%mutate(Rank =paste0('#',dense_rank(desc(Importance))))# Use ggplot2 to visualize the relative importance of variables

ggplot(rankImportance,aes(x =reorder(Variables, Importance),y =Importance,fill =Importance)) +geom_bar(stat='identity') +geom_text(aes(x =Variables,y =0.5,label =Rank),hjust=0,vjust=0.55,size =4,colour ='red') +labs(x ='Variables') +coord_flip() +theme_few()

# Predict using the test set

prediction <-predict(rf_model, test)

# Save the solution to a dataframe with two columns: PassengerId and Survived (prediction)

solution <-data.frame(PassengerID =test$PassengerId,Survived =prediction)

# Write the solution to file

write.csv(solution,file ='rf_mod_Solution.csv',row.names =F)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末炉菲,一起剝皮案震驚了整個(gè)濱河市堕战,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌拍霜,老刑警劉巖嘱丢,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異祠饺,居然都是意外死亡越驻,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來缀旁,“玉大人记劈,你說我怎么就攤上這事〔⑽。” “怎么了抠蚣?”我有些...
    開封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長履澳。 經(jīng)常有香客問我嘶窄,道長,這世上最難降的妖魔是什么距贷? 我笑而不...
    開封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任柄冲,我火速辦了婚禮,結(jié)果婚禮上忠蝗,老公的妹妹穿的比我還像新娘现横。我一直安慰自己,他們只是感情好阁最,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開白布戒祠。 她就那樣靜靜地躺著,像睡著了一般速种。 火紅的嫁衣襯著肌膚如雪姜盈。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天配阵,我揣著相機(jī)與錄音馏颂,去河邊找鬼。 笑死棋傍,一個(gè)胖子當(dāng)著我的面吹牛救拉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瘫拣,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼亿絮,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了麸拄?” 一聲冷哼從身側(cè)響起派昧,我...
    開封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎斗锭,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體失球,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡岖是,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年帮毁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片豺撑。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡烈疚,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出聪轿,到底是詐尸還是另有隱情爷肝,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布陆错,位于F島的核電站灯抛,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏音瓷。R本人自食惡果不足惜对嚼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望绳慎。 院中可真熱鬧纵竖,春花似錦、人聲如沸杏愤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽珊楼。三九已至通殃,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間亥曹,已是汗流浹背邓了。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留媳瞪,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓照宝,卻偏偏與公主長得像蛇受,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子厕鹃,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

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