타이타닉 데이터 분석 1.Gender Class


#Gender-class이므로 우선 성별을 요약해서 본다

summary(train$Sex)

female    male
  314      577


#성별과 생존자에 대한 비율을 알아내기 위한 명령어를 사용한다

pro.table(table(train$Sex,train$Survived))

          0                     1
female 0.090909009   0.26150393
male   0.52525253    0.12233446

#생존자 중 남,녀의 합이 같게 하기 위해 비율을 다시 설정한다

pro.table(table(train$Sex,train$Survived),1)

                0                      1
female   0.2579618            0.7420382
male     0.8110919            0.1889081

#test 변수의 Survived에 0을 대입

test$Survived <- 0="" p="">

#Survived열에 Sex값이 female인 값만 1을 대입

test$Survived[test$Sex == 'female' ] <- 1="" div="">

이 분석은 비율 상으로 남자인 생존자가 0.18로 가장 작기 때문에 
여자는 살고 남자는 죽었다는 결론을 내린 Gender-Class이다.

 
제출해보니  0.76555라는 결과 값이 나왔다.


이제는 나이에 대해 알아보면

#나이에 대한 요약을 보면

summary(train$Age)
 MIn   1st Qu.  Median   Mean   3rd Qu.   Max    Na
 0.42   20.12     28.00    29.70   38.00     80    177

*Median 과 Mean의 차이점은 알고가자

Median 은 중앙값이고 Mean은 평균값으로
비슷하지만, 1 2 7 40 50 의 평균은 20이지만 중앙값은 7이다.


#Child라는 열을 만들고 18세 이상은 1을 대입하고 그 아래는 0을 대입한다

train$Child <- 0="" p="">train$Child[train$Age] <- 1="" p="">

#생존자별 아이와 성별에 따른 합

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

#생존율을 구하는 명령어. FUN에 살아남은 사람/배에 탄 사람

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

#Fare 변수를 Fare2에 정리한다.

train$Fare2 <- p="">train$Fare2[train$Fare < 30 & train$Fare >= 20] <- p="">train$Fare2[train$Fare < 20 & train$Fare >= 10] <- p="">train$Fare2[train$Fare < 10] <- p="">
#Fare,Pclass,Sex 별 생존자율을 구하는 명령어이다.

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 0.5937500="" female="" nbsp="" p="">7  10-20      3 female 0.5813953
8  20-30      3 female 0.3333333
9    30+      3 female 0.1250000
10   <10 0.0000000="" font="" male="" nbsp="">
11 20-30      1   male 0.4000000
12   30+      1   male 0.3837209
13   <10 0.0000000="" font="" male="" nbsp="">
14 10-20      2   male 0.1587302
15 20-30      2   male 0.1600000
16   30+      2   male 0.2142857
17   <10 0.1115385="" font="" male="" nbsp="">
18 10-20      3   male 0.2368421
19 20-30      3   male 0.1250000
20   30+      3   male 0.2400000

R을 통해 각 변수별 생존율에 대해 알아보았다.
위에 빨간색으로 칠한 부분은 test지에 모두 Survived 변수에 0을 대입하고
나머지는 1을 대입할 것이다.

#Survived에 0과 1을 대입한다.

> test$Survived <- 0="" p="">> test$Survived[test$Sex == 'female'] <- 1="" p="">> test$Survived[test$Sex == 'female' & test$Pclass == 3 & test$Fare >= 20] <- 0="" p="">




출처 : http://trevorstephens.com/post/72916401642/titanic-getting-started-with-r

댓글

이 블로그의 인기 게시물

윈도우 설치에서 파티션 설정 오류(NTFS)

[exploit writing] 1_스택 기반 오버플로우 (1) First

하둡 설치 오류 정리