titanic <- read.csv("C:/Users/Kajal/Downloads/titanic.csv")

a.) Plot a tree

require(ISLR)
## Loading required package: ISLR
require(rpart)
## Loading required package: rpart
## Warning: package 'rpart' was built under R version 3.3.2
require(tree)
## Loading required package: tree
## Warning: package 'tree' was built under R version 3.3.2
require(rpart)

#Age makes up 20% of the data. I predicted the Age using a Linear Model and imputed it.

missing_val <- is.na(titanic$Age)
age_train <- titanic[!missing_val, ]
age_test <- titanic[missing_val, ]

lm_Age <-lm(Age~Pclass + Survived + SibSp, data = age_train)
age_test$Age <- predict(lm_Age, newdata = age_test)
titanic[titanic$PassengerId %in% age_test$PassengerId, "Age"] <- age_test$Age


train<-titanic[1:450,]
test<-titanic[451:891,]
tree <- rpart(Survived ~ Pclass + Sex + Age + SibSp + Fare, data=train)
             
#LOOK HOW PRETTY THIS TREE IS!!!!!!

require(rpart.plot)
## Loading required package: rpart.plot
## Warning: package 'rpart.plot' was built under R version 3.3.2
rpart.plot(tree)

b.) THE MSE WHEN cp=0.0145 IS 0.1291507

set.seed(1234)
titanic$fold <- sample(1:5,891,replace=TRUE)

cp <- 0.02
cp <- seq(0.01,0.02,length=20)
cpList<-list()
for (j in 1:20){print(j)
sse <- list()
for (i in 1:5){
tree_K <- rpart(Survived ~ Pclass + Sex + Age + SibSp + Fare, data=titanic[!(titanic$fold == i),], control = rpart.control(cp = cp[j] ,minsplit=10,minbucket=5))
#Predicted values
yhat <- predict(tree_K,titanic[(titanic$fold == i),])
#actual Values
y <- titanic$Survived[(titanic$fold == i)]

sse[[i]]<-sum((y-yhat)^2)

}

cpList[[j]]<-sum(unlist(sse))/nrow(titanic)

}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
## [1] 6
## [1] 7
## [1] 8
## [1] 9
## [1] 10
## [1] 11
## [1] 12
## [1] 13
## [1] 14
## [1] 15
## [1] 16
## [1] 17
## [1] 18
## [1] 19
## [1] 20
plot(cp,unlist(cpList),pch=16)

tree1 <- rpart(Survived ~ Pclass + Sex + Age + SibSp + Fare, data=titanic, control = rpart.control(cp = 0.0145,minsplit=10,minbucket=5))
rpart.plot(tree1)

