Background

Using devices such as Jawbone Up, Nike FuelBand, and Fitbit it is now possible to collect a large amount of data about personal activity relatively inexpensively. These type of devices are part of the quantified self movement – a group of enthusiasts who take measurements about themselves regularly to improve their health, to find patterns in their behavior, or because they are tech geeks. One thing that people regularly do is quantify how much of a particular activity they do, but they rarely quantify how well they do it. In this project, your goal will be to use data from accelerometers on the belt, forearm, arm, and dumbell of 6 participants. They were asked to perform barbell lifts correctly and incorrectly in 5 different ways. More information is available from the website here: http://groupware.les.inf.puc-rio.br/har (see the section on the Weight Lifting Exercise Dataset).

Data

The training data for this project are available here:

https://d396qusza40orc.cloudfront.net/predmachlearn/pml-training.csv

The test data are available here:

https://d396qusza40orc.cloudfront.net/predmachlearn/pml-testing.csv

The data for this project come from this source: http://groupware.les.inf.puc-rio.br/har.

Download training and testing data

Zero Variance Data

Removing variables with zero variance data.

nearzero <- nearZeroVar(pml.train, saveMetrics = TRUE)
pml.train <- pml.train[, !nearzero$nzv]

First seven variables are related to Id, User Name, row and timestamp data, which are not required for prediction.

pml.train<-pml.train[,-(1:7)]
pml.test<-pml.test[,-(1:7)]

Splitting data

Splitting training data into training and testing. Also creating a validation set from the new training set.

Testing set will be used once to verify the model.

pml.train<-pml.train[,colSums(is.na(pml.train)) == 0]


# Partition train into train and test
iftrain <- createDataPartition(pml.train$classe, p=0.7, list = FALSE)
training <- pml.train[c(iftrain), ]
testing <- pml.train[-iftrain, ]

Preprocessing data

n<-ncol(training)-1

preObj <- preProcess(training[,1:n], method = c("knnImpute"))

training[,1:n] <- predict(preObj, training[,1:n])
testing[,1:n] <- predict(preObj, testing[,1:n])

Model Specification

7 fold cross validation in order to avoid overfitting.

tc <- trainControl(method = "cv", number = 7, verboseIter=FALSE , preProcOptions="pca", allowParallel=TRUE)

RPART Model

Random Forest

GBM Model

