原文連結:http://tecdat.cn/?p=6062
原文出處:拓端資料部落公衆号
這場災難以拯救“婦女和兒童第一”而聞名,是以讓我們來看看性别和年齡變量。我們将從乘客的性别開始。将資料重新加載到R後,請檢視此變量的摘要:
> summary(train$Sex)
female male
314 577
是以我們看到大多數乘客都是男性。對幸存的男性和女性進行比較:
> prop.table(table(train$Sex, train$Survived))
0 1
female 0.09090909 0.26150393
male 0.52525253 0.12233446
我們希望看到的是行比例,即存活的每個性别的比例。
> prop.table(table(train$Sex, train$Survived),1)
0 1
female 0.2579618 0.7420382
male 0.8110919 0.1889081
我們現在可以看到大多數女性幸存下來,并且男性的比例非常低。
> test$Survived <- 0
> test$Survived[test$Sex == 'female'] <- 1
在這裡,我們添加“everyone dies”預測列,将零指定給整個列。然後我們改變其中女性乘客為1。
現在讓我們寫一個新的送出并發送給Kaggle
現在讓我們研究年齡變量:
> summary(train$Age)
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
0.42 20.12 28.00 29.70 38.00 80.00 177
資料分析中缺少值,這可能會導緻各種問題,而這些問題有時很難處理。目前我們可以假設177個缺失值是其餘乘客的平均年齡。
現在我們有一個連續的變量,我們建立一個新的變量“Child”來表明乘客是否低于18歲:
> train$Child <- 0
> train$Child[train$Age < 18] <- 1
現在我們要建立一個包含性别和年齡的表,以檢視不同子集的生存比例。首先讓我們嘗試找出不同子集的幸存者數量:
> aggregate(Survived ~ Child + Sex, data=train, FUN=sum)
Child Sex Survived
1 0 female 195
2 1 female 38
3 0 male 86
4 1 male 23
但我們不知道每個子集中的總人數; 讓我們來看看:
> aggregate(Survived ~ Child + Sex, data=train, FUN=length)
Child Sex Survived
1 0 female 259
2 1 female 55
3 0 male 519
4 1 male 58
我們需要建立一個函數,它将子集向量作為輸入,然後進行除法以給出一個比例。
> aggregate(Survived ~ Child + Sex, data=train, FUN=function(x) {sum(x)/length(x)})
Child Sex Survived
1 0 female 0.7528958
2 1 female 0.6909091
3 0 male 0.1657033
4 1 male 0.3965517
雖票價是一個連續變量,需要将其簡化為可以輕松制表的内容。我們将票價收入不到10美元,10美元到20美元,20美元到30美元以及30美元以上,并将其存儲到一個新變量中:
> train$Fare2 <- '30+'
> train$Fare2[train$Fare < 30 & train$Fare >= 20] <- '20-30'
> train$Fare2[train$Fare < 20 & train$Fare >= 10] <- '10-20'
> train$Fare2[train$Fare < 10] <- '<10'
現在讓我們運作一個更長的聚合函數,看看這裡有什麼有趣的東西:
> aggregate(Survived ~ Fare2 + Pclass + Sex, data=train, FUN=function(x) {sum(x)/length(x)})
Fare2 Pclass Sex Survived
1 20-30 1 female 0.8333333
2 30+ 1 female 0.9772727
3 10-20 2 female 0.9142857
4 20-30 2 female 0.9000000
5 30+ 2 female 1.0000000
6 <10 3 female 0.5937500
7 10-20 3 female 0.5813953
8 20-30 3 female 0.3333333 **
9 30+ 3 female 0.1250000 **
10 <10 1 male 0.0000000
11 20-30 1 male 0.4000000
12 30+ 1 male 0.3837209
13 <10 2 male 0.0000000
14 10-20 2 male 0.1587302
15 20-30 2 male 0.1600000
16 30+ 2 male 0.2142857
17 <10 3 male 0.1115385
18 10-20 3 male 0.2368421
19 20-30 3 male 0.1250000
20 30+ 3 male 0.2400000
大部分男性和票價表現效果不好。
讓我們根據新的見解做出新的預測。
> test$Survived <- 0
> test$Survived[test$Sex == 'female'] <- 1
> test$Survived[test$Sex == 'female' & test$Pclass == 3 & test$Fare >= 20] <- 0
好的,讓我們建立輸出檔案,看看我們是否做得更好!
有問題歡迎下方留言!
最受歡迎的見解
1.資料類崗位需求的資料面
2.探析大資料期刊文章研究熱點
3.機器學習助推快時尚精準銷售預測
4.用機器學習識别不斷變化的股市狀況—隐馬爾科夫模型(HMM)的應用
5.資料聆聽人民網留言闆的那些“網事”
6.在r語言中使用GAM(廣義相加模型)進行電力負荷時間序列分析
7.用資料解讀體育決策:挖掘體育賽事新價值
8.把握計程車行駛的資料脈搏
9.智能門鎖“剁手”資料攻略