predict(tree1)
##         1         2         3         4         5         6         7 
## 0.1002506 0.9470588 0.3170732 0.9470588 0.1002506 0.1002506 0.3395062 
##         8         9        10        11        12        13        14 
## 0.8750000 0.3170732 0.9470588 0.7368421 0.9470588 0.1002506 0.3395062 
##        15        16        17        18        19        20        21 
## 0.7368421 0.9470588 0.3395062 0.1002506 0.3170732 0.7368421 0.1002506 
##        22        23        24        25        26        27        28 
## 0.1002506 0.7368421 0.3395062 0.7368421 0.1111111 0.1002506 0.3395062 
##        29        30        31        32        33        34        35 
## 0.7368421 0.1002506 0.3395062 0.9470588 0.7368421 0.1002506 0.3395062 
##        36        37        38        39        40        41        42 
## 0.3395062 0.1002506 0.1002506 0.7368421 0.7368421 0.3170732 0.9470588 
##        43        44        45        46        47        48        49 
## 0.1002506 0.9470588 0.7368421 0.1002506 0.1002506 0.7368421 0.1002506 
##        50        51        52        53        54        55        56 
## 0.7368421 0.3395062 0.1002506 0.9470588 0.9470588 0.3395062 0.3395062 
##        57        58        59        60        61        62        63 
## 0.9470588 0.1002506 0.9470588 0.3395062 0.1002506 0.9470588 0.3395062 
##        64        65        66        67        68        69        70 
## 0.3395062 0.3395062 0.1002506 0.9470588 0.1002506 0.7368421 0.1002506 
##        71        72        73        74        75        76        77 
## 0.1002506 0.1111111 0.3395062 0.1002506 0.3395062 0.1002506 0.1002506 
##        78        79        80        81        82        83        84 
## 0.1002506 0.3395062 0.3170732 0.1002506 0.1002506 0.7368421 0.3395062 
##        85        86        87        88        89        90        91 
## 0.9470588 0.3170732 0.3395062 0.1002506 0.9470588 0.1002506 0.1002506 
##        92        93        94        95        96        97        98 
## 0.1002506 0.3395062 0.1002506 0.1002506 0.1002506 0.3395062 0.3395062 
##        99       100       101       102       103       104       105 
## 0.9470588 0.1002506 0.3170732 0.1002506 0.3395062 0.1002506 0.1002506 
##       106       107       108       109       110       111       112 
## 0.1002506 0.7368421 0.1002506 0.1002506 0.1111111 0.3395062 0.7368421 
##       113       114       115       116       117       118       119 
## 0.1002506 0.7368421 0.7368421 0.1002506 0.1002506 0.1002506 0.3395062 
##       120       121       122       123       124       125       126 
## 0.1111111 0.3395062 0.1002506 0.3395062 0.9470588 0.3395062 0.8750000 
##       127       128       129       130       131       132       133 
## 0.1002506 0.1002506 0.7368421 0.1002506 0.1002506 0.1002506 0.3170732 
##       134       135       136       137       138       139       140 
## 0.9470588 0.1002506 0.1002506 0.9470588 0.3395062 0.1002506 0.3395062 
##       141       142       143       144       145       146       147 
## 0.3170732 0.7368421 0.7368421 0.1002506 0.1002506 0.3395062 0.1002506 
##       148       149       150       151       152       153       154 
## 0.1111111 0.1002506 0.1002506 0.1002506 0.9470588 0.1002506 0.1002506 
##       155       156       157       158       159       160       161 
## 0.1002506 0.3395062 0.7368421 0.1002506 0.1002506 0.3395062 0.1002506 
##       162       163       164       165       166       167       168 
## 0.9470588 0.1002506 0.1002506 0.3395062 0.8750000 0.9470588 0.1111111 
##       169       170       171       172       173       174       175 
## 0.1002506 0.3395062 0.3395062 0.3395062 0.7368421 0.1002506 0.3395062 
##       176       177       178       179       180       181       182 
## 0.1002506 0.1002506 0.9470588 0.1002506 0.1002506 0.1111111 0.1002506 
##       183       184       185       186       187       188       189 
## 0.3395062 0.3395062 0.7368421 0.3395062 0.7368421 0.3395062 0.1002506 
##       190       191       192       193       194       195       196 
## 0.1002506 0.9470588 0.1002506 0.7368421 0.8750000 0.9470588 0.9470588 
##       197       198       199       200       201       202       203 
## 0.1002506 0.1002506 0.7368421 0.9470588 0.1002506 0.3395062 0.1002506 
##       204       205       206       207       208       209       210 
## 0.1002506 0.1002506 0.7368421 0.1002506 0.1002506 0.7368421 0.3395062 
##       211       212       213       214       215       216       217 
## 0.1002506 0.9470588 0.1002506 0.1002506 0.1002506 0.9470588 0.3170732 
##       218       219       220       221       222       223       224 
## 0.3395062 0.9470588 0.1002506 0.1002506 0.1002506 0.1002506 0.1002506 
##       225       226       227       228       229       230       231 
## 0.3395062 0.1002506 0.1002506 0.1002506 0.1002506 0.1111111 0.9470588 
##       232       233       234       235       236       237       238 
## 0.1002506 0.1002506 0.1111111 0.1002506 0.3170732 0.1002506 0.9470588 
##       239       240       241       242       243       244       245 
## 0.1002506 0.1002506 0.3170732 0.7368421 0.1002506 0.1002506 0.1002506 
##       246       247       248       249       250       251       252 
## 0.3395062 0.3170732 0.9470588 0.3395062 0.1002506 0.1002506 0.3170732 
##       253       254       255       256       257       258       259 
## 0.3395062 0.1002506 0.3170732 0.3170732 0.9470588 0.9470588 0.9470588 
##       260       261       262       263       264       265       266 
## 0.9470588 0.1002506 0.3395062 0.3395062 0.1002506 0.3170732 0.1002506 
##       267       268       269       270       271       272       273 
## 0.3395062 0.1002506 0.9470588 0.9470588 0.3395062 0.1002506 0.9470588 
##       274       275       276       277       278       279       280 
## 0.3395062 0.7368421 0.9470588 0.3170732 0.1002506 0.3395062 0.3170732 
##       281       282       283       284       285       286       287 
## 0.1002506 0.1002506 0.1002506 0.1002506 0.1002506 0.1002506 0.1002506 
##       288       289       290       291       292       293       294 
## 0.1002506 0.1002506 0.7368421 0.9470588 0.9470588 0.1002506 0.7368421 
##       295       296       297       298       299       300       301 
## 0.1002506 0.3395062 0.1002506 0.9470588 0.3395062 0.9470588 0.7368421 
##       302       303       304       305       306       307       308 
## 0.8750000 0.1002506 0.9470588 0.1002506 0.3395062 0.9470588 0.9470588 
##       309       310       311       312       313       314       315 
## 0.1002506 0.9470588 0.9470588 0.9470588 0.9470588 0.1002506 0.1002506 
##       316       317       318       319       320       321       322 
## 0.3170732 0.9470588 0.1002506 0.9470588 0.9470588 0.1002506 0.1002506 
##       323       324       325       326       327       328       329 
## 0.9470588 0.9470588 0.3395062 0.9470588 0.1002506 0.9470588 0.3170732 
##       330       331       332       333       334       335       336 
## 0.9470588 0.7368421 0.3395062 0.3395062 0.1002506 0.9470588 0.1002506 
##       337       338       339       340       341       342       343 
## 0.3395062 0.9470588 0.1002506 0.3395062 0.8750000 0.9470588 0.1002506 
##       344       345       346       347       348       349       350 
## 0.1002506 0.1002506 0.9470588 0.9470588 0.7368421 0.8750000 0.1002506 
##       351       352       353       354       355       356       357 
## 0.1002506 0.3395062 0.1002506 0.1002506 0.1002506 0.1002506 0.9470588 
##       358       359       360       361       362       363       364 
## 0.9470588 0.7368421 0.7368421 0.3395062 0.3395062 0.3170732 0.1002506 
##       365       366       367       368       369       370       371 
## 0.1002506 0.1002506 0.9470588 0.7368421 0.7368421 0.9470588 0.3395062 
##       372       373       374       375       376       377       378 
## 0.1002506 0.1002506 0.3395062 0.7368421 0.9470588 0.7368421 0.3395062 
##       379       380       381       382       383       384       385 
## 0.1002506 0.1002506 0.9470588 0.7368421 0.1002506 0.9470588 0.1002506 
##       386       387       388       389       390       391       392 
## 0.3395062 0.3395062 0.9470588 0.1002506 0.9470588 0.3395062 0.1002506 
##       393       394       395       396       397       398       399 
## 0.1002506 0.9470588 0.7368421 0.1002506 0.3170732 0.1002506 0.1002506 
##       400       401       402       403       404       405       406 
## 0.9470588 0.1002506 0.1002506 0.7368421 0.1002506 0.7368421 0.1002506 
##       407       408       409       410       411       412       413 
## 0.1002506 0.8750000 0.1002506 0.1111111 0.1002506 0.1002506 0.9470588 
##       414       415       416       417       418       419       420 
## 0.1002506 0.1002506 0.3170732 0.9470588 0.9470588 0.1002506 0.1111111 
##       421       422       423       424       425       426       427 
## 0.1002506 0.1002506 0.1002506 0.3170732 0.1002506 0.1002506 0.9470588 
##       428       429       430       431       432       433       434 
## 0.9470588 0.1002506 0.1002506 0.3395062 0.7368421 0.9470588 0.1002506 
##       435       436       437       438       439       440       441 
## 0.3395062 0.9470588 0.1111111 0.9470588 0.3395062 0.1002506 0.9470588 
##       442       443       444       445       446       447       448 
## 0.1002506 0.1002506 0.9470588 0.1002506 0.3395062 0.9470588 0.3395062 
##       449       450       451       452       453       454       455 
## 0.7368421 0.3395062 0.3395062 0.1002506 0.3395062 0.3395062 0.1002506 
##       456       457       458       459       460       461       462 
## 0.1002506 0.3395062 0.9470588 0.9470588 0.1002506 0.3395062 0.1002506 
##       463       464       465       466       467       468       469 
## 0.3395062 0.1002506 0.1002506 0.1002506 0.1002506 0.3395062 0.1002506 
##       470       471       472       473       474       475       476 
## 0.7368421 0.1002506 0.1002506 0.9470588 0.9470588 0.7368421 0.3395062 
##       477       478       479       480       481       482       483 
## 0.1002506 0.1002506 0.1002506 0.7368421 0.3395062 0.1002506 0.1002506 
##       484       485       486       487       488       489       490 
## 0.3170732 0.3395062 0.1111111 0.9470588 0.3395062 0.1002506 0.8750000 
##       491       492       493       494       495       496       497 
## 0.1002506 0.1002506 0.3395062 0.3395062 0.1002506 0.1002506 0.9470588 
##       498       499       500       501       502       503       504 
## 0.1002506 0.9470588 0.1002506 0.1002506 0.7368421 0.3170732 0.3170732 
##       505       506       507       508       509       510       511 
## 0.9470588 0.3395062 0.9470588 0.3395062 0.1002506 0.3395062 0.1002506 
##       512       513       514       515       516       517       518 
## 0.1002506 0.3395062 0.9470588 0.1002506 0.3395062 0.9470588 0.1002506 
##       519       520       521       522       523       524       525 
## 0.9470588 0.1002506 0.9470588 0.1002506 0.1002506 0.9470588 0.1002506 
##       526       527       528       529       530       531       532 
## 0.1002506 0.9470588 0.3395062 0.1002506 0.1002506 0.9470588 0.1002506 
##       533       534       535       536       537       538       539 
## 0.1002506 0.7368421 0.3170732 0.9470588 0.3395062 0.9470588 0.1002506 
##       540       541       542       543       544       545       546 
## 0.9470588 0.9470588 0.1111111 0.1111111 0.1002506 0.3395062 0.1002506 
##       547       548       549       550       551       552       553 
## 0.9470588 0.1002506 0.1002506 0.3395062 0.3395062 0.1002506 0.1002506 
##       554       555       556       557       558       559       560 
## 0.1002506 0.7368421 0.3395062 0.9470588 0.3395062 0.9470588 0.3170732 
##       561       562       563       564       565       566       567 
## 0.1002506 0.1002506 0.1002506 0.1002506 0.3170732 0.1002506 0.1002506 
##       568       569       570       571       572       573       574 
## 0.3170732 0.1002506 0.1002506 0.1002506 0.9470588 0.3395062 0.7368421 
##       575       576       577       578       579       580       581 
## 0.1002506 0.1002506 0.9470588 0.9470588 0.3170732 0.1002506 0.9470588 
##       582       583       584       585       586       587       588 
## 0.9470588 0.1002506 0.3395062 0.1002506 0.9470588 0.1002506 0.3395062 
##       589       590       591       592       593       594       595 
## 0.1002506 0.1002506 0.1002506 0.9470588 0.1002506 0.3170732 0.1002506 
##       596       597       598       599       600       601       602 
## 0.1002506 0.9470588 0.1002506 0.1002506 0.3395062 0.9470588 0.1002506 
##       603       604       605       606       607       608       609 
## 0.3395062 0.1002506 0.3395062 0.1002506 0.1002506 0.3395062 0.9470588 
##       610       611       612       613       614       615       616 
## 0.9470588 0.1111111 0.1002506 0.7368421 0.1002506 0.1002506 0.9470588 
##       617       618       619       620       621       622       623 
## 0.1002506 0.3170732 0.9470588 0.1002506 0.1002506 0.3395062 0.1002506 
##       624       625       626       627       628       629       630 
## 0.1002506 0.1002506 0.3395062 0.1002506 0.9470588 0.1002506 0.1002506 
##       631       632       633       634       635       636       637 
## 0.3395062 0.1002506 0.3395062 0.1002506 0.1111111 0.9470588 0.1002506 
##       638       639       640       641       642       643       644 
## 0.1002506 0.1111111 0.1002506 0.1002506 0.9470588 0.1111111 0.3395062 
##       645       646       647       648       649       650       651 
## 0.7368421 0.3395062 0.1002506 0.3395062 0.1002506 0.7368421 0.1002506 
##       652       653       654       655       656       657       658 
## 0.9470588 0.1002506 0.7368421 0.7368421 0.3395062 0.1002506 0.3170732 
##       659       660       661       662       663       664       665 
## 0.1002506 0.3395062 0.3395062 0.1002506 0.1002506 0.1002506 0.1002506 
##       666       667       668       669       670       671       672 
## 0.3395062 0.1002506 0.1002506 0.1002506 0.9470588 0.9470588 0.3395062 
##       673       674       675       676       677       678       679 
## 0.1002506 0.1002506 0.1002506 0.1002506 0.1002506 0.7368421 0.1111111 
##       680       681       682       683       684       685       686 
## 0.3395062 0.3170732 0.3395062 0.1002506 0.3395062 0.3395062 0.3395062 
##       687       688       689       690       691       692       693 
## 0.3395062 0.1002506 0.1002506 0.9470588 0.3395062 0.7368421 0.3395062 
##       694       695       696       697       698       699       700 
## 0.1002506 0.3395062 0.1002506 0.1002506 0.7368421 0.3395062 0.1002506 
##       701       702       703       704       705       706       707 
## 0.9470588 0.3395062 0.7368421 0.1002506 0.1002506 0.1002506 0.9470588 
##       708       709       710       711       712       713       714 
## 0.3395062 0.9470588 0.1002506 0.9470588 0.3395062 0.3395062 0.1002506 
##       715       716       717       718       719       720       721 
## 0.1002506 0.1002506 0.9470588 0.9470588 0.1002506 0.1002506 0.9470588 
##       722       723       724       725       726       727       728 
## 0.1002506 0.1002506 0.1002506 0.3395062 0.1002506 0.9470588 0.7368421 
##       729       730       731       732       733       734       735 
## 0.1002506 0.3170732 0.9470588 0.8750000 0.1002506 0.1002506 0.1002506 
##       736       737       738       739       740       741       742 
## 0.1002506 0.1111111 0.3395062 0.1002506 0.1002506 0.3395062 0.3395062 
##       743       744       745       746       747       748       749 
## 0.9470588 0.1002506 0.1002506 0.3395062 0.1002506 0.9470588 0.3395062 
##       750       751       752       753       754       755       756 
## 0.1002506 0.9470588 0.8750000 0.1002506 0.1002506 0.9470588 0.8750000 
##       757       758       759       760       761       762       763 
## 0.1002506 0.1002506 0.1002506 0.9470588 0.1002506 0.1002506 0.1002506 
##       764       765       766       767       768       769       770 
## 0.9470588 0.1002506 0.9470588 0.3395062 0.3170732 0.1002506 0.1002506 
##       771       772       773       774       775       776       777 
## 0.1002506 0.1002506 0.9470588 0.1002506 0.9470588 0.1002506 0.1002506 
##       778       779       780       781       782       783       784 
## 0.7368421 0.1002506 0.9470588 0.7368421 0.9470588 0.3395062 0.1002506 
##       785       786       787       788       789       790       791 
## 0.1002506 0.1002506 0.7368421 0.3395062 0.8750000 0.3395062 0.1002506 
##       792       793       794       795       796       797       798 
## 0.1002506 0.1111111 0.3395062 0.1002506 0.1002506 0.9470588 0.3170732 
##       799       800       801       802       803       804       805 
## 0.1002506 0.1111111 0.1002506 0.9470588 0.3395062 0.8750000 0.1002506 
##       806       807       808       809       810       811       812 
## 0.1002506 0.1002506 0.7368421 0.1002506 0.9470588 0.1002506 0.1002506 
##       813       814       815       816       817       818       819 
## 0.1002506 0.1111111 0.1002506 0.1002506 0.7368421 0.3395062 0.1002506 
##       820       821       822       823       824       825       826 
## 0.3395062 0.9470588 0.1002506 0.1002506 0.3170732 0.3395062 0.1002506 
##       827       828       829       830       831       832       833 
## 0.3395062 0.3395062 0.1002506 0.9470588 0.7368421 0.8750000 0.1002506 
##       834       835       836       837       838       839       840 
## 0.1002506 0.1002506 0.9470588 0.1002506 0.1002506 0.3395062 0.3395062 
##       841       842       843       844       845       846       847 
## 0.1002506 0.1002506 0.9470588 0.1002506 0.1002506 0.1002506 0.3395062 
##       848       849       850       851       852       853       854 
## 0.1002506 0.3395062 0.9470588 0.3395062 0.1002506 0.7368421 0.9470588 
##       855       856       857       858       859       860       861 
## 0.9470588 0.7368421 0.9470588 0.3395062 0.7368421 0.1002506 0.1002506 
##       862       863       864       865       866       867       868 
## 0.1002506 0.9470588 0.1111111 0.1002506 0.9470588 0.9470588 0.3395062 
##       869       870       871       872       873       874       875 
## 0.1002506 0.8750000 0.1002506 0.9470588 0.1002506 0.1002506 0.9470588 
##       876       877       878       879       880       881       882 
## 0.7368421 0.1002506 0.1002506 0.1002506 0.9470588 0.9470588 0.1002506 
##       883       884       885       886       887       888       889 
## 0.7368421 0.1002506 0.1002506 0.1111111 0.1002506 0.9470588 0.1111111 
##       890       891 
## 0.3395062 0.1002506
mean((y-yhat)^2)
## [1] 0.1291507

c.) THE MSE FOR RANDOM FOREST IS 0.1261627. Also, I found it interesting that Sex was the most“important” variable in the Titanic Dataset.

train<-titanic[1:450,]
test<-titanic[451:891,]

library(randomForest)
## Warning: package 'randomForest' was built under R version 3.3.2
## randomForest 4.6-12
## Type rfNews() to see new features/changes/bug fixes.
titanic_RF <-randomForest(Survived ~ Pclass + Sex + Age + SibSp + Fare,data=train,importance=TRUE)
## Warning in randomForest.default(m, y, ...): The response has five or fewer
## unique values. Are you sure you want to do regression?
plot(titanic_RF)

varImpPlot(titanic_RF)

predicted_Survived<-predict(titanic_RF, newdata=test, OOB=T)
mean((predicted_Survived-test$Survived)^2)
## [1] 0.1264915