## Loading required package: gbm
## Loading required package: survival
## 
## Attaching package: 'survival'
## The following object is masked from 'package:caret':
## 
##     cluster
## Loading required package: splines
## Loading required package: parallel
## Loaded gbm 2.1.3
## Loading required package: plyr
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        1.6094             nan     0.1000    0.1162
##      2        1.5362             nan     0.1000    0.0805
##      3        1.4862             nan     0.1000    0.0637
##      4        1.4474             nan     0.1000    0.0485
##      5        1.4170             nan     0.1000    0.0434
##      6        1.3888             nan     0.1000    0.0423
##      7        1.3621             nan     0.1000    0.0388
##      8        1.3382             nan     0.1000    0.0345
##      9        1.3160             nan     0.1000    0.0323
##     10        1.2951             nan     0.1000    0.0286
##     20        1.1476             nan     0.1000    0.0181
##     40        0.9753             nan     0.1000    0.0089
##     60        0.8665             nan     0.1000    0.0074
##     80        0.7825             nan     0.1000    0.0050
##    100        0.7180             nan     0.1000    0.0035
##    120        0.6654             nan     0.1000    0.0038
##    140        0.6176             nan     0.1000    0.0020
##    150        0.5980             nan     0.1000    0.0022
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        1.6094             nan     0.1000    0.1679
##      2        1.5032             nan     0.1000    0.1199
##      3        1.4279             nan     0.1000    0.1017
##      4        1.3648             nan     0.1000    0.0751
##      5        1.3169             nan     0.1000    0.0675
##      6        1.2742             nan     0.1000    0.0606
##      7        1.2362             nan     0.1000    0.0513
##      8        1.2038             nan     0.1000    0.0549
##      9        1.1704             nan     0.1000    0.0411
##     10        1.1440             nan     0.1000    0.0382
##     20        0.9463             nan     0.1000    0.0202
##     40        0.7153             nan     0.1000    0.0092
##     60        0.5822             nan     0.1000    0.0065
##     80        0.4896             nan     0.1000    0.0068
##    100        0.4210             nan     0.1000    0.0050
##    120        0.3660             nan     0.1000    0.0029
##    140        0.3235             nan     0.1000    0.0025
##    150        0.3034             nan     0.1000    0.0033
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        1.6094             nan     0.1000    0.2197
##      2        1.4712             nan     0.1000    0.1522
##      3        1.3767             nan     0.1000    0.1183
##      4        1.3037             nan     0.1000    0.1032
##      5        1.2400             nan     0.1000    0.0827
##      6        1.1890             nan     0.1000    0.0780
##      7        1.1409             nan     0.1000    0.0662
##      8        1.0998             nan     0.1000    0.0570
##      9        1.0646             nan     0.1000    0.0510
##     10        1.0327             nan     0.1000    0.0449
##     20        0.8010             nan     0.1000    0.0274
##     40        0.5585             nan     0.1000    0.0109
##     60        0.4299             nan     0.1000    0.0073
##     80        0.3423             nan     0.1000    0.0041
##    100        0.2826             nan     0.1000    0.0040
##    120        0.2354             nan     0.1000    0.0038
##    140        0.2006             nan     0.1000    0.0014
##    150        0.1873             nan     0.1000    0.0017
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        1.6094             nan     0.1000    0.1137
##      2        1.5367             nan     0.1000    0.0794
##      3        1.4884             nan     0.1000    0.0628
##      4        1.4504             nan     0.1000    0.0461
##      5        1.4214             nan     0.1000    0.0452
##      6        1.3924             nan     0.1000    0.0409
##      7        1.3656             nan     0.1000    0.0374
##      8        1.3425             nan     0.1000    0.0331
##      9        1.3208             nan     0.1000    0.0321
##     10        1.3002             nan     0.1000    0.0292
##     20        1.1564             nan     0.1000    0.0175
##     40        0.9855             nan     0.1000    0.0116
##     60        0.8734             nan     0.1000    0.0061
##     80        0.7891             nan     0.1000    0.0072
##    100        0.7205             nan     0.1000    0.0030
##    120        0.6668             nan     0.1000    0.0030
##    140        0.6178             nan     0.1000    0.0026
##    150        0.5972             nan     0.1000    0.0030
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        1.6094             nan     0.1000    0.1697
##      2        1.5025             nan     0.1000    0.1230
##      3        1.4269             nan     0.1000    0.0961
##      4        1.3663             nan     0.1000    0.0767
##      5        1.3188             nan     0.1000    0.0678
##      6        1.2775             nan     0.1000    0.0669
##      7        1.2358             nan     0.1000    0.0543
##      8        1.2018             nan     0.1000    0.0501
##      9        1.1703             nan     0.1000    0.0510
##     10        1.1392             nan     0.1000    0.0384
##     20        0.9452             nan     0.1000    0.0181
##     40        0.7281             nan     0.1000    0.0098
##     60        0.5855             nan     0.1000    0.0082
##     80        0.4891             nan     0.1000    0.0068
##    100        0.4222             nan     0.1000    0.0037
##    120        0.3644             nan     0.1000    0.0035
##    140        0.3214             nan     0.1000    0.0014
##    150        0.3053             nan     0.1000    0.0026
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        1.6094             nan     0.1000    0.2212
##      2        1.4729             nan     0.1000    0.1511
##      3        1.3779             nan     0.1000    0.1145
##      4        1.3061             nan     0.1000    0.0944
##      5        1.2479             nan     0.1000    0.0889
##      6        1.1920             nan     0.1000    0.0670
##      7        1.1497             nan     0.1000    0.0627
##      8        1.1105             nan     0.1000    0.0622
##      9        1.0714             nan     0.1000    0.0552
##     10        1.0360             nan     0.1000    0.0431
##     20        0.8058             nan     0.1000    0.0290
##     40        0.5616             nan     0.1000    0.0144
##     60        0.4243             nan     0.1000    0.0057
##     80        0.3441             nan     0.1000    0.0038
##    100        0.2824             nan     0.1000    0.0017
##    120        0.2391             nan     0.1000    0.0030
##    140        0.2009             nan     0.1000    0.0022
##    150        0.1877             nan     0.1000    0.0007
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        1.6094             nan     0.1000    0.1112
##      2        1.5367             nan     0.1000    0.0766
##      3        1.4885             nan     0.1000    0.0607
##      4        1.4503             nan     0.1000    0.0485
##      5        1.4194             nan     0.1000    0.0435
##      6        1.3910             nan     0.1000    0.0419
##      7        1.3656             nan     0.1000    0.0355
##      8        1.3427             nan     0.1000    0.0322
##      9        1.3208             nan     0.1000    0.0326
##     10        1.3001             nan     0.1000    0.0297
##     20        1.1554             nan     0.1000    0.0178
##     40        0.9830             nan     0.1000    0.0091
##     60        0.8715             nan     0.1000    0.0065
##     80        0.7882             nan     0.1000    0.0036
##    100        0.7231             nan     0.1000    0.0042
##    120        0.6673             nan     0.1000    0.0032
##    140        0.6232             nan     0.1000    0.0024
##    150        0.6017             nan     0.1000    0.0025
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        1.6094             nan     0.1000    0.1757
##      2        1.5012             nan     0.1000    0.1181
##      3        1.4287             nan     0.1000    0.0999
##      4        1.3664             nan     0.1000    0.0773
##      5        1.3186             nan     0.1000    0.0676
##      6        1.2757             nan     0.1000    0.0619
##      7        1.2362             nan     0.1000    0.0511
##      8        1.2037             nan     0.1000    0.0565
##      9        1.1696             nan     0.1000    0.0443
##     10        1.1420             nan     0.1000    0.0468
##     20        0.9431             nan     0.1000    0.0204
##     40        0.7135             nan     0.1000    0.0095
##     60        0.5731             nan     0.1000    0.0082
##     80        0.4817             nan     0.1000    0.0052
##    100        0.4134             nan     0.1000    0.0036
##    120        0.3601             nan     0.1000    0.0036
##    140        0.3191             nan     0.1000    0.0030
##    150        0.3005             nan     0.1000    0.0020
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        1.6094             nan     0.1000    0.2222
##      2        1.4743             nan     0.1000    0.1479
##      3        1.3803             nan     0.1000    0.1178
##      4        1.3077             nan     0.1000    0.1006
##      5        1.2452             nan     0.1000    0.0876
##      6        1.1928             nan     0.1000    0.0664
##      7        1.1507             nan     0.1000    0.0698
##      8        1.1060             nan     0.1000    0.0579
##      9        1.0696             nan     0.1000    0.0572
##     10        1.0345             nan     0.1000    0.0451
##     20        0.7996             nan     0.1000    0.0302
##     40        0.5590             nan     0.1000    0.0118
##     60        0.4263             nan     0.1000    0.0065
##     80        0.3379             nan     0.1000    0.0028
##    100        0.2784             nan     0.1000    0.0024
##    120        0.2352             nan     0.1000    0.0017
##    140        0.2018             nan     0.1000    0.0019
##    150        0.1871             nan     0.1000    0.0015
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        1.6094             nan     0.1000    0.1159
##      2        1.5364             nan     0.1000    0.0790
##      3        1.4861             nan     0.1000    0.0602
##      4        1.4490             nan     0.1000    0.0476
##      5        1.4178             nan     0.1000    0.0396
##      6        1.3909             nan     0.1000    0.0413
##      7        1.3648             nan     0.1000    0.0432
##      8        1.3386             nan     0.1000    0.0333
##      9        1.3175             nan     0.1000    0.0314
##     10        1.2967             nan     0.1000    0.0268
##     20        1.1492             nan     0.1000    0.0202
##     40        0.9747             nan     0.1000    0.0080
##     60        0.8641             nan     0.1000    0.0088
##     80        0.7804             nan     0.1000    0.0034
##    100        0.7154             nan     0.1000    0.0032
##    120        0.6636             nan     0.1000    0.0031
##    140        0.6177             nan     0.1000    0.0031
##    150        0.5954             nan     0.1000    0.0018
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        1.6094             nan     0.1000    0.1708
##      2        1.5018             nan     0.1000    0.1247
##      3        1.4239             nan     0.1000    0.0952
##      4        1.3643             nan     0.1000    0.0776
##      5        1.3159             nan     0.1000    0.0651
##      6        1.2750             nan     0.1000    0.0731
##      7        1.2303             nan     0.1000    0.0489
##      8        1.1980             nan     0.1000    0.0557
##      9        1.1643             nan     0.1000    0.0437
##     10        1.1380             nan     0.1000    0.0377
##     20        0.9426             nan     0.1000    0.0233
##     40        0.7083             nan     0.1000    0.0104
##     60        0.5780             nan     0.1000    0.0077
##     80        0.4830             nan     0.1000    0.0061
##    100        0.4114             nan     0.1000    0.0035
##    120        0.3564             nan     0.1000    0.0023
##    140        0.3169             nan     0.1000    0.0025
##    150        0.2995             nan     0.1000    0.0017
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        1.6094             nan     0.1000    0.2136
##      2        1.4751             nan     0.1000    0.1514
##      3        1.3823             nan     0.1000    0.1150
##      4        1.3111             nan     0.1000    0.1002
##      5        1.2491             nan     0.1000    0.0830
##      6        1.1974             nan     0.1000    0.0705
##      7        1.1523             nan     0.1000    0.0833
##      8        1.1018             nan     0.1000    0.0562
##      9        1.0675             nan     0.1000    0.0535
##     10        1.0339             nan     0.1000    0.0490
##     20        0.8066             nan     0.1000    0.0268
##     40        0.5527             nan     0.1000    0.0104
##     60        0.4223             nan     0.1000    0.0085
##     80        0.3362             nan     0.1000    0.0041
##    100        0.2770             nan     0.1000    0.0025
##    120        0.2308             nan     0.1000    0.0012
##    140        0.1965             nan     0.1000    0.0014
##    150        0.1822             nan     0.1000    0.0016
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        1.6094             nan     0.1000    0.1169
##      2        1.5360             nan     0.1000    0.0794
##      3        1.4874             nan     0.1000    0.0611
##      4        1.4493             nan     0.1000    0.0519
##      5        1.4169             nan     0.1000    0.0439
##      6        1.3886             nan     0.1000    0.0423
##      7        1.3619             nan     0.1000    0.0399
##      8        1.3363             nan     0.1000    0.0315
##      9        1.3162             nan     0.1000    0.0301
##     10        1.2972             nan     0.1000    0.0319
##     20        1.1507             nan     0.1000    0.0161
##     40        0.9784             nan     0.1000    0.0104
##     60        0.8678             nan     0.1000    0.0082
##     80        0.7845             nan     0.1000    0.0043
##    100        0.7187             nan     0.1000    0.0043
##    120        0.6634             nan     0.1000    0.0022
##    140        0.6191             nan     0.1000    0.0036
##    150        0.5991             nan     0.1000    0.0030
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        1.6094             nan     0.1000    0.1604
##      2        1.5031             nan     0.1000    0.1219
##      3        1.4276             nan     0.1000    0.0952
##      4        1.3688             nan     0.1000    0.0822
##      5        1.3184             nan     0.1000    0.0674
##      6        1.2757             nan     0.1000    0.0662
##      7        1.2335             nan     0.1000    0.0613
##      8        1.1965             nan     0.1000    0.0549
##      9        1.1630             nan     0.1000    0.0430
##     10        1.1357             nan     0.1000    0.0449
##     20        0.9360             nan     0.1000    0.0237
##     40        0.7027             nan     0.1000    0.0130
##     60        0.5727             nan     0.1000    0.0058
##     80        0.4780             nan     0.1000    0.0060
##    100        0.4124             nan     0.1000    0.0037
##    120        0.3597             nan     0.1000    0.0024
##    140        0.3184             nan     0.1000    0.0022
##    150        0.2995             nan     0.1000    0.0020
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        1.6094             nan     0.1000    0.2163
##      2        1.4745             nan     0.1000    0.1531
##      3        1.3788             nan     0.1000    0.1114
##      4        1.3097             nan     0.1000    0.1091
##      5        1.2439             nan     0.1000    0.0869
##      6        1.1901             nan     0.1000    0.0740
##      7        1.1446             nan     0.1000    0.0688
##      8        1.1021             nan     0.1000    0.0548
##      9        1.0674             nan     0.1000    0.0496
##     10        1.0366             nan     0.1000    0.0547
##     20        0.7952             nan     0.1000    0.0232
##     40        0.5464             nan     0.1000    0.0098
##     60        0.4215             nan     0.1000    0.0056
##     80        0.3320             nan     0.1000    0.0055
##    100        0.2759             nan     0.1000    0.0023
##    120        0.2308             nan     0.1000    0.0023
##    140        0.1975             nan     0.1000    0.0015
##    150        0.1826             nan     0.1000    0.0011
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        1.6094             nan     0.1000    0.1174
##      2        1.5363             nan     0.1000    0.0788
##      3        1.4870             nan     0.1000    0.0594
##      4        1.4478             nan     0.1000    0.0519
##      5        1.4161             nan     0.1000    0.0367
##      6        1.3918             nan     0.1000    0.0420
##      7        1.3647             nan     0.1000    0.0405
##      8        1.3399             nan     0.1000    0.0329
##      9        1.3187             nan     0.1000    0.0313
##     10        1.3001             nan     0.1000    0.0294
##     20        1.1524             nan     0.1000    0.0159
##     40        0.9790             nan     0.1000    0.0105
##     60        0.8656             nan     0.1000    0.0057
##     80        0.7835             nan     0.1000    0.0046
##    100        0.7187             nan     0.1000    0.0038
##    120        0.6653             nan     0.1000    0.0026
##    140        0.6193             nan     0.1000    0.0015
##    150        0.5993             nan     0.1000    0.0030
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        1.6094             nan     0.1000    0.1708
##      2        1.5000             nan     0.1000    0.1174
##      3        1.4279             nan     0.1000    0.0988
##      4        1.3669             nan     0.1000    0.0718
##      5        1.3207             nan     0.1000    0.0741
##      6        1.2746             nan     0.1000    0.0680
##      7        1.2331             nan     0.1000    0.0517
##      8        1.2007             nan     0.1000    0.0562
##      9        1.1668             nan     0.1000    0.0474
##     10        1.1379             nan     0.1000    0.0471
##     20        0.9424             nan     0.1000    0.0255
##     40        0.7147             nan     0.1000    0.0136
##     60        0.5835             nan     0.1000    0.0096
##     80        0.4882             nan     0.1000    0.0047
##    100        0.4177             nan     0.1000    0.0029
##    120        0.3623             nan     0.1000    0.0030
##    140        0.3222             nan     0.1000    0.0024
##    150        0.3018             nan     0.1000    0.0026
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        1.6094             nan     0.1000    0.2234
##      2        1.4707             nan     0.1000    0.1499
##      3        1.3780             nan     0.1000    0.1148
##      4        1.3072             nan     0.1000    0.0960
##      5        1.2470             nan     0.1000    0.0838
##      6        1.1942             nan     0.1000    0.0781
##      7        1.1467             nan     0.1000    0.0677
##      8        1.1052             nan     0.1000    0.0704
##      9        1.0616             nan     0.1000    0.0439
##     10        1.0324             nan     0.1000    0.0553
##     20        0.8032             nan     0.1000    0.0245
##     40        0.5561             nan     0.1000    0.0127
##     60        0.4246             nan     0.1000    0.0083
##     80        0.3447             nan     0.1000    0.0046
##    100        0.2822             nan     0.1000    0.0027
##    120        0.2376             nan     0.1000    0.0032
##    140        0.2012             nan     0.1000    0.0017
##    150        0.1864             nan     0.1000    0.0015
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        1.6094             nan     0.1000    0.1187
##      2        1.5364             nan     0.1000    0.0765
##      3        1.4874             nan     0.1000    0.0607
##      4        1.4498             nan     0.1000    0.0525
##      5        1.4167             nan     0.1000    0.0360
##      6        1.3937             nan     0.1000    0.0436
##      7        1.3670             nan     0.1000    0.0388
##      8        1.3417             nan     0.1000    0.0340
##      9        1.3191             nan     0.1000    0.0312
##     10        1.2997             nan     0.1000    0.0305
##     20        1.1539             nan     0.1000    0.0155
##     40        0.9796             nan     0.1000    0.0090
##     60        0.8713             nan     0.1000    0.0074
##     80        0.7871             nan     0.1000    0.0057
##    100        0.7198             nan     0.1000    0.0026
##    120        0.6657             nan     0.1000    0.0028
##    140        0.6199             nan     0.1000    0.0020
##    150        0.5993             nan     0.1000    0.0029
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        1.6094             nan     0.1000    0.1679
##      2        1.5026             nan     0.1000    0.1194
##      3        1.4282             nan     0.1000    0.0938
##      4        1.3697             nan     0.1000    0.0737
##      5        1.3222             nan     0.1000    0.0705
##      6        1.2792             nan     0.1000    0.0668
##      7        1.2375             nan     0.1000    0.0572
##      8        1.2023             nan     0.1000    0.0471
##      9        1.1728             nan     0.1000    0.0430
##     10        1.1467             nan     0.1000    0.0394
##     20        0.9436             nan     0.1000    0.0293
##     40        0.7178             nan     0.1000    0.0114
##     60        0.5817             nan     0.1000    0.0107
##     80        0.4855             nan     0.1000    0.0057
##    100        0.4163             nan     0.1000    0.0029
##    120        0.3624             nan     0.1000    0.0034
##    140        0.3216             nan     0.1000    0.0025
##    150        0.3023             nan     0.1000    0.0019
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        1.6094             nan     0.1000    0.2184
##      2        1.4736             nan     0.1000    0.1473
##      3        1.3811             nan     0.1000    0.1160
##      4        1.3082             nan     0.1000    0.0999
##      5        1.2478             nan     0.1000    0.0879
##      6        1.1938             nan     0.1000    0.0643
##      7        1.1530             nan     0.1000    0.0761
##      8        1.1068             nan     0.1000    0.0580
##      9        1.0699             nan     0.1000    0.0497
##     10        1.0377             nan     0.1000    0.0446
##     20        0.8056             nan     0.1000    0.0276
##     40        0.5556             nan     0.1000    0.0098
##     60        0.4251             nan     0.1000    0.0091
##     80        0.3391             nan     0.1000    0.0062
##    100        0.2804             nan     0.1000    0.0022
##    120        0.2348             nan     0.1000    0.0029
##    140        0.2025             nan     0.1000    0.0013
##    150        0.1880             nan     0.1000    0.0015
## 
## Iter   TrainDeviance   ValidDeviance   StepSize   Improve
##      1        1.6094             nan     0.1000    0.2175
##      2        1.4770             nan     0.1000    0.1531
##      3        1.3841             nan     0.1000    0.1156
##      4        1.3116             nan     0.1000    0.0968
##      5        1.2515             nan     0.1000    0.0870
##      6        1.1978             nan     0.1000    0.0691
##      7        1.1541             nan     0.1000    0.0755
##      8        1.1075             nan     0.1000    0.0547
##      9        1.0742             nan     0.1000    0.0587
##     10        1.0388             nan     0.1000    0.0429
##     20        0.8070             nan     0.1000    0.0275
##     40        0.5645             nan     0.1000    0.0130
##     60        0.4278             nan     0.1000    0.0079
##     80        0.3423             nan     0.1000    0.0046
##    100        0.2840             nan     0.1000    0.0035
##    120        0.2364             nan     0.1000    0.0029
##    140        0.2034             nan     0.1000    0.0018
##    150        0.1904             nan     0.1000    0.0016

