This markdown file outlines the process for selecting and building the optimal model on 20 test cases from the data “Weight Lifting Exercises Dataset” available at http://groupware.les.inf.puc-rio.br/har
1. Read the Training and Test data sources from the links provided
## Download and read raw data
url1 <- "http://d396qusza40orc.cloudfront.net/predmachlearn/pml-training.csv"
download.file(url1, destfile="pml-training.csv")
url2 <- "http://d396qusza40orc.cloudfront.net/predmachlearn/pml-testing.csv"
download.file(url2, destfile="pml-testing.csv")
Train <- read.csv("pml-training.csv", header=TRUE)
Test <- read.csv("pml-testing.csv", header=TRUE)
str(Train)
## 'data.frame': 19622 obs. of 160 variables:
## $ X : int 1 2 3 4 5 6 7 8 9 10 ...
## $ user_name : Factor w/ 6 levels "adelmo","carlitos",..: 2 2 2 2 2 2 2 2 2 2 ...
## $ raw_timestamp_part_1 : int 1323084231 1323084231 1323084231 1323084232 1323084232 1323084232 1323084232 1323084232 1323084232 1323084232 ...
## $ raw_timestamp_part_2 : int 788290 808298 820366 120339 196328 304277 368296 440390 484323 484434 ...
## $ cvtd_timestamp : Factor w/ 20 levels "02/12/2011 13:32",..: 9 9 9 9 9 9 9 9 9 9 ...
## $ new_window : Factor w/ 2 levels "no","yes": 1 1 1 1 1 1 1 1 1 1 ...
## $ num_window : int 11 11 11 12 12 12 12 12 12 12 ...
## $ roll_belt : num 1.41 1.41 1.42 1.48 1.48 1.45 1.42 1.42 1.43 1.45 ...
## $ pitch_belt : num 8.07 8.07 8.07 8.05 8.07 8.06 8.09 8.13 8.16 8.17 ...
## $ yaw_belt : num -94.4 -94.4 -94.4 -94.4 -94.4 -94.4 -94.4 -94.4 -94.4 -94.4 ...
## $ total_accel_belt : int 3 3 3 3 3 3 3 3 3 3 ...
## $ kurtosis_roll_belt : Factor w/ 397 levels "","-0.016850",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ kurtosis_picth_belt : Factor w/ 317 levels "","-0.021887",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ kurtosis_yaw_belt : Factor w/ 2 levels "","#DIV/0!": 1 1 1 1 1 1 1 1 1 1 ...
## $ skewness_roll_belt : Factor w/ 395 levels "","-0.003095",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ skewness_roll_belt.1 : Factor w/ 338 levels "","-0.005928",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ skewness_yaw_belt : Factor w/ 2 levels "","#DIV/0!": 1 1 1 1 1 1 1 1 1 1 ...
## $ max_roll_belt : num NA NA NA NA NA NA NA NA NA NA ...
## $ max_picth_belt : int NA NA NA NA NA NA NA NA NA NA ...
## $ max_yaw_belt : Factor w/ 68 levels "","-0.1","-0.2",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ min_roll_belt : num NA NA NA NA NA NA NA NA NA NA ...
## $ min_pitch_belt : int NA NA NA NA NA NA NA NA NA NA ...
## $ min_yaw_belt : Factor w/ 68 levels "","-0.1","-0.2",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ amplitude_roll_belt : num NA NA NA NA NA NA NA NA NA NA ...
## $ amplitude_pitch_belt : int NA NA NA NA NA NA NA NA NA NA ...
## $ amplitude_yaw_belt : Factor w/ 4 levels "","#DIV/0!","0.00",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ var_total_accel_belt : num NA NA NA NA NA NA NA NA NA NA ...
## $ avg_roll_belt : num NA NA NA NA NA NA NA NA NA NA ...
## $ stddev_roll_belt : num NA NA NA NA NA NA NA NA NA NA ...
## $ var_roll_belt : num NA NA NA NA NA NA NA NA NA NA ...
## $ avg_pitch_belt : num NA NA NA NA NA NA NA NA NA NA ...
## $ stddev_pitch_belt : num NA NA NA NA NA NA NA NA NA NA ...
## $ var_pitch_belt : num NA NA NA NA NA NA NA NA NA NA ...
## $ avg_yaw_belt : num NA NA NA NA NA NA NA NA NA NA ...
## $ stddev_yaw_belt : num NA NA NA NA NA NA NA NA NA NA ...
## $ var_yaw_belt : num NA NA NA NA NA NA NA NA NA NA ...
## $ gyros_belt_x : num 0 0.02 0 0.02 0.02 0.02 0.02 0.02 0.02 0.03 ...
## $ gyros_belt_y : num 0 0 0 0 0.02 0 0 0 0 0 ...
## $ gyros_belt_z : num -0.02 -0.02 -0.02 -0.03 -0.02 -0.02 -0.02 -0.02 -0.02 0 ...
## $ accel_belt_x : int -21 -22 -20 -22 -21 -21 -22 -22 -20 -21 ...
## $ accel_belt_y : int 4 4 5 3 2 4 3 4 2 4 ...
## $ accel_belt_z : int 22 22 23 21 24 21 21 21 24 22 ...
## $ magnet_belt_x : int -3 -7 -2 -6 -6 0 -4 -2 1 -3 ...
## $ magnet_belt_y : int 599 608 600 604 600 603 599 603 602 609 ...
## $ magnet_belt_z : int -313 -311 -305 -310 -302 -312 -311 -313 -312 -308 ...
## $ roll_arm : num -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 ...
## $ pitch_arm : num 22.5 22.5 22.5 22.1 22.1 22 21.9 21.8 21.7 21.6 ...
## $ yaw_arm : num -161 -161 -161 -161 -161 -161 -161 -161 -161 -161 ...
## $ total_accel_arm : int 34 34 34 34 34 34 34 34 34 34 ...
## $ var_accel_arm : num NA NA NA NA NA NA NA NA NA NA ...
## $ avg_roll_arm : num NA NA NA NA NA NA NA NA NA NA ...
## $ stddev_roll_arm : num NA NA NA NA NA NA NA NA NA NA ...
## $ var_roll_arm : num NA NA NA NA NA NA NA NA NA NA ...
## $ avg_pitch_arm : num NA NA NA NA NA NA NA NA NA NA ...
## $ stddev_pitch_arm : num NA NA NA NA NA NA NA NA NA NA ...
## $ var_pitch_arm : num NA NA NA NA NA NA NA NA NA NA ...
## $ avg_yaw_arm : num NA NA NA NA NA NA NA NA NA NA ...
## $ stddev_yaw_arm : num NA NA NA NA NA NA NA NA NA NA ...
## $ var_yaw_arm : num NA NA NA NA NA NA NA NA NA NA ...
## $ gyros_arm_x : num 0 0.02 0.02 0.02 0 0.02 0 0.02 0.02 0.02 ...
## $ gyros_arm_y : num 0 -0.02 -0.02 -0.03 -0.03 -0.03 -0.03 -0.02 -0.03 -0.03 ...
## $ gyros_arm_z : num -0.02 -0.02 -0.02 0.02 0 0 0 0 -0.02 -0.02 ...
## $ accel_arm_x : int -288 -290 -289 -289 -289 -289 -289 -289 -288 -288 ...
## $ accel_arm_y : int 109 110 110 111 111 111 111 111 109 110 ...
## $ accel_arm_z : int -123 -125 -126 -123 -123 -122 -125 -124 -122 -124 ...
## $ magnet_arm_x : int -368 -369 -368 -372 -374 -369 -373 -372 -369 -376 ...
## $ magnet_arm_y : int 337 337 344 344 337 342 336 338 341 334 ...
## $ magnet_arm_z : int 516 513 513 512 506 513 509 510 518 516 ...
## $ kurtosis_roll_arm : Factor w/ 330 levels "","-0.02438",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ kurtosis_picth_arm : Factor w/ 328 levels "","-0.00484",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ kurtosis_yaw_arm : Factor w/ 395 levels "","-0.01548",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ skewness_roll_arm : Factor w/ 331 levels "","-0.00051",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ skewness_pitch_arm : Factor w/ 328 levels "","-0.00184",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ skewness_yaw_arm : Factor w/ 395 levels "","-0.00311",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ max_roll_arm : num NA NA NA NA NA NA NA NA NA NA ...
## $ max_picth_arm : num NA NA NA NA NA NA NA NA NA NA ...
## $ max_yaw_arm : int NA NA NA NA NA NA NA NA NA NA ...
## $ min_roll_arm : num NA NA NA NA NA NA NA NA NA NA ...
## $ min_pitch_arm : num NA NA NA NA NA NA NA NA NA NA ...
## $ min_yaw_arm : int NA NA NA NA NA NA NA NA NA NA ...
## $ amplitude_roll_arm : num NA NA NA NA NA NA NA NA NA NA ...
## $ amplitude_pitch_arm : num NA NA NA NA NA NA NA NA NA NA ...
## $ amplitude_yaw_arm : int NA NA NA NA NA NA NA NA NA NA ...
## $ roll_dumbbell : num 13.1 13.1 12.9 13.4 13.4 ...
## $ pitch_dumbbell : num -70.5 -70.6 -70.3 -70.4 -70.4 ...
## $ yaw_dumbbell : num -84.9 -84.7 -85.1 -84.9 -84.9 ...
## $ kurtosis_roll_dumbbell : Factor w/ 398 levels "","-0.0035","-0.0073",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ kurtosis_picth_dumbbell : Factor w/ 401 levels "","-0.0163","-0.0233",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ kurtosis_yaw_dumbbell : Factor w/ 2 levels "","#DIV/0!": 1 1 1 1 1 1 1 1 1 1 ...
## $ skewness_roll_dumbbell : Factor w/ 401 levels "","-0.0082","-0.0096",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ skewness_pitch_dumbbell : Factor w/ 402 levels "","-0.0053","-0.0084",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ skewness_yaw_dumbbell : Factor w/ 2 levels "","#DIV/0!": 1 1 1 1 1 1 1 1 1 1 ...
## $ max_roll_dumbbell : num NA NA NA NA NA NA NA NA NA NA ...
## $ max_picth_dumbbell : num NA NA NA NA NA NA NA NA NA NA ...
## $ max_yaw_dumbbell : Factor w/ 73 levels "","-0.1","-0.2",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ min_roll_dumbbell : num NA NA NA NA NA NA NA NA NA NA ...
## $ min_pitch_dumbbell : num NA NA NA NA NA NA NA NA NA NA ...
## $ min_yaw_dumbbell : Factor w/ 73 levels "","-0.1","-0.2",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ amplitude_roll_dumbbell : num NA NA NA NA NA NA NA NA NA NA ...
## [list output truncated]
Exploratory analysis are performed on the Train set only, not on the Test set.It is determined that there are 19622 observations, consisting of 160 variables.
Quite a few variables in the data set contain values such as NA or are missing data. An example of such a varible is called out below. We will be excluding these variables from our model due to the lack of valid measurements.
summary(Train$var_total_accel_belt)
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 0.000 0.100 0.200 0.926 0.300 16.500 19216
This reduces the number of variables to 54, including our prediction variable classe.
Tidy <- Train[,-c(grep("^amplitude|^kurtosis|^skewness|^avg|^cvtd_timestamp|^max|^min|^new_window|^raw_timestamp|^stddev|^var|^user_name|X",names(Train)))]
paste("Complete Cases:")
## [1] "Complete Cases:"
table(complete.cases(Tidy))
##
## TRUE
## 19622
The data is further segregated into two sets, 60% for the training set and 40% for the test set. Also we set the seed for reproducability.
library(caret)
## Loading required package: lattice
## Loading required package: ggplot2
set.seed(22)
inTrain <- createDataPartition(y=Tidy$classe,
p=0.6,list=FALSE)
TidyTrain <- Tidy[inTrain,]
TidyTest <- Tidy[-inTrain,]
We will be using the random forest and gradient boosting algorithms for comparison because these two models are the recommended and most accurate for our purposes.We use Kappa as the comparison criteria, and reduce the risk of overfitting by using a 10-fold cross validation.
set.seed(22)
# k-fold validation - 10-fold validation, use kappa as metric
fitControl <- trainControl(method = "cv", number = 10)
gbmFit <- train(classe~., data=TidyTrain, method="gbm", metric="Kappa", trControl=fitControl)
## 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.1
## Loading required package: plyr
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 1.6094 nan 0.1000 0.1339
## 2 1.5204 nan 0.1000 0.0893
## 3 1.4599 nan 0.1000 0.0709
## 4 1.4140 nan 0.1000 0.0520
## 5 1.3785 nan 0.1000 0.0524
## 6 1.3441 nan 0.1000 0.0393
## 7 1.3181 nan 0.1000 0.0403
## 8 1.2924 nan 0.1000 0.0306
## 9 1.2712 nan 0.1000 0.0362
## 10 1.2451 nan 0.1000 0.0316
## 20 1.0817 nan 0.1000 0.0211
## 40 0.8994 nan 0.1000 0.0089
## 60 0.7860 nan 0.1000 0.0061
## 80 0.7050 nan 0.1000 0.0032
## 100 0.6423 nan 0.1000 0.0031
## 120 0.5880 nan 0.1000 0.0035
## 140 0.5422 nan 0.1000 0.0028
## 150 0.5214 nan 0.1000 0.0023
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 1.6094 nan 0.1000 0.1949
## 2 1.4836 nan 0.1000 0.1312
## 3 1.3975 nan 0.1000 0.1083
## 4 1.3274 nan 0.1000 0.0907
## 5 1.2696 nan 0.1000 0.0761
## 6 1.2208 nan 0.1000 0.0639
## 7 1.1782 nan 0.1000 0.0665
## 8 1.1365 nan 0.1000 0.0502
## 9 1.1041 nan 0.1000 0.0440
## 10 1.0753 nan 0.1000 0.0490
## 20 0.8503 nan 0.1000 0.0221
## 40 0.6281 nan 0.1000 0.0099
## 60 0.4897 nan 0.1000 0.0114
## 80 0.3956 nan 0.1000 0.0058
## 100 0.3282 nan 0.1000 0.0060
## 120 0.2798 nan 0.1000 0.0025
## 140 0.2366 nan 0.1000 0.0019
## 150 0.2151 nan 0.1000 0.0033
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 1.6094 nan 0.1000 0.2427
## 2 1.4547 nan 0.1000 0.1717
## 3 1.3468 nan 0.1000 0.1264
## 4 1.2656 nan 0.1000 0.1141
## 5 1.1931 nan 0.1000 0.0872
## 6 1.1363 nan 0.1000 0.0925
## 7 1.0797 nan 0.1000 0.0733
## 8 1.0332 nan 0.1000 0.0662
## 9 0.9911 nan 0.1000 0.0628
## 10 0.9515 nan 0.1000 0.0457
## 20 0.6866 nan 0.1000 0.0199
## 40 0.4503 nan 0.1000 0.0125
## 60 0.3221 nan 0.1000 0.0078
## 80 0.2509 nan 0.1000 0.0055
## 100 0.1959 nan 0.1000 0.0053
## 120 0.1537 nan 0.1000 0.0030
## 140 0.1211 nan 0.1000 0.0017
## 150 0.1084 nan 0.1000 0.0005
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 1.6094 nan 0.1000 0.1331
## 2 1.5188 nan 0.1000 0.0914
## 3 1.4587 nan 0.1000 0.0710
## 4 1.4125 nan 0.1000 0.0554
## 5 1.3765 nan 0.1000 0.0512
## 6 1.3435 nan 0.1000 0.0405
## 7 1.3168 nan 0.1000 0.0407
## 8 1.2906 nan 0.1000 0.0310
## 9 1.2706 nan 0.1000 0.0381
## 10 1.2448 nan 0.1000 0.0314
## 20 1.0788 nan 0.1000 0.0179
## 40 0.8954 nan 0.1000 0.0105
## 60 0.7852 nan 0.1000 0.0051
## 80 0.7051 nan 0.1000 0.0048
## 100 0.6419 nan 0.1000 0.0036
## 120 0.5859 nan 0.1000 0.0026
## 140 0.5411 nan 0.1000 0.0031
## 150 0.5198 nan 0.1000 0.0028
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 1.6094 nan 0.1000 0.2000
## 2 1.4820 nan 0.1000 0.1315
## 3 1.3949 nan 0.1000 0.1049
## 4 1.3253 nan 0.1000 0.0920
## 5 1.2682 nan 0.1000 0.0770
## 6 1.2198 nan 0.1000 0.0671
## 7 1.1757 nan 0.1000 0.0514
## 8 1.1405 nan 0.1000 0.0498
## 9 1.1072 nan 0.1000 0.0593
## 10 1.0702 nan 0.1000 0.0423
## 20 0.8398 nan 0.1000 0.0279
## 40 0.6170 nan 0.1000 0.0114
## 60 0.4827 nan 0.1000 0.0079
## 80 0.3894 nan 0.1000 0.0088
## 100 0.3253 nan 0.1000 0.0043
## 120 0.2731 nan 0.1000 0.0042
## 140 0.2295 nan 0.1000 0.0023
## 150 0.2124 nan 0.1000 0.0019
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 1.6094 nan 0.1000 0.2445
## 2 1.4537 nan 0.1000 0.1632
## 3 1.3474 nan 0.1000 0.1254
## 4 1.2669 nan 0.1000 0.1130
## 5 1.1965 nan 0.1000 0.0956
## 6 1.1366 nan 0.1000 0.0783
## 7 1.0871 nan 0.1000 0.0767
## 8 1.0388 nan 0.1000 0.0677
## 9 0.9965 nan 0.1000 0.0612
## 10 0.9580 nan 0.1000 0.0562
## 20 0.7026 nan 0.1000 0.0277
## 40 0.4539 nan 0.1000 0.0122
## 60 0.3289 nan 0.1000 0.0079
## 80 0.2450 nan 0.1000 0.0032
## 100 0.1916 nan 0.1000 0.0037
## 120 0.1514 nan 0.1000 0.0019
## 140 0.1220 nan 0.1000 0.0015
## 150 0.1098 nan 0.1000 0.0010
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 1.6094 nan 0.1000 0.1351
## 2 1.5193 nan 0.1000 0.0912
## 3 1.4590 nan 0.1000 0.0703
## 4 1.4131 nan 0.1000 0.0567
## 5 1.3761 nan 0.1000 0.0444
## 6 1.3466 nan 0.1000 0.0466
## 7 1.3164 nan 0.1000 0.0405
## 8 1.2903 nan 0.1000 0.0363
## 9 1.2658 nan 0.1000 0.0342
## 10 1.2448 nan 0.1000 0.0253
## 20 1.0812 nan 0.1000 0.0184
## 40 0.8980 nan 0.1000 0.0106
## 60 0.7876 nan 0.1000 0.0068
## 80 0.7057 nan 0.1000 0.0035
## 100 0.6411 nan 0.1000 0.0043
## 120 0.5852 nan 0.1000 0.0022
## 140 0.5387 nan 0.1000 0.0019
## 150 0.5196 nan 0.1000 0.0025
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 1.6094 nan 0.1000 0.1987
## 2 1.4819 nan 0.1000 0.1385
## 3 1.3920 nan 0.1000 0.1080
## 4 1.3230 nan 0.1000 0.0894
## 5 1.2661 nan 0.1000 0.0772
## 6 1.2168 nan 0.1000 0.0674
## 7 1.1734 nan 0.1000 0.0614
## 8 1.1346 nan 0.1000 0.0577
## 9 1.0982 nan 0.1000 0.0532
## 10 1.0653 nan 0.1000 0.0465
## 20 0.8384 nan 0.1000 0.0199
## 40 0.6128 nan 0.1000 0.0094
## 60 0.4740 nan 0.1000 0.0093
## 80 0.3861 nan 0.1000 0.0043
## 100 0.3208 nan 0.1000 0.0054
## 120 0.2689 nan 0.1000 0.0018
## 140 0.2325 nan 0.1000 0.0016
## 150 0.2166 nan 0.1000 0.0031
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 1.6094 nan 0.1000 0.2463
## 2 1.4535 nan 0.1000 0.1665
## 3 1.3470 nan 0.1000 0.1305
## 4 1.2646 nan 0.1000 0.1125
## 5 1.1928 nan 0.1000 0.0937
## 6 1.1334 nan 0.1000 0.0777
## 7 1.0841 nan 0.1000 0.0768
## 8 1.0341 nan 0.1000 0.0601
## 9 0.9960 nan 0.1000 0.0814
## 10 0.9476 nan 0.1000 0.0588
## 20 0.6872 nan 0.1000 0.0245
## 40 0.4491 nan 0.1000 0.0136
## 60 0.3298 nan 0.1000 0.0073
## 80 0.2498 nan 0.1000 0.0046
## 100 0.1952 nan 0.1000 0.0022
## 120 0.1555 nan 0.1000 0.0029
## 140 0.1246 nan 0.1000 0.0014
## 150 0.1131 nan 0.1000 0.0006
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 1.6094 nan 0.1000 0.1337
## 2 1.5196 nan 0.1000 0.0914
## 3 1.4606 nan 0.1000 0.0702
## 4 1.4141 nan 0.1000 0.0547
## 5 1.3779 nan 0.1000 0.0496
## 6 1.3448 nan 0.1000 0.0433
## 7 1.3173 nan 0.1000 0.0403
## 8 1.2912 nan 0.1000 0.0325
## 9 1.2694 nan 0.1000 0.0389
## 10 1.2431 nan 0.1000 0.0295
## 20 1.0818 nan 0.1000 0.0178
## 40 0.9000 nan 0.1000 0.0098
## 60 0.7872 nan 0.1000 0.0061
## 80 0.7064 nan 0.1000 0.0033
## 100 0.6437 nan 0.1000 0.0037
## 120 0.5889 nan 0.1000 0.0039
## 140 0.5419 nan 0.1000 0.0022
## 150 0.5207 nan 0.1000 0.0030
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 1.6094 nan 0.1000 0.1955
## 2 1.4813 nan 0.1000 0.1343
## 3 1.3953 nan 0.1000 0.1020
## 4 1.3282 nan 0.1000 0.0902
## 5 1.2701 nan 0.1000 0.0765
## 6 1.2214 nan 0.1000 0.0681
## 7 1.1774 nan 0.1000 0.0578
## 8 1.1395 nan 0.1000 0.0571
## 9 1.1037 nan 0.1000 0.0479
## 10 1.0724 nan 0.1000 0.0455
## 20 0.8479 nan 0.1000 0.0266
## 40 0.6199 nan 0.1000 0.0097
## 60 0.4853 nan 0.1000 0.0070
## 80 0.3954 nan 0.1000 0.0066
## 100 0.3288 nan 0.1000 0.0032
## 120 0.2745 nan 0.1000 0.0015
## 140 0.2344 nan 0.1000 0.0025
## 150 0.2160 nan 0.1000 0.0026
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 1.6094 nan 0.1000 0.2450
## 2 1.4538 nan 0.1000 0.1645
## 3 1.3490 nan 0.1000 0.1249
## 4 1.2693 nan 0.1000 0.1007
## 5 1.2033 nan 0.1000 0.1008
## 6 1.1423 nan 0.1000 0.0783
## 7 1.0913 nan 0.1000 0.0752
## 8 1.0448 nan 0.1000 0.0585
## 9 1.0069 nan 0.1000 0.0586
## 10 0.9694 nan 0.1000 0.0667
## 20 0.6878 nan 0.1000 0.0310
## 40 0.4457 nan 0.1000 0.0121
## 60 0.3188 nan 0.1000 0.0046
## 80 0.2427 nan 0.1000 0.0039
## 100 0.1894 nan 0.1000 0.0050
## 120 0.1473 nan 0.1000 0.0020
## 140 0.1169 nan 0.1000 0.0017
## 150 0.1033 nan 0.1000 0.0014
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 1.6094 nan 0.1000 0.1350
## 2 1.5201 nan 0.1000 0.0903
## 3 1.4604 nan 0.1000 0.0679
## 4 1.4149 nan 0.1000 0.0527
## 5 1.3787 nan 0.1000 0.0523
## 6 1.3440 nan 0.1000 0.0463
## 7 1.3148 nan 0.1000 0.0356
## 8 1.2917 nan 0.1000 0.0393
## 9 1.2678 nan 0.1000 0.0347
## 10 1.2436 nan 0.1000 0.0289
## 20 1.0827 nan 0.1000 0.0152
## 40 0.9006 nan 0.1000 0.0069
## 60 0.7892 nan 0.1000 0.0061
## 80 0.7073 nan 0.1000 0.0051
## 100 0.6430 nan 0.1000 0.0041
## 120 0.5889 nan 0.1000 0.0035
## 140 0.5427 nan 0.1000 0.0028
## 150 0.5217 nan 0.1000 0.0035
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 1.6094 nan 0.1000 0.1994
## 2 1.4818 nan 0.1000 0.1306
## 3 1.3965 nan 0.1000 0.1094
## 4 1.3257 nan 0.1000 0.0874
## 5 1.2682 nan 0.1000 0.0750
## 6 1.2204 nan 0.1000 0.0682
## 7 1.1757 nan 0.1000 0.0562
## 8 1.1388 nan 0.1000 0.0520
## 9 1.1051 nan 0.1000 0.0535
## 10 1.0712 nan 0.1000 0.0430
## 20 0.8419 nan 0.1000 0.0210
## 40 0.6137 nan 0.1000 0.0112
## 60 0.4769 nan 0.1000 0.0067
## 80 0.3921 nan 0.1000 0.0045
## 100 0.3266 nan 0.1000 0.0022
## 120 0.2753 nan 0.1000 0.0027
## 140 0.2355 nan 0.1000 0.0032
## 150 0.2188 nan 0.1000 0.0019
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 1.6094 nan 0.1000 0.2445
## 2 1.4533 nan 0.1000 0.1686
## 3 1.3457 nan 0.1000 0.1371
## 4 1.2597 nan 0.1000 0.1026
## 5 1.1934 nan 0.1000 0.0997
## 6 1.1318 nan 0.1000 0.0702
## 7 1.0862 nan 0.1000 0.0768
## 8 1.0382 nan 0.1000 0.0577
## 9 1.0008 nan 0.1000 0.0636
## 10 0.9594 nan 0.1000 0.0576
## 20 0.6980 nan 0.1000 0.0315
## 40 0.4583 nan 0.1000 0.0132
## 60 0.3324 nan 0.1000 0.0107
## 80 0.2510 nan 0.1000 0.0040
## 100 0.1964 nan 0.1000 0.0044
## 120 0.1573 nan 0.1000 0.0022
## 140 0.1260 nan 0.1000 0.0030
## 150 0.1135 nan 0.1000 0.0012
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 1.6094 nan 0.1000 0.1336
## 2 1.5207 nan 0.1000 0.0894
## 3 1.4610 nan 0.1000 0.0699
## 4 1.4149 nan 0.1000 0.0549
## 5 1.3790 nan 0.1000 0.0447
## 6 1.3495 nan 0.1000 0.0456
## 7 1.3200 nan 0.1000 0.0422
## 8 1.2934 nan 0.1000 0.0389
## 9 1.2668 nan 0.1000 0.0330
## 10 1.2463 nan 0.1000 0.0318
## 20 1.0851 nan 0.1000 0.0208
## 40 0.8999 nan 0.1000 0.0078
## 60 0.7919 nan 0.1000 0.0059
## 80 0.7089 nan 0.1000 0.0045
## 100 0.6444 nan 0.1000 0.0039
## 120 0.5901 nan 0.1000 0.0029
## 140 0.5417 nan 0.1000 0.0024
## 150 0.5213 nan 0.1000 0.0028
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 1.6094 nan 0.1000 0.1913
## 2 1.4854 nan 0.1000 0.1351
## 3 1.3976 nan 0.1000 0.1085
## 4 1.3281 nan 0.1000 0.0943
## 5 1.2673 nan 0.1000 0.0721
## 6 1.2197 nan 0.1000 0.0723
## 7 1.1724 nan 0.1000 0.0529
## 8 1.1373 nan 0.1000 0.0596
## 9 1.1002 nan 0.1000 0.0440
## 10 1.0716 nan 0.1000 0.0506
## 20 0.8424 nan 0.1000 0.0256
## 40 0.6115 nan 0.1000 0.0095
## 60 0.4792 nan 0.1000 0.0085
## 80 0.3910 nan 0.1000 0.0040
## 100 0.3269 nan 0.1000 0.0029
## 120 0.2719 nan 0.1000 0.0027
## 140 0.2325 nan 0.1000 0.0012
## 150 0.2144 nan 0.1000 0.0014
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 1.6094 nan 0.1000 0.2471
## 2 1.4525 nan 0.1000 0.1687
## 3 1.3476 nan 0.1000 0.1280
## 4 1.2648 nan 0.1000 0.1001
## 5 1.2000 nan 0.1000 0.1033
## 6 1.1343 nan 0.1000 0.0788
## 7 1.0835 nan 0.1000 0.0754
## 8 1.0361 nan 0.1000 0.0655
## 9 0.9940 nan 0.1000 0.0582
## 10 0.9576 nan 0.1000 0.0639
## 20 0.6859 nan 0.1000 0.0257
## 40 0.4540 nan 0.1000 0.0109
## 60 0.3262 nan 0.1000 0.0058
## 80 0.2465 nan 0.1000 0.0050
## 100 0.1931 nan 0.1000 0.0023
## 120 0.1519 nan 0.1000 0.0023
## 140 0.1223 nan 0.1000 0.0016
## 150 0.1090 nan 0.1000 0.0012
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 1.6094 nan 0.1000 0.1320
## 2 1.5211 nan 0.1000 0.0893
## 3 1.4624 nan 0.1000 0.0673
## 4 1.4180 nan 0.1000 0.0597
## 5 1.3800 nan 0.1000 0.0510
## 6 1.3463 nan 0.1000 0.0437
## 7 1.3176 nan 0.1000 0.0355
## 8 1.2945 nan 0.1000 0.0385
## 9 1.2680 nan 0.1000 0.0319
## 10 1.2476 nan 0.1000 0.0285
## 20 1.0848 nan 0.1000 0.0194
## 40 0.8983 nan 0.1000 0.0106
## 60 0.7890 nan 0.1000 0.0081
## 80 0.7080 nan 0.1000 0.0054
## 100 0.6432 nan 0.1000 0.0038
## 120 0.5882 nan 0.1000 0.0029
## 140 0.5418 nan 0.1000 0.0025
## 150 0.5211 nan 0.1000 0.0021
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 1.6094 nan 0.1000 0.1984
## 2 1.4809 nan 0.1000 0.1337
## 3 1.3938 nan 0.1000 0.1061
## 4 1.3254 nan 0.1000 0.0907
## 5 1.2684 nan 0.1000 0.0739
## 6 1.2212 nan 0.1000 0.0720
## 7 1.1756 nan 0.1000 0.0600
## 8 1.1367 nan 0.1000 0.0501
## 9 1.1042 nan 0.1000 0.0551
## 10 1.0696 nan 0.1000 0.0470
## 20 0.8435 nan 0.1000 0.0198
## 40 0.6107 nan 0.1000 0.0134
## 60 0.4816 nan 0.1000 0.0101
## 80 0.3912 nan 0.1000 0.0066
## 100 0.3244 nan 0.1000 0.0022
## 120 0.2740 nan 0.1000 0.0019
## 140 0.2331 nan 0.1000 0.0015
## 150 0.2145 nan 0.1000 0.0019
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 1.6094 nan 0.1000 0.2402
## 2 1.4564 nan 0.1000 0.1734
## 3 1.3477 nan 0.1000 0.1276
## 4 1.2662 nan 0.1000 0.1066
## 5 1.1970 nan 0.1000 0.0984
## 6 1.1364 nan 0.1000 0.0856
## 7 1.0816 nan 0.1000 0.0826
## 8 1.0295 nan 0.1000 0.0598
## 9 0.9913 nan 0.1000 0.0574
## 10 0.9537 nan 0.1000 0.0500
## 20 0.6879 nan 0.1000 0.0238
## 40 0.4510 nan 0.1000 0.0114
## 60 0.3320 nan 0.1000 0.0065
## 80 0.2550 nan 0.1000 0.0044
## 100 0.1949 nan 0.1000 0.0034
## 120 0.1555 nan 0.1000 0.0023
## 140 0.1252 nan 0.1000 0.0013
## 150 0.1138 nan 0.1000 0.0015
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 1.6094 nan 0.1000 0.1315
## 2 1.5208 nan 0.1000 0.0897
## 3 1.4599 nan 0.1000 0.0692
## 4 1.4135 nan 0.1000 0.0551
## 5 1.3773 nan 0.1000 0.0460
## 6 1.3469 nan 0.1000 0.0431
## 7 1.3189 nan 0.1000 0.0440
## 8 1.2921 nan 0.1000 0.0297
## 9 1.2715 nan 0.1000 0.0379
## 10 1.2461 nan 0.1000 0.0307
## 20 1.0829 nan 0.1000 0.0179
## 40 0.8976 nan 0.1000 0.0095
## 60 0.7876 nan 0.1000 0.0064
## 80 0.7051 nan 0.1000 0.0067
## 100 0.6391 nan 0.1000 0.0037
## 120 0.5864 nan 0.1000 0.0019
## 140 0.5405 nan 0.1000 0.0030
## 150 0.5189 nan 0.1000 0.0033
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 1.6094 nan 0.1000 0.1964
## 2 1.4825 nan 0.1000 0.1304
## 3 1.3963 nan 0.1000 0.1113
## 4 1.3243 nan 0.1000 0.0843
## 5 1.2673 nan 0.1000 0.0762
## 6 1.2180 nan 0.1000 0.0672
## 7 1.1741 nan 0.1000 0.0540
## 8 1.1391 nan 0.1000 0.0603
## 9 1.1012 nan 0.1000 0.0456
## 10 1.0720 nan 0.1000 0.0483
## 20 0.8431 nan 0.1000 0.0277
## 40 0.6144 nan 0.1000 0.0113
## 60 0.4877 nan 0.1000 0.0044
## 80 0.3917 nan 0.1000 0.0059
## 100 0.3233 nan 0.1000 0.0024
## 120 0.2761 nan 0.1000 0.0023
## 140 0.2383 nan 0.1000 0.0012
## 150 0.2192 nan 0.1000 0.0033
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 1.6094 nan 0.1000 0.2438
## 2 1.4538 nan 0.1000 0.1739
## 3 1.3463 nan 0.1000 0.1361
## 4 1.2602 nan 0.1000 0.1010
## 5 1.1939 nan 0.1000 0.0861
## 6 1.1393 nan 0.1000 0.0811
## 7 1.0875 nan 0.1000 0.0694
## 8 1.0432 nan 0.1000 0.0744
## 9 0.9976 nan 0.1000 0.0760
## 10 0.9524 nan 0.1000 0.0502
## 20 0.6887 nan 0.1000 0.0234
## 40 0.4427 nan 0.1000 0.0109
## 60 0.3276 nan 0.1000 0.0055
## 80 0.2460 nan 0.1000 0.0052
## 100 0.1938 nan 0.1000 0.0021
## 120 0.1539 nan 0.1000 0.0024
## 140 0.1261 nan 0.1000 0.0013
## 150 0.1140 nan 0.1000 0.0016
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 1.6094 nan 0.1000 0.1329
## 2 1.5200 nan 0.1000 0.0928
## 3 1.4581 nan 0.1000 0.0697
## 4 1.4125 nan 0.1000 0.0559
## 5 1.3751 nan 0.1000 0.0486
## 6 1.3438 nan 0.1000 0.0429
## 7 1.3142 nan 0.1000 0.0411
## 8 1.2865 nan 0.1000 0.0358
## 9 1.2636 nan 0.1000 0.0343
## 10 1.2399 nan 0.1000 0.0295
## 20 1.0783 nan 0.1000 0.0179
## 40 0.8983 nan 0.1000 0.0090
## 60 0.7870 nan 0.1000 0.0047
## 80 0.7075 nan 0.1000 0.0060
## 100 0.6410 nan 0.1000 0.0030
## 120 0.5878 nan 0.1000 0.0045
## 140 0.5407 nan 0.1000 0.0025
## 150 0.5199 nan 0.1000 0.0025
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 1.6094 nan 0.1000 0.1964
## 2 1.4842 nan 0.1000 0.1381
## 3 1.3946 nan 0.1000 0.1058
## 4 1.3260 nan 0.1000 0.0941
## 5 1.2658 nan 0.1000 0.0814
## 6 1.2144 nan 0.1000 0.0710
## 7 1.1693 nan 0.1000 0.0620
## 8 1.1292 nan 0.1000 0.0553
## 9 1.0944 nan 0.1000 0.0459
## 10 1.0648 nan 0.1000 0.0515
## 20 0.8370 nan 0.1000 0.0237
## 40 0.6075 nan 0.1000 0.0072
## 60 0.4789 nan 0.1000 0.0159
## 80 0.3866 nan 0.1000 0.0062
## 100 0.3165 nan 0.1000 0.0057
## 120 0.2646 nan 0.1000 0.0022
## 140 0.2261 nan 0.1000 0.0020
## 150 0.2090 nan 0.1000 0.0032
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 1.6094 nan 0.1000 0.2483
## 2 1.4537 nan 0.1000 0.1720
## 3 1.3432 nan 0.1000 0.1284
## 4 1.2613 nan 0.1000 0.1056
## 5 1.1937 nan 0.1000 0.0928
## 6 1.1348 nan 0.1000 0.0871
## 7 1.0786 nan 0.1000 0.0807
## 8 1.0283 nan 0.1000 0.0660
## 9 0.9862 nan 0.1000 0.0674
## 10 0.9445 nan 0.1000 0.0539
## 20 0.6829 nan 0.1000 0.0270
## 40 0.4496 nan 0.1000 0.0097
## 60 0.3279 nan 0.1000 0.0063
## 80 0.2546 nan 0.1000 0.0019
## 100 0.1967 nan 0.1000 0.0027
## 120 0.1528 nan 0.1000 0.0023
## 140 0.1228 nan 0.1000 0.0018
## 150 0.1104 nan 0.1000 0.0011
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 1.6094 nan 0.1000 0.1342
## 2 1.5213 nan 0.1000 0.0922
## 3 1.4614 nan 0.1000 0.0675
## 4 1.4164 nan 0.1000 0.0574
## 5 1.3794 nan 0.1000 0.0461
## 6 1.3491 nan 0.1000 0.0450
## 7 1.3199 nan 0.1000 0.0394
## 8 1.2948 nan 0.1000 0.0365
## 9 1.2713 nan 0.1000 0.0368
## 10 1.2468 nan 0.1000 0.0298
## 20 1.0827 nan 0.1000 0.0170
## 40 0.9012 nan 0.1000 0.0083
## 60 0.7865 nan 0.1000 0.0050
## 80 0.7057 nan 0.1000 0.0058
## 100 0.6405 nan 0.1000 0.0041
## 120 0.5870 nan 0.1000 0.0031
## 140 0.5405 nan 0.1000 0.0024
## 150 0.5206 nan 0.1000 0.0025
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 1.6094 nan 0.1000 0.1918
## 2 1.4827 nan 0.1000 0.1388
## 3 1.3926 nan 0.1000 0.1091
## 4 1.3226 nan 0.1000 0.0846
## 5 1.2675 nan 0.1000 0.0756
## 6 1.2175 nan 0.1000 0.0685
## 7 1.1741 nan 0.1000 0.0663
## 8 1.1335 nan 0.1000 0.0502
## 9 1.1012 nan 0.1000 0.0505
## 10 1.0686 nan 0.1000 0.0388
## 20 0.8429 nan 0.1000 0.0299
## 40 0.6185 nan 0.1000 0.0135
## 60 0.4845 nan 0.1000 0.0091
## 80 0.3915 nan 0.1000 0.0046
## 100 0.3223 nan 0.1000 0.0022
## 120 0.2730 nan 0.1000 0.0037
## 140 0.2311 nan 0.1000 0.0038
## 150 0.2153 nan 0.1000 0.0014
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 1.6094 nan 0.1000 0.2401
## 2 1.4556 nan 0.1000 0.1710
## 3 1.3470 nan 0.1000 0.1323
## 4 1.2623 nan 0.1000 0.1096
## 5 1.1929 nan 0.1000 0.0957
## 6 1.1330 nan 0.1000 0.0793
## 7 1.0823 nan 0.1000 0.0740
## 8 1.0354 nan 0.1000 0.0555
## 9 0.9996 nan 0.1000 0.0627
## 10 0.9605 nan 0.1000 0.0569
## 20 0.6827 nan 0.1000 0.0194
## 40 0.4542 nan 0.1000 0.0152
## 60 0.3309 nan 0.1000 0.0078
## 80 0.2514 nan 0.1000 0.0036
## 100 0.1947 nan 0.1000 0.0040
## 120 0.1562 nan 0.1000 0.0017
## 140 0.1276 nan 0.1000 0.0018
## 150 0.1151 nan 0.1000 0.0007
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 1.6094 nan 0.1000 0.2394
## 2 1.4556 nan 0.1000 0.1731
## 3 1.3448 nan 0.1000 0.1224
## 4 1.2667 nan 0.1000 0.1115
## 5 1.1959 nan 0.1000 0.0913
## 6 1.1387 nan 0.1000 0.0841
## 7 1.0861 nan 0.1000 0.0762
## 8 1.0367 nan 0.1000 0.0649
## 9 0.9958 nan 0.1000 0.0558
## 10 0.9598 nan 0.1000 0.0724
## 20 0.6875 nan 0.1000 0.0274
## 40 0.4508 nan 0.1000 0.0140
## 60 0.3283 nan 0.1000 0.0056
## 80 0.2484 nan 0.1000 0.0047
## 100 0.1927 nan 0.1000 0.0019
## 120 0.1531 nan 0.1000 0.0031
## 140 0.1236 nan 0.1000 0.0021
## 150 0.1112 nan 0.1000 0.0014
rfFit <- train(classe~., data=TidyTrain, method="rf", metric="Kappa", trControl=fitControl)
## Loading required package: randomForest
## randomForest 4.6-10
## Type rfNews() to see new features/changes/bug fixes.
The models are compared using the resamples function from the Caret package.Based on the plot below, it can be determined that the RandomForest algorithm fares better than the Gradient Boosting algorithm for this dataset (Kappa mean value = 0.996). It can also be seen that the RandomForest algorithm also displays less spread than Gradient Boosting.
library(caret)
## Loading required package: lattice
## Loading required package: ggplot2
library(lattice)
rValues <- resamples(list(rf=rfFit,gbm=gbmFit))
summary(rValues)
##
## Call:
## summary.resamples(object = rValues)
##
## Models: rf, gbm
## Number of resamples: 10
##
## Accuracy
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## rf 0.9941 0.9951 0.9958 0.9961 0.9966 0.9991 0
## gbm 0.9796 0.9843 0.9856 0.9854 0.9870 0.9932 0
##
## Kappa
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## rf 0.9925 0.9938 0.9946 0.9951 0.9957 0.9989 0
## gbm 0.9742 0.9801 0.9817 0.9815 0.9836 0.9914 0
bwplot(rValues,metric="Kappa",main="RandomForest (rf) vs Gradient Boosting (gbm)")
rfFit
## Random Forest
##
## 11776 samples
## 53 predictor
## 5 classes: 'A', 'B', 'C', 'D', 'E'
##
## No pre-processing
## Resampling: Cross-Validated (10 fold)
##
## Summary of sample sizes: 10598, 10600, 10597, 10597, 10600, 10599, ...
##
## Resampling results across tuning parameters:
##
## mtry Accuracy Kappa Accuracy SD Kappa SD
## 2 0.9925278 0.9905473 0.002554922 0.003232761
## 27 0.9960946 0.9950597 0.001452727 0.001837979
## 53 0.9928675 0.9909782 0.003129515 0.003957721
##
## Kappa was used to select the optimal model using the largest value.
## The final value used for the model was mtry = 27.
We employ the confusionMatrix function in the Caret package to validate the selected model with the TidyTest test set. displaying the relevent statistics and error rates.
library(caret)
confusionMatrix(TidyTest$classe, predict(rfFit,TidyTest))
## Loading required package: randomForest
## randomForest 4.6-10
## Type rfNews() to see new features/changes/bug fixes.
## Confusion Matrix and Statistics
##
## Reference
## Prediction A B C D E
## A 2231 0 0 0 1
## B 2 1514 2 0 0
## C 0 4 1361 3 0
## D 0 0 5 1281 0
## E 0 0 0 4 1438
##
## Overall Statistics
##
## Accuracy : 0.9973
## 95% CI : (0.9959, 0.9983)
## No Information Rate : 0.2846
## P-Value [Acc > NIR] : < 2.2e-16
##
## Kappa : 0.9966
## Mcnemar's Test P-Value : NA
##
## Statistics by Class:
##
## Class: A Class: B Class: C Class: D Class: E
## Sensitivity 0.9991 0.9974 0.9949 0.9946 0.9993
## Specificity 0.9998 0.9994 0.9989 0.9992 0.9994
## Pos Pred Value 0.9996 0.9974 0.9949 0.9961 0.9972
## Neg Pred Value 0.9996 0.9994 0.9989 0.9989 0.9998
## Prevalence 0.2846 0.1935 0.1744 0.1642 0.1834
## Detection Rate 0.2843 0.1930 0.1735 0.1633 0.1833
## Detection Prevalence 0.2845 0.1935 0.1744 0.1639 0.1838
## Balanced Accuracy 0.9995 0.9984 0.9969 0.9969 0.9993
The selected Model performs at a Kappa value of 0.995, with an accuracy of 0.996. Thats pretty good.
We use the selected model to predict the classification of the testing set provided and use the pml_write_files function is to generate submission files.
library(caret)
results <- predict(rfFit,newdata=Test)
print(as.data.frame(results))
## results
## 1 B
## 2 A
## 3 B
## 4 A
## 5 A
## 6 E
## 7 D
## 8 B
## 9 A
## 10 A
## 11 B
## 12 C
## 13 B
## 14 A
## 15 E
## 16 E
## 17 A
## 18 B
## 19 B
## 20 B
pml_write_files(results)