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 (ie. the quality of the activity).
In a study around the quality of exercise performed (Read more: http://groupware.les.inf.puc-rio.br/har#ixzz4LtaPzQ77), a group of 6 participants was asked to perform barbell lifts correctly and incorrectly in 5 different ways. Data from accelerometers on the belt, forearm, arm, and dumbell of 6 participants were then captured to determine if there are any underlying characteristics which can be used to predict the quality of the exercise.
The goal of this project is to develop a model using the test data gathered from the study and be able to apply it to predict the quality of the exerise based on the way the exercise was performed.
The eventual model selected, with the highest prediction accuracy, was based on developed based on the random forest approach.
setwd("~/Data Science/Module 8 Machine Learning/Project")
# Download Training Data file
if(!file.exists("pml-training.csv")) {
temp <- tempfile()
download.file("https://d396qusza40orc.cloudfront.net/predmachlearn/pml-training.csv","pml-training.csv")
}
# Download Test Data file
if(!file.exists("pml-testing.csv")) {
temp <- tempfile()
download.file("https://d396qusza40orc.cloudfront.net/predmachlearn/pml-testing.csv","pml-testing.csv")
}
We will review and clean the training data set. The testing data set will be set aside and used to revalidate our model once we have completed training and validating our model.
# Review Training Dataset.
Trgdata<- read.csv("pml-training.csv", na.strings=c("NA",""), header=TRUE)
str(Trgdata)
## '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/ 396 levels "-0.016850","-0.021024",..: NA NA NA NA NA NA NA NA NA NA ...
## $ kurtosis_picth_belt : Factor w/ 316 levels "-0.021887","-0.060755",..: NA NA NA NA NA NA NA NA NA NA ...
## $ kurtosis_yaw_belt : Factor w/ 1 level "#DIV/0!": NA NA NA NA NA NA NA NA NA NA ...
## $ skewness_roll_belt : Factor w/ 394 levels "-0.003095","-0.010002",..: NA NA NA NA NA NA NA NA NA NA ...
## $ skewness_roll_belt.1 : Factor w/ 337 levels "-0.005928","-0.005960",..: NA NA NA NA NA NA NA NA NA NA ...
## $ skewness_yaw_belt : Factor w/ 1 level "#DIV/0!": NA NA NA NA NA NA NA NA NA NA ...
## $ 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/ 67 levels "-0.1","-0.2",..: NA NA NA NA NA NA NA NA NA NA ...
## $ 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/ 67 levels "-0.1","-0.2",..: NA NA NA NA NA NA NA NA NA NA ...
## $ 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/ 3 levels "#DIV/0!","0.00",..: NA NA NA NA NA NA NA NA NA NA ...
## $ 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/ 329 levels "-0.02438","-0.04190",..: NA NA NA NA NA NA NA NA NA NA ...
## $ kurtosis_picth_arm : Factor w/ 327 levels "-0.00484","-0.01311",..: NA NA NA NA NA NA NA NA NA NA ...
## $ kurtosis_yaw_arm : Factor w/ 394 levels "-0.01548","-0.01749",..: NA NA NA NA NA NA NA NA NA NA ...
## $ skewness_roll_arm : Factor w/ 330 levels "-0.00051","-0.00696",..: NA NA NA NA NA NA NA NA NA NA ...
## $ skewness_pitch_arm : Factor w/ 327 levels "-0.00184","-0.01185",..: NA NA NA NA NA NA NA NA NA NA ...
## $ skewness_yaw_arm : Factor w/ 394 levels "-0.00311","-0.00562",..: NA NA NA NA NA NA NA NA NA NA ...
## $ 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/ 397 levels "-0.0035","-0.0073",..: NA NA NA NA NA NA NA NA NA NA ...
## $ kurtosis_picth_dumbbell : Factor w/ 400 levels "-0.0163","-0.0233",..: NA NA NA NA NA NA NA NA NA NA ...
## $ kurtosis_yaw_dumbbell : Factor w/ 1 level "#DIV/0!": NA NA NA NA NA NA NA NA NA NA ...
## $ skewness_roll_dumbbell : Factor w/ 400 levels "-0.0082","-0.0096",..: NA NA NA NA NA NA NA NA NA NA ...
## $ skewness_pitch_dumbbell : Factor w/ 401 levels "-0.0053","-0.0084",..: NA NA NA NA NA NA NA NA NA NA ...
## $ skewness_yaw_dumbbell : Factor w/ 1 level "#DIV/0!": NA NA NA NA NA NA NA NA NA NA ...
## $ 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/ 72 levels "-0.1","-0.2",..: NA NA NA NA NA NA NA NA NA NA ...
## $ 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/ 72 levels "-0.1","-0.2",..: NA NA NA NA NA NA NA NA NA NA ...
## $ amplitude_roll_dumbbell : num NA NA NA NA NA NA NA NA NA NA ...
## [list output truncated]
summary(Trgdata)
## X user_name raw_timestamp_part_1 raw_timestamp_part_2
## Min. : 1 adelmo :3892 Min. :1.322e+09 Min. : 294
## 1st Qu.: 4906 carlitos:3112 1st Qu.:1.323e+09 1st Qu.:252912
## Median : 9812 charles :3536 Median :1.323e+09 Median :496380
## Mean : 9812 eurico :3070 Mean :1.323e+09 Mean :500656
## 3rd Qu.:14717 jeremy :3402 3rd Qu.:1.323e+09 3rd Qu.:751891
## Max. :19622 pedro :2610 Max. :1.323e+09 Max. :998801
##
## cvtd_timestamp new_window num_window roll_belt
## 28/11/2011 14:14: 1498 no :19216 Min. : 1.0 Min. :-28.90
## 05/12/2011 11:24: 1497 yes: 406 1st Qu.:222.0 1st Qu.: 1.10
## 30/11/2011 17:11: 1440 Median :424.0 Median :113.00
## 05/12/2011 11:25: 1425 Mean :430.6 Mean : 64.41
## 02/12/2011 14:57: 1380 3rd Qu.:644.0 3rd Qu.:123.00
## 02/12/2011 13:34: 1375 Max. :864.0 Max. :162.00
## (Other) :11007
## pitch_belt yaw_belt total_accel_belt kurtosis_roll_belt
## Min. :-55.8000 Min. :-180.00 Min. : 0.00 #DIV/0! : 10
## 1st Qu.: 1.7600 1st Qu.: -88.30 1st Qu.: 3.00 -1.908453: 2
## Median : 5.2800 Median : -13.00 Median :17.00 -0.016850: 1
## Mean : 0.3053 Mean : -11.21 Mean :11.31 -0.021024: 1
## 3rd Qu.: 14.9000 3rd Qu.: 12.90 3rd Qu.:18.00 -0.025513: 1
## Max. : 60.3000 Max. : 179.00 Max. :29.00 (Other) : 391
## NA's :19216
## kurtosis_picth_belt kurtosis_yaw_belt skewness_roll_belt
## #DIV/0! : 32 #DIV/0!: 406 #DIV/0! : 9
## 47.000000: 4 NA's :19216 0.000000 : 4
## -0.150950: 3 0.422463 : 2
## -0.684748: 3 -0.003095: 1
## -1.750749: 3 -0.010002: 1
## (Other) : 361 (Other) : 389
## NA's :19216 NA's :19216
## skewness_roll_belt.1 skewness_yaw_belt max_roll_belt max_picth_belt
## #DIV/0! : 32 #DIV/0!: 406 Min. :-94.300 Min. : 3.00
## 0.000000 : 4 NA's :19216 1st Qu.:-88.000 1st Qu.: 5.00
## -2.156553: 3 Median : -5.100 Median :18.00
## -3.072669: 3 Mean : -6.667 Mean :12.92
## -6.324555: 3 3rd Qu.: 18.500 3rd Qu.:19.00
## (Other) : 361 Max. :180.000 Max. :30.00
## NA's :19216 NA's :19216 NA's :19216
## max_yaw_belt min_roll_belt min_pitch_belt min_yaw_belt
## -1.1 : 30 Min. :-180.00 Min. : 0.00 -1.1 : 30
## -1.4 : 29 1st Qu.: -88.40 1st Qu.: 3.00 -1.4 : 29
## -1.2 : 26 Median : -7.85 Median :16.00 -1.2 : 26
## -0.9 : 24 Mean : -10.44 Mean :10.76 -0.9 : 24
## -1.3 : 22 3rd Qu.: 9.05 3rd Qu.:17.00 -1.3 : 22
## (Other): 275 Max. : 173.00 Max. :23.00 (Other): 275
## NA's :19216 NA's :19216 NA's :19216 NA's :19216
## amplitude_roll_belt amplitude_pitch_belt amplitude_yaw_belt
## Min. : 0.000 Min. : 0.000 #DIV/0!: 10
## 1st Qu.: 0.300 1st Qu.: 1.000 0.00 : 12
## Median : 1.000 Median : 1.000 0.0000 : 384
## Mean : 3.769 Mean : 2.167 NA's :19216
## 3rd Qu.: 2.083 3rd Qu.: 2.000
## Max. :360.000 Max. :12.000
## NA's :19216 NA's :19216
## var_total_accel_belt avg_roll_belt stddev_roll_belt var_roll_belt
## Min. : 0.000 Min. :-27.40 Min. : 0.000 Min. : 0.000
## 1st Qu.: 0.100 1st Qu.: 1.10 1st Qu.: 0.200 1st Qu.: 0.000
## Median : 0.200 Median :116.35 Median : 0.400 Median : 0.100
## Mean : 0.926 Mean : 68.06 Mean : 1.337 Mean : 7.699
## 3rd Qu.: 0.300 3rd Qu.:123.38 3rd Qu.: 0.700 3rd Qu.: 0.500
## Max. :16.500 Max. :157.40 Max. :14.200 Max. :200.700
## NA's :19216 NA's :19216 NA's :19216 NA's :19216
## avg_pitch_belt stddev_pitch_belt var_pitch_belt avg_yaw_belt
## Min. :-51.400 Min. :0.000 Min. : 0.000 Min. :-138.300
## 1st Qu.: 2.025 1st Qu.:0.200 1st Qu.: 0.000 1st Qu.: -88.175
## Median : 5.200 Median :0.400 Median : 0.100 Median : -6.550
## Mean : 0.520 Mean :0.603 Mean : 0.766 Mean : -8.831
## 3rd Qu.: 15.775 3rd Qu.:0.700 3rd Qu.: 0.500 3rd Qu.: 14.125
## Max. : 59.700 Max. :4.000 Max. :16.200 Max. : 173.500
## NA's :19216 NA's :19216 NA's :19216 NA's :19216
## stddev_yaw_belt var_yaw_belt gyros_belt_x
## Min. : 0.000 Min. : 0.000 Min. :-1.040000
## 1st Qu.: 0.100 1st Qu.: 0.010 1st Qu.:-0.030000
## Median : 0.300 Median : 0.090 Median : 0.030000
## Mean : 1.341 Mean : 107.487 Mean :-0.005592
## 3rd Qu.: 0.700 3rd Qu.: 0.475 3rd Qu.: 0.110000
## Max. :176.600 Max. :31183.240 Max. : 2.220000
## NA's :19216 NA's :19216
## gyros_belt_y gyros_belt_z accel_belt_x accel_belt_y
## Min. :-0.64000 Min. :-1.4600 Min. :-120.000 Min. :-69.00
## 1st Qu.: 0.00000 1st Qu.:-0.2000 1st Qu.: -21.000 1st Qu.: 3.00
## Median : 0.02000 Median :-0.1000 Median : -15.000 Median : 35.00
## Mean : 0.03959 Mean :-0.1305 Mean : -5.595 Mean : 30.15
## 3rd Qu.: 0.11000 3rd Qu.:-0.0200 3rd Qu.: -5.000 3rd Qu.: 61.00
## Max. : 0.64000 Max. : 1.6200 Max. : 85.000 Max. :164.00
##
## accel_belt_z magnet_belt_x magnet_belt_y magnet_belt_z
## Min. :-275.00 Min. :-52.0 Min. :354.0 Min. :-623.0
## 1st Qu.:-162.00 1st Qu.: 9.0 1st Qu.:581.0 1st Qu.:-375.0
## Median :-152.00 Median : 35.0 Median :601.0 Median :-320.0
## Mean : -72.59 Mean : 55.6 Mean :593.7 Mean :-345.5
## 3rd Qu.: 27.00 3rd Qu.: 59.0 3rd Qu.:610.0 3rd Qu.:-306.0
## Max. : 105.00 Max. :485.0 Max. :673.0 Max. : 293.0
##
## roll_arm pitch_arm yaw_arm total_accel_arm
## Min. :-180.00 Min. :-88.800 Min. :-180.0000 Min. : 1.00
## 1st Qu.: -31.77 1st Qu.:-25.900 1st Qu.: -43.1000 1st Qu.:17.00
## Median : 0.00 Median : 0.000 Median : 0.0000 Median :27.00
## Mean : 17.83 Mean : -4.612 Mean : -0.6188 Mean :25.51
## 3rd Qu.: 77.30 3rd Qu.: 11.200 3rd Qu.: 45.8750 3rd Qu.:33.00
## Max. : 180.00 Max. : 88.500 Max. : 180.0000 Max. :66.00
##
## var_accel_arm avg_roll_arm stddev_roll_arm var_roll_arm
## Min. : 0.00 Min. :-166.67 Min. : 0.000 Min. : 0.000
## 1st Qu.: 9.03 1st Qu.: -38.37 1st Qu.: 1.376 1st Qu.: 1.898
## Median : 40.61 Median : 0.00 Median : 5.702 Median : 32.517
## Mean : 53.23 Mean : 12.68 Mean : 11.201 Mean : 417.264
## 3rd Qu.: 75.62 3rd Qu.: 76.33 3rd Qu.: 14.921 3rd Qu.: 222.647
## Max. :331.70 Max. : 163.33 Max. :161.964 Max. :26232.208
## NA's :19216 NA's :19216 NA's :19216 NA's :19216
## avg_pitch_arm stddev_pitch_arm var_pitch_arm avg_yaw_arm
## Min. :-81.773 Min. : 0.000 Min. : 0.000 Min. :-173.440
## 1st Qu.:-22.770 1st Qu.: 1.642 1st Qu.: 2.697 1st Qu.: -29.198
## Median : 0.000 Median : 8.133 Median : 66.146 Median : 0.000
## Mean : -4.901 Mean :10.383 Mean : 195.864 Mean : 2.359
## 3rd Qu.: 8.277 3rd Qu.:16.327 3rd Qu.: 266.576 3rd Qu.: 38.185
## Max. : 75.659 Max. :43.412 Max. :1884.565 Max. : 152.000
## NA's :19216 NA's :19216 NA's :19216 NA's :19216
## stddev_yaw_arm var_yaw_arm gyros_arm_x
## Min. : 0.000 Min. : 0.000 Min. :-6.37000
## 1st Qu.: 2.577 1st Qu.: 6.642 1st Qu.:-1.33000
## Median : 16.682 Median : 278.309 Median : 0.08000
## Mean : 22.270 Mean : 1055.933 Mean : 0.04277
## 3rd Qu.: 35.984 3rd Qu.: 1294.850 3rd Qu.: 1.57000
## Max. :177.044 Max. :31344.568 Max. : 4.87000
## NA's :19216 NA's :19216
## gyros_arm_y gyros_arm_z accel_arm_x accel_arm_y
## Min. :-3.4400 Min. :-2.3300 Min. :-404.00 Min. :-318.0
## 1st Qu.:-0.8000 1st Qu.:-0.0700 1st Qu.:-242.00 1st Qu.: -54.0
## Median :-0.2400 Median : 0.2300 Median : -44.00 Median : 14.0
## Mean :-0.2571 Mean : 0.2695 Mean : -60.24 Mean : 32.6
## 3rd Qu.: 0.1400 3rd Qu.: 0.7200 3rd Qu.: 84.00 3rd Qu.: 139.0
## Max. : 2.8400 Max. : 3.0200 Max. : 437.00 Max. : 308.0
##
## accel_arm_z magnet_arm_x magnet_arm_y magnet_arm_z
## Min. :-636.00 Min. :-584.0 Min. :-392.0 Min. :-597.0
## 1st Qu.:-143.00 1st Qu.:-300.0 1st Qu.: -9.0 1st Qu.: 131.2
## Median : -47.00 Median : 289.0 Median : 202.0 Median : 444.0
## Mean : -71.25 Mean : 191.7 Mean : 156.6 Mean : 306.5
## 3rd Qu.: 23.00 3rd Qu.: 637.0 3rd Qu.: 323.0 3rd Qu.: 545.0
## Max. : 292.00 Max. : 782.0 Max. : 583.0 Max. : 694.0
##
## kurtosis_roll_arm kurtosis_picth_arm kurtosis_yaw_arm skewness_roll_arm
## #DIV/0! : 78 #DIV/0! : 80 #DIV/0! : 11 #DIV/0! : 77
## -0.02438: 1 -0.00484: 1 0.55844 : 2 -0.00051: 1
## -0.04190: 1 -0.01311: 1 0.65132 : 2 -0.00696: 1
## -0.05051: 1 -0.02967: 1 -0.01548: 1 -0.01884: 1
## -0.05695: 1 -0.07394: 1 -0.01749: 1 -0.03359: 1
## (Other) : 324 (Other) : 322 (Other) : 389 (Other) : 325
## NA's :19216 NA's :19216 NA's :19216 NA's :19216
## skewness_pitch_arm skewness_yaw_arm max_roll_arm max_picth_arm
## #DIV/0! : 80 #DIV/0! : 11 Min. :-73.100 Min. :-173.000
## -0.00184: 1 -1.62032: 2 1st Qu.: -0.175 1st Qu.: -1.975
## -0.01185: 1 0.55053 : 2 Median : 4.950 Median : 23.250
## -0.01247: 1 -0.00311: 1 Mean : 11.236 Mean : 35.751
## -0.02063: 1 -0.00562: 1 3rd Qu.: 26.775 3rd Qu.: 95.975
## (Other) : 322 (Other) : 389 Max. : 85.500 Max. : 180.000
## NA's :19216 NA's :19216 NA's :19216 NA's :19216
## max_yaw_arm min_roll_arm min_pitch_arm min_yaw_arm
## Min. : 4.00 Min. :-89.10 Min. :-180.00 Min. : 1.00
## 1st Qu.:29.00 1st Qu.:-41.98 1st Qu.: -72.62 1st Qu.: 8.00
## Median :34.00 Median :-22.45 Median : -33.85 Median :13.00
## Mean :35.46 Mean :-21.22 Mean : -33.92 Mean :14.66
## 3rd Qu.:41.00 3rd Qu.: 0.00 3rd Qu.: 0.00 3rd Qu.:19.00
## Max. :65.00 Max. : 66.40 Max. : 152.00 Max. :38.00
## NA's :19216 NA's :19216 NA's :19216 NA's :19216
## amplitude_roll_arm amplitude_pitch_arm amplitude_yaw_arm
## Min. : 0.000 Min. : 0.000 Min. : 0.00
## 1st Qu.: 5.425 1st Qu.: 9.925 1st Qu.:13.00
## Median : 28.450 Median : 54.900 Median :22.00
## Mean : 32.452 Mean : 69.677 Mean :20.79
## 3rd Qu.: 50.960 3rd Qu.:115.175 3rd Qu.:28.75
## Max. :119.500 Max. :360.000 Max. :52.00
## NA's :19216 NA's :19216 NA's :19216
## roll_dumbbell pitch_dumbbell yaw_dumbbell
## Min. :-153.71 Min. :-149.59 Min. :-150.871
## 1st Qu.: -18.49 1st Qu.: -40.89 1st Qu.: -77.644
## Median : 48.17 Median : -20.96 Median : -3.324
## Mean : 23.84 Mean : -10.78 Mean : 1.674
## 3rd Qu.: 67.61 3rd Qu.: 17.50 3rd Qu.: 79.643
## Max. : 153.55 Max. : 149.40 Max. : 154.952
##
## kurtosis_roll_dumbbell kurtosis_picth_dumbbell kurtosis_yaw_dumbbell
## #DIV/0!: 5 -0.5464: 2 #DIV/0!: 406
## -0.2583: 2 -0.9334: 2 NA's :19216
## -0.3705: 2 -2.0833: 2
## -0.5855: 2 -2.0851: 2
## -2.0851: 2 -2.0889: 2
## (Other): 393 (Other): 396
## NA's :19216 NA's :19216
## skewness_roll_dumbbell skewness_pitch_dumbbell skewness_yaw_dumbbell
## #DIV/0!: 4 -0.2328: 2 #DIV/0!: 406
## -0.9324: 2 -0.3521: 2 NA's :19216
## 0.1110 : 2 -0.7036: 2
## 1.0312 : 2 0.1090 : 2
## -0.0082: 1 1.0326 : 2
## (Other): 395 (Other): 396
## NA's :19216 NA's :19216
## max_roll_dumbbell max_picth_dumbbell max_yaw_dumbbell min_roll_dumbbell
## Min. :-70.10 Min. :-112.90 -0.6 : 20 Min. :-149.60
## 1st Qu.:-27.15 1st Qu.: -66.70 0.2 : 19 1st Qu.: -59.67
## Median : 14.85 Median : 40.05 -0.8 : 18 Median : -43.55
## Mean : 13.76 Mean : 32.75 -0.3 : 16 Mean : -41.24
## 3rd Qu.: 50.58 3rd Qu.: 133.22 -0.2 : 15 3rd Qu.: -25.20
## Max. :137.00 Max. : 155.00 (Other): 318 Max. : 73.20
## NA's :19216 NA's :19216 NA's :19216 NA's :19216
## min_pitch_dumbbell min_yaw_dumbbell amplitude_roll_dumbbell
## Min. :-147.00 -0.6 : 20 Min. : 0.00
## 1st Qu.: -91.80 0.2 : 19 1st Qu.: 14.97
## Median : -66.15 -0.8 : 18 Median : 35.05
## Mean : -33.18 -0.3 : 16 Mean : 55.00
## 3rd Qu.: 21.20 -0.2 : 15 3rd Qu.: 81.04
## Max. : 120.90 (Other): 318 Max. :256.48
## NA's :19216 NA's :19216 NA's :19216
## amplitude_pitch_dumbbell amplitude_yaw_dumbbell total_accel_dumbbell
## Min. : 0.00 #DIV/0!: 5 Min. : 0.00
## 1st Qu.: 17.06 0.00 : 401 1st Qu.: 4.00
## Median : 41.73 NA's :19216 Median :10.00
## Mean : 65.93 Mean :13.72
## 3rd Qu.: 99.55 3rd Qu.:19.00
## Max. :273.59 Max. :58.00
## NA's :19216
## var_accel_dumbbell avg_roll_dumbbell stddev_roll_dumbbell
## Min. : 0.000 Min. :-128.96 Min. : 0.000
## 1st Qu.: 0.378 1st Qu.: -12.33 1st Qu.: 4.639
## Median : 1.000 Median : 48.23 Median : 12.204
## Mean : 4.388 Mean : 23.86 Mean : 20.761
## 3rd Qu.: 3.434 3rd Qu.: 64.37 3rd Qu.: 26.356
## Max. :230.428 Max. : 125.99 Max. :123.778
## NA's :19216 NA's :19216 NA's :19216
## var_roll_dumbbell avg_pitch_dumbbell stddev_pitch_dumbbell
## Min. : 0.00 Min. :-70.73 Min. : 0.000
## 1st Qu.: 21.52 1st Qu.:-42.00 1st Qu.: 3.482
## Median : 148.95 Median :-19.91 Median : 8.089
## Mean : 1020.27 Mean :-12.33 Mean :13.147
## 3rd Qu.: 694.65 3rd Qu.: 13.21 3rd Qu.:19.238
## Max. :15321.01 Max. : 94.28 Max. :82.680
## NA's :19216 NA's :19216 NA's :19216
## var_pitch_dumbbell avg_yaw_dumbbell stddev_yaw_dumbbell
## Min. : 0.00 Min. :-117.950 Min. : 0.000
## 1st Qu.: 12.12 1st Qu.: -76.696 1st Qu.: 3.885
## Median : 65.44 Median : -4.505 Median : 10.264
## Mean : 350.31 Mean : 0.202 Mean : 16.647
## 3rd Qu.: 370.11 3rd Qu.: 71.234 3rd Qu.: 24.674
## Max. :6836.02 Max. : 134.905 Max. :107.088
## NA's :19216 NA's :19216 NA's :19216
## var_yaw_dumbbell gyros_dumbbell_x gyros_dumbbell_y
## Min. : 0.00 Min. :-204.0000 Min. :-2.10000
## 1st Qu.: 15.09 1st Qu.: -0.0300 1st Qu.:-0.14000
## Median : 105.35 Median : 0.1300 Median : 0.03000
## Mean : 589.84 Mean : 0.1611 Mean : 0.04606
## 3rd Qu.: 608.79 3rd Qu.: 0.3500 3rd Qu.: 0.21000
## Max. :11467.91 Max. : 2.2200 Max. :52.00000
## NA's :19216
## gyros_dumbbell_z accel_dumbbell_x accel_dumbbell_y accel_dumbbell_z
## Min. : -2.380 Min. :-419.00 Min. :-189.00 Min. :-334.00
## 1st Qu.: -0.310 1st Qu.: -50.00 1st Qu.: -8.00 1st Qu.:-142.00
## Median : -0.130 Median : -8.00 Median : 41.50 Median : -1.00
## Mean : -0.129 Mean : -28.62 Mean : 52.63 Mean : -38.32
## 3rd Qu.: 0.030 3rd Qu.: 11.00 3rd Qu.: 111.00 3rd Qu.: 38.00
## Max. :317.000 Max. : 235.00 Max. : 315.00 Max. : 318.00
##
## magnet_dumbbell_x magnet_dumbbell_y magnet_dumbbell_z roll_forearm
## Min. :-643.0 Min. :-3600 Min. :-262.00 Min. :-180.0000
## 1st Qu.:-535.0 1st Qu.: 231 1st Qu.: -45.00 1st Qu.: -0.7375
## Median :-479.0 Median : 311 Median : 13.00 Median : 21.7000
## Mean :-328.5 Mean : 221 Mean : 46.05 Mean : 33.8265
## 3rd Qu.:-304.0 3rd Qu.: 390 3rd Qu.: 95.00 3rd Qu.: 140.0000
## Max. : 592.0 Max. : 633 Max. : 452.00 Max. : 180.0000
##
## pitch_forearm yaw_forearm kurtosis_roll_forearm
## Min. :-72.50 Min. :-180.00 #DIV/0!: 84
## 1st Qu.: 0.00 1st Qu.: -68.60 -0.8079: 2
## Median : 9.24 Median : 0.00 -0.9169: 2
## Mean : 10.71 Mean : 19.21 -0.0227: 1
## 3rd Qu.: 28.40 3rd Qu.: 110.00 -0.0359: 1
## Max. : 89.80 Max. : 180.00 (Other): 316
## NA's :19216
## kurtosis_picth_forearm kurtosis_yaw_forearm skewness_roll_forearm
## #DIV/0!: 85 #DIV/0!: 406 #DIV/0!: 83
## -0.0073: 1 NA's :19216 -0.1912: 2
## -0.0442: 1 -0.4126: 2
## -0.0489: 1 -0.0004: 1
## -0.0523: 1 -0.0013: 1
## (Other): 317 (Other): 317
## NA's :19216 NA's :19216
## skewness_pitch_forearm skewness_yaw_forearm max_roll_forearm
## #DIV/0!: 85 #DIV/0!: 406 Min. :-66.60
## 0.0000 : 4 NA's :19216 1st Qu.: 0.00
## -0.6992: 2 Median : 26.80
## -0.0113: 1 Mean : 24.49
## -0.0131: 1 3rd Qu.: 45.95
## (Other): 313 Max. : 89.80
## NA's :19216 NA's :19216
## max_picth_forearm max_yaw_forearm min_roll_forearm min_pitch_forearm
## Min. :-151.00 #DIV/0!: 84 Min. :-72.500 Min. :-180.00
## 1st Qu.: 0.00 -1.2 : 32 1st Qu.: -6.075 1st Qu.:-175.00
## Median : 113.00 -1.3 : 31 Median : 0.000 Median : -61.00
## Mean : 81.49 -1.4 : 24 Mean : -0.167 Mean : -57.57
## 3rd Qu.: 174.75 -1.5 : 24 3rd Qu.: 12.075 3rd Qu.: 0.00
## Max. : 180.00 (Other): 211 Max. : 62.100 Max. : 167.00
## NA's :19216 NA's :19216 NA's :19216 NA's :19216
## min_yaw_forearm amplitude_roll_forearm amplitude_pitch_forearm
## #DIV/0!: 84 Min. : 0.000 Min. : 0.0
## -1.2 : 32 1st Qu.: 1.125 1st Qu.: 2.0
## -1.3 : 31 Median : 17.770 Median : 83.7
## -1.4 : 24 Mean : 24.653 Mean :139.1
## -1.5 : 24 3rd Qu.: 39.875 3rd Qu.:350.0
## (Other): 211 Max. :126.000 Max. :360.0
## NA's :19216 NA's :19216 NA's :19216
## amplitude_yaw_forearm total_accel_forearm var_accel_forearm
## #DIV/0!: 84 Min. : 0.00 Min. : 0.000
## 0.00 : 322 1st Qu.: 29.00 1st Qu.: 6.759
## NA's :19216 Median : 36.00 Median : 21.165
## Mean : 34.72 Mean : 33.502
## 3rd Qu.: 41.00 3rd Qu.: 51.240
## Max. :108.00 Max. :172.606
## NA's :19216
## avg_roll_forearm stddev_roll_forearm var_roll_forearm
## Min. :-177.234 Min. : 0.000 Min. : 0.00
## 1st Qu.: -0.909 1st Qu.: 0.428 1st Qu.: 0.18
## Median : 11.172 Median : 8.030 Median : 64.48
## Mean : 33.165 Mean : 41.986 Mean : 5274.10
## 3rd Qu.: 107.132 3rd Qu.: 85.373 3rd Qu.: 7289.08
## Max. : 177.256 Max. :179.171 Max. :32102.24
## NA's :19216 NA's :19216 NA's :19216
## avg_pitch_forearm stddev_pitch_forearm var_pitch_forearm
## Min. :-68.17 Min. : 0.000 Min. : 0.000
## 1st Qu.: 0.00 1st Qu.: 0.336 1st Qu.: 0.113
## Median : 12.02 Median : 5.516 Median : 30.425
## Mean : 11.79 Mean : 7.977 Mean : 139.593
## 3rd Qu.: 28.48 3rd Qu.:12.866 3rd Qu.: 165.532
## Max. : 72.09 Max. :47.745 Max. :2279.617
## NA's :19216 NA's :19216 NA's :19216
## avg_yaw_forearm stddev_yaw_forearm var_yaw_forearm gyros_forearm_x
## Min. :-155.06 Min. : 0.000 Min. : 0.00 Min. :-22.000
## 1st Qu.: -26.26 1st Qu.: 0.524 1st Qu.: 0.27 1st Qu.: -0.220
## Median : 0.00 Median : 24.743 Median : 612.21 Median : 0.050
## Mean : 18.00 Mean : 44.854 Mean : 4639.85 Mean : 0.158
## 3rd Qu.: 85.79 3rd Qu.: 85.817 3rd Qu.: 7368.41 3rd Qu.: 0.560
## Max. : 169.24 Max. :197.508 Max. :39009.33 Max. : 3.970
## NA's :19216 NA's :19216 NA's :19216
## gyros_forearm_y gyros_forearm_z accel_forearm_x accel_forearm_y
## Min. : -7.02000 Min. : -8.0900 Min. :-498.00 Min. :-632.0
## 1st Qu.: -1.46000 1st Qu.: -0.1800 1st Qu.:-178.00 1st Qu.: 57.0
## Median : 0.03000 Median : 0.0800 Median : -57.00 Median : 201.0
## Mean : 0.07517 Mean : 0.1512 Mean : -61.65 Mean : 163.7
## 3rd Qu.: 1.62000 3rd Qu.: 0.4900 3rd Qu.: 76.00 3rd Qu.: 312.0
## Max. :311.00000 Max. :231.0000 Max. : 477.00 Max. : 923.0
##
## accel_forearm_z magnet_forearm_x magnet_forearm_y magnet_forearm_z
## Min. :-446.00 Min. :-1280.0 Min. :-896.0 Min. :-973.0
## 1st Qu.:-182.00 1st Qu.: -616.0 1st Qu.: 2.0 1st Qu.: 191.0
## Median : -39.00 Median : -378.0 Median : 591.0 Median : 511.0
## Mean : -55.29 Mean : -312.6 Mean : 380.1 Mean : 393.6
## 3rd Qu.: 26.00 3rd Qu.: -73.0 3rd Qu.: 737.0 3rd Qu.: 653.0
## Max. : 291.00 Max. : 672.0 Max. :1480.0 Max. :1090.0
##
## classe
## A:5580
## B:3797
## C:3422
## D:3216
## E:3607
##
##
# Check for near zero variance using the Caret package.
library(caret)
## Loading required package: lattice
## Loading required package: ggplot2
nzv <- nearZeroVar(Trgdata, saveMetrics=TRUE)
nzv
## freqRatio percentUnique zeroVar nzv
## X 1.000000 100.00000000 FALSE FALSE
## user_name 1.100679 0.03057792 FALSE FALSE
## raw_timestamp_part_1 1.000000 4.26562022 FALSE FALSE
## raw_timestamp_part_2 1.000000 85.53154622 FALSE FALSE
## cvtd_timestamp 1.000668 0.10192641 FALSE FALSE
## new_window 47.330049 0.01019264 FALSE TRUE
## num_window 1.000000 4.37264295 FALSE FALSE
## roll_belt 1.101904 6.77810621 FALSE FALSE
## pitch_belt 1.036082 9.37722964 FALSE FALSE
## yaw_belt 1.058480 9.97349913 FALSE FALSE
## total_accel_belt 1.063160 0.14779329 FALSE FALSE
## kurtosis_roll_belt 5.000000 2.01814290 FALSE FALSE
## kurtosis_picth_belt 8.000000 1.61043726 FALSE FALSE
## kurtosis_yaw_belt 0.000000 0.00509632 TRUE TRUE
## skewness_roll_belt 2.250000 2.00795026 FALSE FALSE
## skewness_roll_belt.1 8.000000 1.71745999 FALSE FALSE
## skewness_yaw_belt 0.000000 0.00509632 TRUE TRUE
## max_roll_belt 1.000000 0.99378249 FALSE FALSE
## max_picth_belt 1.538462 0.11211905 FALSE FALSE
## max_yaw_belt 1.034483 0.34145347 FALSE FALSE
## min_roll_belt 1.000000 0.93772296 FALSE FALSE
## min_pitch_belt 2.192308 0.08154113 FALSE FALSE
## min_yaw_belt 1.034483 0.34145347 FALSE FALSE
## amplitude_roll_belt 1.290323 0.75425543 FALSE FALSE
## amplitude_pitch_belt 3.042254 0.06625217 FALSE FALSE
## amplitude_yaw_belt 32.000000 0.01528896 FALSE TRUE
## var_total_accel_belt 1.426829 0.33126083 FALSE FALSE
## avg_roll_belt 1.066667 0.97339721 FALSE FALSE
## stddev_roll_belt 1.039216 0.35164611 FALSE FALSE
## var_roll_belt 1.615385 0.48924676 FALSE FALSE
## avg_pitch_belt 1.375000 1.09061258 FALSE FALSE
## stddev_pitch_belt 1.161290 0.21914178 FALSE FALSE
## var_pitch_belt 1.307692 0.32106819 FALSE FALSE
## avg_yaw_belt 1.200000 1.22311691 FALSE FALSE
## stddev_yaw_belt 1.693878 0.29558659 FALSE FALSE
## var_yaw_belt 1.500000 0.73896647 FALSE FALSE
## gyros_belt_x 1.058651 0.71348486 FALSE FALSE
## gyros_belt_y 1.144000 0.35164611 FALSE FALSE
## gyros_belt_z 1.066214 0.86127816 FALSE FALSE
## accel_belt_x 1.055412 0.83579655 FALSE FALSE
## accel_belt_y 1.113725 0.72877383 FALSE FALSE
## accel_belt_z 1.078767 1.52379982 FALSE FALSE
## magnet_belt_x 1.090141 1.66649679 FALSE FALSE
## magnet_belt_y 1.099688 1.51870350 FALSE FALSE
## magnet_belt_z 1.006369 2.32901845 FALSE FALSE
## roll_arm 52.338462 13.52563449 FALSE FALSE
## pitch_arm 87.256410 15.73234125 FALSE FALSE
## yaw_arm 33.029126 14.65701763 FALSE FALSE
## total_accel_arm 1.024526 0.33635715 FALSE FALSE
## var_accel_arm 5.500000 2.01304658 FALSE FALSE
## avg_roll_arm 77.000000 1.68178575 FALSE TRUE
## stddev_roll_arm 77.000000 1.68178575 FALSE TRUE
## var_roll_arm 77.000000 1.68178575 FALSE TRUE
## avg_pitch_arm 77.000000 1.68178575 FALSE TRUE
## stddev_pitch_arm 77.000000 1.68178575 FALSE TRUE
## var_pitch_arm 77.000000 1.68178575 FALSE TRUE
## avg_yaw_arm 77.000000 1.68178575 FALSE TRUE
## stddev_yaw_arm 80.000000 1.66649679 FALSE TRUE
## var_yaw_arm 80.000000 1.66649679 FALSE TRUE
## gyros_arm_x 1.015504 3.27693405 FALSE FALSE
## gyros_arm_y 1.454369 1.91621649 FALSE FALSE
## gyros_arm_z 1.110687 1.26388747 FALSE FALSE
## accel_arm_x 1.017341 3.95984099 FALSE FALSE
## accel_arm_y 1.140187 2.73672409 FALSE FALSE
## accel_arm_z 1.128000 4.03628580 FALSE FALSE
## magnet_arm_x 1.000000 6.82397309 FALSE FALSE
## magnet_arm_y 1.056818 4.44399144 FALSE FALSE
## magnet_arm_z 1.036364 6.44684538 FALSE FALSE
## kurtosis_roll_arm 78.000000 1.67668943 FALSE TRUE
## kurtosis_picth_arm 80.000000 1.66649679 FALSE TRUE
## kurtosis_yaw_arm 5.500000 2.00795026 FALSE FALSE
## skewness_roll_arm 77.000000 1.68178575 FALSE TRUE
## skewness_pitch_arm 80.000000 1.66649679 FALSE TRUE
## skewness_yaw_arm 5.500000 2.00795026 FALSE FALSE
## max_roll_arm 25.666667 1.47793293 FALSE TRUE
## max_picth_arm 12.833333 1.34033228 FALSE FALSE
## max_yaw_arm 1.227273 0.25991234 FALSE FALSE
## min_roll_arm 19.250000 1.41677709 FALSE TRUE
## min_pitch_arm 19.250000 1.47793293 FALSE TRUE
## min_yaw_arm 1.000000 0.19366018 FALSE FALSE
## amplitude_roll_arm 25.666667 1.55947406 FALSE TRUE
## amplitude_pitch_arm 20.000000 1.49831821 FALSE TRUE
## amplitude_yaw_arm 1.037037 0.25991234 FALSE FALSE
## roll_dumbbell 1.022388 84.20650290 FALSE FALSE
## pitch_dumbbell 2.277372 81.74498012 FALSE FALSE
## yaw_dumbbell 1.132231 83.48282540 FALSE FALSE
## kurtosis_roll_dumbbell 2.500000 2.02323922 FALSE FALSE
## kurtosis_picth_dumbbell 1.000000 2.03852818 FALSE FALSE
## kurtosis_yaw_dumbbell 0.000000 0.00509632 TRUE TRUE
## skewness_roll_dumbbell 2.000000 2.03852818 FALSE FALSE
## skewness_pitch_dumbbell 1.000000 2.04362450 FALSE FALSE
## skewness_yaw_dumbbell 0.000000 0.00509632 TRUE TRUE
## max_roll_dumbbell 1.000000 1.72255631 FALSE FALSE
## max_picth_dumbbell 1.333333 1.72765263 FALSE FALSE
## max_yaw_dumbbell 1.052632 0.36693507 FALSE FALSE
## min_roll_dumbbell 1.000000 1.69197839 FALSE FALSE
## min_pitch_dumbbell 1.666667 1.81429008 FALSE FALSE
## min_yaw_dumbbell 1.052632 0.36693507 FALSE FALSE
## amplitude_roll_dumbbell 8.000000 1.97227602 FALSE FALSE
## amplitude_pitch_dumbbell 8.000000 1.95189073 FALSE FALSE
## amplitude_yaw_dumbbell 80.200000 0.01019264 FALSE TRUE
## total_accel_dumbbell 1.072634 0.21914178 FALSE FALSE
## var_accel_dumbbell 6.000000 1.95698706 FALSE FALSE
## avg_roll_dumbbell 1.000000 2.02323922 FALSE FALSE
## stddev_roll_dumbbell 16.000000 1.99266130 FALSE FALSE
## var_roll_dumbbell 16.000000 1.99266130 FALSE FALSE
## avg_pitch_dumbbell 1.000000 2.02323922 FALSE FALSE
## stddev_pitch_dumbbell 16.000000 1.99266130 FALSE FALSE
## var_pitch_dumbbell 16.000000 1.99266130 FALSE FALSE
## avg_yaw_dumbbell 1.000000 2.02323922 FALSE FALSE
## stddev_yaw_dumbbell 16.000000 1.99266130 FALSE FALSE
## var_yaw_dumbbell 16.000000 1.99266130 FALSE FALSE
## gyros_dumbbell_x 1.003268 1.22821323 FALSE FALSE
## gyros_dumbbell_y 1.264957 1.41677709 FALSE FALSE
## gyros_dumbbell_z 1.060100 1.04984201 FALSE FALSE
## accel_dumbbell_x 1.018018 2.16593619 FALSE FALSE
## accel_dumbbell_y 1.053061 2.37488533 FALSE FALSE
## accel_dumbbell_z 1.133333 2.08949139 FALSE FALSE
## magnet_dumbbell_x 1.098266 5.74864948 FALSE FALSE
## magnet_dumbbell_y 1.197740 4.30129447 FALSE FALSE
## magnet_dumbbell_z 1.020833 3.44511263 FALSE FALSE
## roll_forearm 11.589286 11.08959331 FALSE FALSE
## pitch_forearm 65.983051 14.85577413 FALSE FALSE
## yaw_forearm 15.322835 10.14677403 FALSE FALSE
## kurtosis_roll_forearm 42.000000 1.63591887 FALSE TRUE
## kurtosis_picth_forearm 85.000000 1.64101519 FALSE TRUE
## kurtosis_yaw_forearm 0.000000 0.00509632 TRUE TRUE
## skewness_roll_forearm 41.500000 1.64101519 FALSE TRUE
## skewness_pitch_forearm 21.250000 1.62062991 FALSE TRUE
## skewness_yaw_forearm 0.000000 0.00509632 TRUE TRUE
## max_roll_forearm 27.666667 1.38110284 FALSE TRUE
## max_picth_forearm 2.964286 0.78992967 FALSE FALSE
## max_yaw_forearm 2.625000 0.22423810 FALSE FALSE
## min_roll_forearm 27.666667 1.37091020 FALSE TRUE
## min_pitch_forearm 2.862069 0.87147080 FALSE FALSE
## min_yaw_forearm 2.625000 0.22423810 FALSE FALSE
## amplitude_roll_forearm 20.750000 1.49322189 FALSE TRUE
## amplitude_pitch_forearm 3.269231 0.93262664 FALSE FALSE
## amplitude_yaw_forearm 3.833333 0.01019264 FALSE FALSE
## total_accel_forearm 1.128928 0.35674243 FALSE FALSE
## var_accel_forearm 3.500000 2.03343186 FALSE FALSE
## avg_roll_forearm 27.666667 1.64101519 FALSE TRUE
## stddev_roll_forearm 87.000000 1.63082255 FALSE TRUE
## var_roll_forearm 87.000000 1.63082255 FALSE TRUE
## avg_pitch_forearm 83.000000 1.65120783 FALSE TRUE
## stddev_pitch_forearm 41.500000 1.64611151 FALSE TRUE
## var_pitch_forearm 83.000000 1.65120783 FALSE TRUE
## avg_yaw_forearm 83.000000 1.65120783 FALSE TRUE
## stddev_yaw_forearm 85.000000 1.64101519 FALSE TRUE
## var_yaw_forearm 85.000000 1.64101519 FALSE TRUE
## gyros_forearm_x 1.059273 1.51870350 FALSE FALSE
## gyros_forearm_y 1.036554 3.77637346 FALSE FALSE
## gyros_forearm_z 1.122917 1.56457038 FALSE FALSE
## accel_forearm_x 1.126437 4.04647844 FALSE FALSE
## accel_forearm_y 1.059406 5.11160942 FALSE FALSE
## accel_forearm_z 1.006250 2.95586586 FALSE FALSE
## magnet_forearm_x 1.012346 7.76679238 FALSE FALSE
## magnet_forearm_y 1.246914 9.54031189 FALSE FALSE
## magnet_forearm_z 1.000000 8.57710733 FALSE FALSE
## classe 1.469581 0.02548160 FALSE FALSE
From our initial review of the training data set,
We will refine the training data set by removing columns 1 to 7, as well as, all the variables which are mainly made up of “NA”s..
# Remove variables 1 to 7
TrgdataV1 <- Trgdata[, -(1:7)]
# Remove all NA data
NA_columns<- colnames(TrgdataV1)[colSums(is.na(TrgdataV1)) > 0]
TrgdataV2<- TrgdataV1[,!(names(TrgdataV1) %in% NA_columns)]
A review of the parameters of the refined training data set confirms we now have usable and more meaningful data set to work on.
# Review the cleaned Training Dataset.
str(TrgdataV2)
## 'data.frame': 19622 obs. of 53 variables:
## $ 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 ...
## $ 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 ...
## $ 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 ...
## $ 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 ...
## $ total_accel_dumbbell: int 37 37 37 37 37 37 37 37 37 37 ...
## $ gyros_dumbbell_x : num 0 0 0 0 0 0 0 0 0 0 ...
## $ gyros_dumbbell_y : num -0.02 -0.02 -0.02 -0.02 -0.02 -0.02 -0.02 -0.02 -0.02 -0.02 ...
## $ gyros_dumbbell_z : num 0 0 0 -0.02 0 0 0 0 0 0 ...
## $ accel_dumbbell_x : int -234 -233 -232 -232 -233 -234 -232 -234 -232 -235 ...
## $ accel_dumbbell_y : int 47 47 46 48 48 48 47 46 47 48 ...
## $ accel_dumbbell_z : int -271 -269 -270 -269 -270 -269 -270 -272 -269 -270 ...
## $ magnet_dumbbell_x : int -559 -555 -561 -552 -554 -558 -551 -555 -549 -558 ...
## $ magnet_dumbbell_y : int 293 296 298 303 292 294 295 300 292 291 ...
## $ magnet_dumbbell_z : num -65 -64 -63 -60 -68 -66 -70 -74 -65 -69 ...
## $ roll_forearm : num 28.4 28.3 28.3 28.1 28 27.9 27.9 27.8 27.7 27.7 ...
## $ pitch_forearm : num -63.9 -63.9 -63.9 -63.9 -63.9 -63.9 -63.9 -63.8 -63.8 -63.8 ...
## $ yaw_forearm : num -153 -153 -152 -152 -152 -152 -152 -152 -152 -152 ...
## $ total_accel_forearm : int 36 36 36 36 36 36 36 36 36 36 ...
## $ gyros_forearm_x : num 0.03 0.02 0.03 0.02 0.02 0.02 0.02 0.02 0.03 0.02 ...
## $ gyros_forearm_y : num 0 0 -0.02 -0.02 0 -0.02 0 -0.02 0 0 ...
## $ gyros_forearm_z : num -0.02 -0.02 0 0 -0.02 -0.03 -0.02 0 -0.02 -0.02 ...
## $ accel_forearm_x : int 192 192 196 189 189 193 195 193 193 190 ...
## $ accel_forearm_y : int 203 203 204 206 206 203 205 205 204 205 ...
## $ accel_forearm_z : int -215 -216 -213 -214 -214 -215 -215 -213 -214 -215 ...
## $ magnet_forearm_x : int -17 -18 -18 -16 -17 -9 -18 -9 -16 -22 ...
## $ magnet_forearm_y : num 654 661 658 658 655 660 659 660 653 656 ...
## $ magnet_forearm_z : num 476 473 469 469 473 478 470 474 476 473 ...
## $ classe : Factor w/ 5 levels "A","B","C","D",..: 1 1 1 1 1 1 1 1 1 1 ...
summary(TrgdataV2)
## roll_belt pitch_belt yaw_belt total_accel_belt
## Min. :-28.90 Min. :-55.8000 Min. :-180.00 Min. : 0.00
## 1st Qu.: 1.10 1st Qu.: 1.7600 1st Qu.: -88.30 1st Qu.: 3.00
## Median :113.00 Median : 5.2800 Median : -13.00 Median :17.00
## Mean : 64.41 Mean : 0.3053 Mean : -11.21 Mean :11.31
## 3rd Qu.:123.00 3rd Qu.: 14.9000 3rd Qu.: 12.90 3rd Qu.:18.00
## Max. :162.00 Max. : 60.3000 Max. : 179.00 Max. :29.00
## gyros_belt_x gyros_belt_y gyros_belt_z
## Min. :-1.040000 Min. :-0.64000 Min. :-1.4600
## 1st Qu.:-0.030000 1st Qu.: 0.00000 1st Qu.:-0.2000
## Median : 0.030000 Median : 0.02000 Median :-0.1000
## Mean :-0.005592 Mean : 0.03959 Mean :-0.1305
## 3rd Qu.: 0.110000 3rd Qu.: 0.11000 3rd Qu.:-0.0200
## Max. : 2.220000 Max. : 0.64000 Max. : 1.6200
## accel_belt_x accel_belt_y accel_belt_z magnet_belt_x
## Min. :-120.000 Min. :-69.00 Min. :-275.00 Min. :-52.0
## 1st Qu.: -21.000 1st Qu.: 3.00 1st Qu.:-162.00 1st Qu.: 9.0
## Median : -15.000 Median : 35.00 Median :-152.00 Median : 35.0
## Mean : -5.595 Mean : 30.15 Mean : -72.59 Mean : 55.6
## 3rd Qu.: -5.000 3rd Qu.: 61.00 3rd Qu.: 27.00 3rd Qu.: 59.0
## Max. : 85.000 Max. :164.00 Max. : 105.00 Max. :485.0
## magnet_belt_y magnet_belt_z roll_arm pitch_arm
## Min. :354.0 Min. :-623.0 Min. :-180.00 Min. :-88.800
## 1st Qu.:581.0 1st Qu.:-375.0 1st Qu.: -31.77 1st Qu.:-25.900
## Median :601.0 Median :-320.0 Median : 0.00 Median : 0.000
## Mean :593.7 Mean :-345.5 Mean : 17.83 Mean : -4.612
## 3rd Qu.:610.0 3rd Qu.:-306.0 3rd Qu.: 77.30 3rd Qu.: 11.200
## Max. :673.0 Max. : 293.0 Max. : 180.00 Max. : 88.500
## yaw_arm total_accel_arm gyros_arm_x gyros_arm_y
## Min. :-180.0000 Min. : 1.00 Min. :-6.37000 Min. :-3.4400
## 1st Qu.: -43.1000 1st Qu.:17.00 1st Qu.:-1.33000 1st Qu.:-0.8000
## Median : 0.0000 Median :27.00 Median : 0.08000 Median :-0.2400
## Mean : -0.6188 Mean :25.51 Mean : 0.04277 Mean :-0.2571
## 3rd Qu.: 45.8750 3rd Qu.:33.00 3rd Qu.: 1.57000 3rd Qu.: 0.1400
## Max. : 180.0000 Max. :66.00 Max. : 4.87000 Max. : 2.8400
## gyros_arm_z accel_arm_x accel_arm_y accel_arm_z
## Min. :-2.3300 Min. :-404.00 Min. :-318.0 Min. :-636.00
## 1st Qu.:-0.0700 1st Qu.:-242.00 1st Qu.: -54.0 1st Qu.:-143.00
## Median : 0.2300 Median : -44.00 Median : 14.0 Median : -47.00
## Mean : 0.2695 Mean : -60.24 Mean : 32.6 Mean : -71.25
## 3rd Qu.: 0.7200 3rd Qu.: 84.00 3rd Qu.: 139.0 3rd Qu.: 23.00
## Max. : 3.0200 Max. : 437.00 Max. : 308.0 Max. : 292.00
## magnet_arm_x magnet_arm_y magnet_arm_z roll_dumbbell
## Min. :-584.0 Min. :-392.0 Min. :-597.0 Min. :-153.71
## 1st Qu.:-300.0 1st Qu.: -9.0 1st Qu.: 131.2 1st Qu.: -18.49
## Median : 289.0 Median : 202.0 Median : 444.0 Median : 48.17
## Mean : 191.7 Mean : 156.6 Mean : 306.5 Mean : 23.84
## 3rd Qu.: 637.0 3rd Qu.: 323.0 3rd Qu.: 545.0 3rd Qu.: 67.61
## Max. : 782.0 Max. : 583.0 Max. : 694.0 Max. : 153.55
## pitch_dumbbell yaw_dumbbell total_accel_dumbbell
## Min. :-149.59 Min. :-150.871 Min. : 0.00
## 1st Qu.: -40.89 1st Qu.: -77.644 1st Qu.: 4.00
## Median : -20.96 Median : -3.324 Median :10.00
## Mean : -10.78 Mean : 1.674 Mean :13.72
## 3rd Qu.: 17.50 3rd Qu.: 79.643 3rd Qu.:19.00
## Max. : 149.40 Max. : 154.952 Max. :58.00
## gyros_dumbbell_x gyros_dumbbell_y gyros_dumbbell_z
## Min. :-204.0000 Min. :-2.10000 Min. : -2.380
## 1st Qu.: -0.0300 1st Qu.:-0.14000 1st Qu.: -0.310
## Median : 0.1300 Median : 0.03000 Median : -0.130
## Mean : 0.1611 Mean : 0.04606 Mean : -0.129
## 3rd Qu.: 0.3500 3rd Qu.: 0.21000 3rd Qu.: 0.030
## Max. : 2.2200 Max. :52.00000 Max. :317.000
## accel_dumbbell_x accel_dumbbell_y accel_dumbbell_z magnet_dumbbell_x
## Min. :-419.00 Min. :-189.00 Min. :-334.00 Min. :-643.0
## 1st Qu.: -50.00 1st Qu.: -8.00 1st Qu.:-142.00 1st Qu.:-535.0
## Median : -8.00 Median : 41.50 Median : -1.00 Median :-479.0
## Mean : -28.62 Mean : 52.63 Mean : -38.32 Mean :-328.5
## 3rd Qu.: 11.00 3rd Qu.: 111.00 3rd Qu.: 38.00 3rd Qu.:-304.0
## Max. : 235.00 Max. : 315.00 Max. : 318.00 Max. : 592.0
## magnet_dumbbell_y magnet_dumbbell_z roll_forearm pitch_forearm
## Min. :-3600 Min. :-262.00 Min. :-180.0000 Min. :-72.50
## 1st Qu.: 231 1st Qu.: -45.00 1st Qu.: -0.7375 1st Qu.: 0.00
## Median : 311 Median : 13.00 Median : 21.7000 Median : 9.24
## Mean : 221 Mean : 46.05 Mean : 33.8265 Mean : 10.71
## 3rd Qu.: 390 3rd Qu.: 95.00 3rd Qu.: 140.0000 3rd Qu.: 28.40
## Max. : 633 Max. : 452.00 Max. : 180.0000 Max. : 89.80
## yaw_forearm total_accel_forearm gyros_forearm_x
## Min. :-180.00 Min. : 0.00 Min. :-22.000
## 1st Qu.: -68.60 1st Qu.: 29.00 1st Qu.: -0.220
## Median : 0.00 Median : 36.00 Median : 0.050
## Mean : 19.21 Mean : 34.72 Mean : 0.158
## 3rd Qu.: 110.00 3rd Qu.: 41.00 3rd Qu.: 0.560
## Max. : 180.00 Max. :108.00 Max. : 3.970
## gyros_forearm_y gyros_forearm_z accel_forearm_x accel_forearm_y
## Min. : -7.02000 Min. : -8.0900 Min. :-498.00 Min. :-632.0
## 1st Qu.: -1.46000 1st Qu.: -0.1800 1st Qu.:-178.00 1st Qu.: 57.0
## Median : 0.03000 Median : 0.0800 Median : -57.00 Median : 201.0
## Mean : 0.07517 Mean : 0.1512 Mean : -61.65 Mean : 163.7
## 3rd Qu.: 1.62000 3rd Qu.: 0.4900 3rd Qu.: 76.00 3rd Qu.: 312.0
## Max. :311.00000 Max. :231.0000 Max. : 477.00 Max. : 923.0
## accel_forearm_z magnet_forearm_x magnet_forearm_y magnet_forearm_z
## Min. :-446.00 Min. :-1280.0 Min. :-896.0 Min. :-973.0
## 1st Qu.:-182.00 1st Qu.: -616.0 1st Qu.: 2.0 1st Qu.: 191.0
## Median : -39.00 Median : -378.0 Median : 591.0 Median : 511.0
## Mean : -55.29 Mean : -312.6 Mean : 380.1 Mean : 393.6
## 3rd Qu.: 26.00 3rd Qu.: -73.0 3rd Qu.: 737.0 3rd Qu.: 653.0
## Max. : 291.00 Max. : 672.0 Max. :1480.0 Max. :1090.0
## classe
## A:5580
## B:3797
## C:3422
## D:3216
## E:3607
##
# Recheck for near zero variance using the Caret package.
nzv2 <- nearZeroVar(TrgdataV2, saveMetrics=TRUE)
nzv2
## freqRatio percentUnique zeroVar nzv
## roll_belt 1.101904 6.7781062 FALSE FALSE
## pitch_belt 1.036082 9.3772296 FALSE FALSE
## yaw_belt 1.058480 9.9734991 FALSE FALSE
## total_accel_belt 1.063160 0.1477933 FALSE FALSE
## gyros_belt_x 1.058651 0.7134849 FALSE FALSE
## gyros_belt_y 1.144000 0.3516461 FALSE FALSE
## gyros_belt_z 1.066214 0.8612782 FALSE FALSE
## accel_belt_x 1.055412 0.8357966 FALSE FALSE
## accel_belt_y 1.113725 0.7287738 FALSE FALSE
## accel_belt_z 1.078767 1.5237998 FALSE FALSE
## magnet_belt_x 1.090141 1.6664968 FALSE FALSE
## magnet_belt_y 1.099688 1.5187035 FALSE FALSE
## magnet_belt_z 1.006369 2.3290184 FALSE FALSE
## roll_arm 52.338462 13.5256345 FALSE FALSE
## pitch_arm 87.256410 15.7323412 FALSE FALSE
## yaw_arm 33.029126 14.6570176 FALSE FALSE
## total_accel_arm 1.024526 0.3363572 FALSE FALSE
## gyros_arm_x 1.015504 3.2769341 FALSE FALSE
## gyros_arm_y 1.454369 1.9162165 FALSE FALSE
## gyros_arm_z 1.110687 1.2638875 FALSE FALSE
## accel_arm_x 1.017341 3.9598410 FALSE FALSE
## accel_arm_y 1.140187 2.7367241 FALSE FALSE
## accel_arm_z 1.128000 4.0362858 FALSE FALSE
## magnet_arm_x 1.000000 6.8239731 FALSE FALSE
## magnet_arm_y 1.056818 4.4439914 FALSE FALSE
## magnet_arm_z 1.036364 6.4468454 FALSE FALSE
## roll_dumbbell 1.022388 84.2065029 FALSE FALSE
## pitch_dumbbell 2.277372 81.7449801 FALSE FALSE
## yaw_dumbbell 1.132231 83.4828254 FALSE FALSE
## total_accel_dumbbell 1.072634 0.2191418 FALSE FALSE
## gyros_dumbbell_x 1.003268 1.2282132 FALSE FALSE
## gyros_dumbbell_y 1.264957 1.4167771 FALSE FALSE
## gyros_dumbbell_z 1.060100 1.0498420 FALSE FALSE
## accel_dumbbell_x 1.018018 2.1659362 FALSE FALSE
## accel_dumbbell_y 1.053061 2.3748853 FALSE FALSE
## accel_dumbbell_z 1.133333 2.0894914 FALSE FALSE
## magnet_dumbbell_x 1.098266 5.7486495 FALSE FALSE
## magnet_dumbbell_y 1.197740 4.3012945 FALSE FALSE
## magnet_dumbbell_z 1.020833 3.4451126 FALSE FALSE
## roll_forearm 11.589286 11.0895933 FALSE FALSE
## pitch_forearm 65.983051 14.8557741 FALSE FALSE
## yaw_forearm 15.322835 10.1467740 FALSE FALSE
## total_accel_forearm 1.128928 0.3567424 FALSE FALSE
## gyros_forearm_x 1.059273 1.5187035 FALSE FALSE
## gyros_forearm_y 1.036554 3.7763735 FALSE FALSE
## gyros_forearm_z 1.122917 1.5645704 FALSE FALSE
## accel_forearm_x 1.126437 4.0464784 FALSE FALSE
## accel_forearm_y 1.059406 5.1116094 FALSE FALSE
## accel_forearm_z 1.006250 2.9558659 FALSE FALSE
## magnet_forearm_x 1.012346 7.7667924 FALSE FALSE
## magnet_forearm_y 1.246914 9.5403119 FALSE FALSE
## magnet_forearm_z 1.000000 8.5771073 FALSE FALSE
## classe 1.469581 0.0254816 FALSE FALSE
Instead of further partitioning the refined training data set, we will utilise the
We have elected to use 7 folds to cross validate our model.
# Setup train control parameters
trg_ctr <- trainControl(method = "cv", number = 7, verboseIter=FALSE)
For the purpose of this project, we will be testing and comparing the validity of the following 2 popular models:
# Training Random Forest Model
set.seed(3333)
rfmodel<- train(classe ~ ., data = TrgdataV2, method = "rf", trControl= trg_ctr, ntree=100)
## Loading required package: randomForest
## randomForest 4.6-12
## Type rfNews() to see new features/changes/bug fixes.
##
## Attaching package: 'randomForest'
## The following object is masked from 'package:ggplot2':
##
## margin
# Training GBM Model
GBMmodel<- train(classe ~ ., data = TrgdataV2, method = "gbm", trControl= trg_ctr, verbose=FALSE)
## 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
Below is the table of results from summarizing the distributions for the 2 models:
# Collate model results
library(mlbench)
results <- resamples(list(GBM=GBMmodel, RF=rfmodel))
summary(results)
##
## Call:
## summary.resamples(object = results)
##
## Models: GBM, RF
## Number of resamples: 7
##
## Accuracy
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## GBM 0.9579 0.960 0.9622 0.9623 0.9638 0.9686 0
## RF 0.9922 0.993 0.9943 0.9941 0.9954 0.9957 0
##
## Kappa
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## GBM 0.9467 0.9495 0.9521 0.9524 0.9542 0.9603 0
## RF 0.9901 0.9912 0.9928 0.9926 0.9941 0.9946 0
From the statistics above, the Random Forest (RF) model consistently outperform the GBM model with in both accuracy and Kappa.
The boxplot and dotplot of the result below also indicates the distribution of the results of the RF model to be tighter vs. the GBM model.
# Visual summary of model results.
bwplot(results)
dotplot(results)
The model developed based on the random forest approach provides us the most accurate model that can be used to predict the quality of the exerise performed.
We will apply this model against the test data set to answer the prediction quiz questions of this project.
As a final step, we will use the validation data sample (‘pml-testing.csv’) to predict a classe for each of the 20 observations, based on the parameters identified in our test model.
Prediction results for the 20 problem ids appended below.
Testdata<- read.csv("pml-testing.csv", na.strings=c("NA",""), header=TRUE)
(predict(rfmodel, Testdata))
## [1] 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