Accuracy on training set

model <- c("RPART", "Random Forest","GBM")
Accuracy <- c(max(rpart1$results$Accuracy),
        confusionMatrix(rf1$predicted, training$classe)[3][[1]][[1]],
        max(gbm1$results$Accuracy))
        

performance <- cbind(model,Accuracy)

print(performance)
##      model           Accuracy           
## [1,] "RPART"         "0.502153986630685"
## [2,] "Random Forest" "0.994394700444056"
## [3,] "GBM"           "0.957560841788316"

Accuracy on testing set

rpart1.pred <- predict(rpart1, newdata = testing)
rf1.pred <- predict(rf1, newdata = testing)
gbm1.pred <- predict(gbm1, newdata = testing)
model <- c("RPART", "Random Forest","GBM")
Accuracy <- c(confusionMatrix(rpart1.pred, testing$classe)[3][[1]][[1]],
        confusionMatrix(rf1.pred, testing$classe)[3][[1]][[1]],
        confusionMatrix(gbm1.pred, testing$classe)[3][[1]][[1]])
        
performance <- cbind(model,Accuracy)

print(performance)
##      model           Accuracy           
## [1,] "RPART"         "0.488190314358539"
## [2,] "Random Forest" "0.995921835174172"
## [3,] "GBM"           "0.962107051826678"

Model Selection and predicting on the test data

Looking at accuracy on both training and testing data, Random Forest has generated has the best model.

Final Submission on the testing dataset

names <- colnames(training)
names <- names[names %in% "classe" == FALSE]
pml.test<-pml.test[,names]
pml.test[,1:n] <- predict(preObj, pml.test[,1:n])
pred_test <- predict(rf1, newdata = pml.test)
print(pred_test)
##  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 
##  B  A  B  A  A  E  D  B  A  A  B  C  B  A  E  E  A  B  B  B 
## Levels: A B C D E