Final, Problem 1. 30 Points

  1. Playing with PageRank You’ll verify for yourself that PageRank works by performing calculations on a small universe of web pages. Let’s use the 6 page universe that we had in the previous discussion For this directed graph, perform the following calculations in R.

Form the A matrix. Then, introduce decay and form the B matrix as we did in the course notes. (5 Points)

Build the A matrix in R, changing to columns to reflect reference examples:

A <- matrix (c(  0,  1/2, 1/2, 0,   0,   0,
                1/6, 1/6,   1/6,  1/6,   1/6,   1/6, #substitute for dandling node
                1/3, 1/3, 0,   0,   1/3, 0,
                 0,  0,   0,   0,   1/2, 1/2,
                 0,  0,   0,   1/2, 0,   1/2,
                 0,  0,   0,   1,   0,   0), byrow=FALSE, nrow=6)
print(A)
##      [,1]      [,2]      [,3] [,4] [,5] [,6]
## [1,]  0.0 0.1666667 0.3333333  0.0  0.0    0
## [2,]  0.5 0.1666667 0.3333333  0.0  0.0    0
## [3,]  0.5 0.1666667 0.0000000  0.0  0.0    0
## [4,]  0.0 0.1666667 0.0000000  0.0  0.5    1
## [5,]  0.0 0.1666667 0.3333333  0.5  0.0    0
## [6,]  0.0 0.1666667 0.0000000  0.5  0.5    0

Our second row (now column) has no outlinks, so our web pages might be disconnected in disjoint sets. Replaced with 1/n for each value.

colSums(A)
## [1] 1 1 1 1 1 1

Introduce decay to form the B matrix:

decay <- 0.85 #from the final
ncol_a <- ncol(A)
B <- decay * A + (1 - decay)/ncol_a
print(B)
##       [,1]      [,2]      [,3]  [,4]  [,5]  [,6]
## [1,] 0.025 0.1666667 0.3083333 0.025 0.025 0.025
## [2,] 0.450 0.1666667 0.3083333 0.025 0.025 0.025
## [3,] 0.450 0.1666667 0.0250000 0.025 0.025 0.025
## [4,] 0.025 0.1666667 0.0250000 0.025 0.450 0.875
## [5,] 0.025 0.1666667 0.3083333 0.450 0.025 0.025
## [6,] 0.025 0.1666667 0.0250000 0.450 0.450 0.025

Start with a uniform rank vector r and perform power iterations on B till convergence. That is, compute the solution \(r = B^n × r\). Attempt this for a sufficiently large n so that r actually converges. (5 Points)

Our uniform rank vector.

r <- rep(1/ncol_a,ncol_a)
r
## [1] 0.1666667 0.1666667 0.1666667 0.1666667 0.1666667 0.1666667

Convergence attempt using the transpose.

C_10 <- matrix.power(B, 10) %*% r
C_10
##            [,1]
## [1,] 0.05205661
## [2,] 0.07428990
## [3,] 0.05782138
## [4,] 0.34797267
## [5,] 0.19975859
## [6,] 0.26810085
colSums(C_10)
## [1] 1

Seems to work. Let’s create a matrix showing page-rank convergence.

convergence_m <-cbind(matrix.power(B, 10) %*% r,
      matrix.power(B, 20) %*% r,
      matrix.power(B, 30) %*% r,
      matrix.power(B, 40) %*% r,
      matrix.power(B, 50) %*% r,
      matrix.power(B, 60) %*% r)

convergence_m
##            [,1]       [,2]       [,3]       [,4]       [,5]       [,6]
## [1,] 0.05205661 0.05170616 0.05170475 0.05170475 0.05170475 0.05170475
## [2,] 0.07428990 0.07368173 0.07367927 0.07367926 0.07367926 0.07367926
## [3,] 0.05782138 0.05741406 0.05741242 0.05741241 0.05741241 0.05741241
## [4,] 0.34797267 0.34870083 0.34870367 0.34870369 0.34870369 0.34870369
## [5,] 0.19975859 0.19990313 0.19990381 0.19990381 0.19990381 0.19990381
## [6,] 0.26810085 0.26859408 0.26859607 0.26859608 0.26859608 0.26859608

We didn’t define a convergence value, but, if we set one at the thousandths or tens of thousandths, it looks OK by 30 power iterations.

We’ll save that.

pagerank_1 <- matrix.power(B, 30) %*% r

Compute the eigen-decomposition of B and verify that you indeed get an eigenvalue of 1 as the largest eigenvalue and that its corresponding eigenvector is the same vector that you obtained in the previous power iteration method. Further, this eigenvector has all positive entries and it sums to 1.(10 points)

eig_b <- eigen(B) 
eig_b
## eigen() decomposition
## $values
## [1]  1.00000000+0i  0.57619235+0i -0.42500000+0i -0.42500000-0i -0.34991524+0i
## [6] -0.08461044+0i
## 
## $vectors
##              [,1]          [,2]                      [,3]
## [1,] 0.1044385+0i  0.2931457+0i  2.486934e-15+0.0000e+00i
## [2,] 0.1488249+0i  0.5093703+0i -8.528385e-16-6.9832e-23i
## [3,] 0.1159674+0i  0.3414619+0i -1.930646e-15-0.0000e+00i
## [4,] 0.7043472+0i -0.5890805+0i -7.071068e-01+0.0000e+00i
## [5,] 0.4037861+0i -0.1413606+0i  7.071068e-01+0.0000e+00i
## [6,] 0.5425377+0i -0.4135367+0i  0.000000e+00-1.7058e-08i
##                           [,4]           [,5]            [,6]
## [1,]  2.486934e-15-0.0000e+00i -0.06471710+0i -0.212296003+0i
## [2,] -8.528385e-16+6.9832e-23i  0.01388698+0i  0.854071294+0i
## [3,] -1.930646e-15+0.0000e+00i  0.07298180+0i -0.363638739+0i
## [4,] -7.071068e-01+0.0000e+00i -0.66058664+0i  0.018399984+0i
## [5,]  7.071068e-01-0.0000e+00i  0.73761812+0i -0.304719509+0i
## [6,]  0.000000e+00+1.7058e-08i -0.09918316+0i  0.008182973+0i

Verify corresponding eigenvector - with some help from the internet.

pagerank_2 <- eig_b$vectors[,1]/sum(eig_b$vectors[,1])
sum(pagerank_2)
## [1] 1+0i

We’ll save the page rank vector for later. We’ve introduced a complex value - utoh.

Use the graph package in R and its page.rank method to compute the Page Rank of the graph as given in A. Note that you don’t need to apply decay. The package starts with a connected graph and applies decay internally. Verify that you do get the same PageRank vector as the two approaches above. (10 points)

For reasons I don’t entirely understand, the below works when I create A where the page ranks are conveyed as rows rather than columns.

A_row <- matrix (c(  0,  1/2, 1/2, 0,   0,   0,
                1/6, 1/6,   1/6,  1/6,   1/6,   1/6, #substitute for dandling node
                1/3, 1/3, 0,   0,   1/3, 0,
                 0,  0,   0,   0,   1/2, 1/2,
                 0,  0,   0,   1/2, 0,   1/2,
                 0,  0,   0,   1,   0,   0), byrow=TRUE, nrow=6)
igraph_A <- graph_from_adjacency_matrix(A_row, weighted = TRUE)
plot(igraph_A)

The self-link might just have been introduced by (faulty?) handling of the dangling node.

pagerank_3 <- page.rank(igraph_A)$vector
pagerank_3
## [1] 0.05170475 0.07367926 0.05741241 0.34870369 0.19990381 0.26859608
compare_m <-cbind(pagerank_1,pagerank_2,pagerank_3)
compare_m
##                       pagerank_2    pagerank_3
## [1,] 0.05170475+0i 0.05170475+0i 0.05170475+0i
## [2,] 0.07367927+0i 0.07367926+0i 0.07367926+0i
## [3,] 0.05741242+0i 0.05741241+0i 0.05741241+0i
## [4,] 0.34870367+0i 0.34870369+0i 0.34870369+0i
## [5,] 0.19990381+0i 0.19990381+0i 0.19990381+0i
## [6,] 0.26859607+0i 0.26859608+0i 0.26859608+0i

These tie out - ignoring the complex number issue.

Sources Consulted: https://gowrishankar.info/blog/eigenvalue-eigenvector-eigenspace-and-implementation-of-googles-pagerank-algorithm/ https://medium.com/@arpanspeaks/handling-dangling-nodes-pagerank-14c31d5b6b62 https://igraph.org/r/doc/page_rank.html

Final Problem 2. 40 points.

  1. Go to Kaggle.com and build an account if you do not already have one. It is free.

  2. Go to https://www.kaggle.com/c/digit-recognizer/overview, accept the rules of the competition, and download the data. You will not be required to submit work to Kaggle, but you do need the data.

’MNIST (“Modified National Institute of Standards and Technology”) is the de facto “hello world” dataset of computer vision. Since its release in 1999, this classic dataset of handwritten images has served as the basis for benchmarking classification algorithms. As new machine learning techniques emerge, MNIST remains a reliable resource for researchers and learners alike.”

digits_training_df <- read.csv("digit_train.csv")
dim(digits_training_df)
## [1] 42000   785
head(digits_training_df)
##   label pixel0 pixel1 pixel2 pixel3 pixel4 pixel5 pixel6 pixel7 pixel8 pixel9
## 1     1      0      0      0      0      0      0      0      0      0      0
## 2     0      0      0      0      0      0      0      0      0      0      0
## 3     1      0      0      0      0      0      0      0      0      0      0
## 4     4      0      0      0      0      0      0      0      0      0      0
## 5     0      0      0      0      0      0      0      0      0      0      0
## 6     0      0      0      0      0      0      0      0      0      0      0
##   pixel10 pixel11 pixel12 pixel13 pixel14 pixel15 pixel16 pixel17 pixel18
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel19 pixel20 pixel21 pixel22 pixel23 pixel24 pixel25 pixel26 pixel27
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel28 pixel29 pixel30 pixel31 pixel32 pixel33 pixel34 pixel35 pixel36
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel37 pixel38 pixel39 pixel40 pixel41 pixel42 pixel43 pixel44 pixel45
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel46 pixel47 pixel48 pixel49 pixel50 pixel51 pixel52 pixel53 pixel54
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel55 pixel56 pixel57 pixel58 pixel59 pixel60 pixel61 pixel62 pixel63
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel64 pixel65 pixel66 pixel67 pixel68 pixel69 pixel70 pixel71 pixel72
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel73 pixel74 pixel75 pixel76 pixel77 pixel78 pixel79 pixel80 pixel81
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel82 pixel83 pixel84 pixel85 pixel86 pixel87 pixel88 pixel89 pixel90
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel91 pixel92 pixel93 pixel94 pixel95 pixel96 pixel97 pixel98 pixel99
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel100 pixel101 pixel102 pixel103 pixel104 pixel105 pixel106 pixel107
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel108 pixel109 pixel110 pixel111 pixel112 pixel113 pixel114 pixel115
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel116 pixel117 pixel118 pixel119 pixel120 pixel121 pixel122 pixel123
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0       18       30
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        1       25      130
## 6        0        0        0        0        0        0        0        0
##   pixel124 pixel125 pixel126 pixel127 pixel128 pixel129 pixel130 pixel131
## 1        0        0        0        0        0        0        0        0
## 2      137      137      192       86       72        1        0        0
## 3        3      141      139        3        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5      155      254      254      254      157       30        2        0
## 6        3      141      202      254      193       44        0        0
##   pixel132 pixel133 pixel134 pixel135 pixel136 pixel137 pixel138 pixel139
## 1      188      255       94        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel140 pixel141 pixel142 pixel143 pixel144 pixel145 pixel146 pixel147
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0      220      179
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel148 pixel149 pixel150 pixel151 pixel152 pixel153 pixel154 pixel155
## 1        0        0        0        0        0        0        0        0
## 2       13       86      250      254      254      254      254      217
## 3        0        0        0        0        9      254      254        8
## 4        6        0        0        0        0        0        0        0
## 5        8      103      253      253      253      253      253      253
## 6        0        0        0        5      165      254      179      163
##   pixel156 pixel157 pixel158 pixel159 pixel160 pixel161 pixel162 pixel163
## 1        0        0        0      191      250      253       93        0
## 2      246      151       32        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        9       77        0        0        0        0        0
## 5      253      253      114        2        0        0        0        0
## 6      249      244       72        0        0        0        0        0
##   pixel164 pixel165 pixel166 pixel167 pixel168 pixel169 pixel170 pixel171
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel172 pixel173 pixel174 pixel175 pixel176 pixel177 pixel178 pixel179
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0       16      179      254      254      254
## 3        0        0        0        0        0        0        0        0
## 4        0        0       28      247       17        0        0        0
## 5        0        0        0       11      208      253      253      253
## 6        0        0        0        0        0        0        0      135
##   pixel180 pixel181 pixel182 pixel183 pixel184 pixel185 pixel186 pixel187
## 1        0        0        0        0        0        0      123      248
## 2      254      254      254      254      254      254      231       54
## 3        9      254      254        8        0        0        0        0
## 4        0        0        0        0        0       27      202        0
## 5      253      253      253      253      253      253      253      107
## 6      254      150        0        0      189      254      243       31
##   pixel188 pixel189 pixel190 pixel191 pixel192 pixel193 pixel194 pixel195
## 1      253      167       10        0        0        0        0        0
## 2       15        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel196 pixel197 pixel198 pixel199 pixel200 pixel201 pixel202 pixel203
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0       72
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0      242
## 5        0        0        0        0        0        0        0       31
## 6        0        0        0        0        0        0        0        0
##   pixel204 pixel205 pixel206 pixel207 pixel208 pixel209 pixel210 pixel211
## 1        0        0        0        0        0        0        0        0
## 2      254      254      254      254      254      254      254      254
## 3        0        0        0        0        9      254      254      106
## 4      155        0        0        0        0        0        0        0
## 5      253      253      253      253      253      253      253      253
## 6        0        0       82      248      209        5        0        0
##   pixel212 pixel213 pixel214 pixel215 pixel216 pixel217 pixel218 pixel219
## 1        0       80      247      253      208       13        0        0
## 2      254      254      254      254      104        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0       27      254       63        0        0        0        0
## 5      253      253      253      215      101        3        0        0
## 6      164      236      254      115        0        0        0        0
##   pixel220 pixel221 pixel222 pixel223 pixel224 pixel225 pixel226 pixel227
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel228 pixel229 pixel230 pixel231 pixel232 pixel233 pixel234 pixel235
## 1        0        0        0        0        0        0        0        0
## 2        0        0       61      191      254      254      254      254
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0      160      207        6        0        0
## 5        0        0       23      210      253      253      253      248
## 6        0        0        0        0        0        8      211      254
##   pixel236 pixel237 pixel238 pixel239 pixel240 pixel241 pixel242 pixel243
## 1        0        0        0        0       29      207      253      235
## 2      254      109       83      199      254      254      254      254
## 3        9      254      254      184        0        0        0        0
## 4        0        0        0        0        0       27      254       65
## 5      161      222      222      246      253      253      253      253
## 6       58        0        0        0        0       33      230      212
##   pixel244 pixel245 pixel246 pixel247 pixel248 pixel249 pixel250 pixel251
## 1       77        0        0        0        0        0        0        0
## 2      243       85        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5      253       39        0        0        0        0        0        0
## 6        6        0        0        0        0        0        0        0
##   pixel252 pixel253 pixel254 pixel255 pixel256 pixel257 pixel258 pixel259
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0      172      254
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0      127
## 5        0        0        0        0        0        0      136      253
## 6        0        0        0        0        0        0        0        0
##   pixel260 pixel261 pixel262 pixel263 pixel264 pixel265 pixel266 pixel267
## 1        0        0        0        0        0        0        0       54
## 2      254      254      202      147      147       45        0       11
## 3        0        0        0        0        9      254      254      184
## 4      254       21        0        0        0        0        0        0
## 5      253      253      229       77        0        0        0       70
## 6        0      119      254      156        3        0        0        0
##   pixel268 pixel269 pixel270 pixel271 pixel272 pixel273 pixel274 pixel275
## 1      209      253      253       88        0        0        0        0
## 2       29      200      254      254      254      171        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0       20      239       65        0        0        0        0
## 5      218      253      253      253      253      215       91        0
## 6        0       18      230      254       33        0        0        0
##   pixel276 pixel277 pixel278 pixel279 pixel280 pixel281 pixel282 pixel283
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel284 pixel285 pixel286 pixel287 pixel288 pixel289 pixel290 pixel291
## 1        0        0        0        0        0        0        0        0
## 2        0        1      174      254      254       89       67        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0       77      254       21        0        0
## 5        0        5      214      253      253      253      195        0
## 6        0        0        0        0       10      212      254       35
##   pixel292 pixel293 pixel294 pixel295 pixel296 pixel297 pixel298 pixel299
## 1        0        0       93      254      253      238      170       17
## 2        0        0        0        0        0      128      252      254
## 3        9      254      254      184        0        0        0        0
## 4        0        0        0        0        0        0      195       65
## 5        0        0        0        0      104      224      253      253
## 6        0        0        0        0        0       33      254      254
##   pixel300 pixel301 pixel302 pixel303 pixel304 pixel305 pixel306 pixel307
## 1        0        0        0        0        0        0        0        0
## 2      254      212       76        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5      253      253      215       29        0        0        0        0
## 6       33        0        0        0        0        0        0        0
##   pixel308 pixel309 pixel310 pixel311 pixel312 pixel313 pixel314 pixel315
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0       47      254      254
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0       70
## 5        0        0        0        0        0      116      253      253
## 6        0        0        0        0        0        0        0        0
##   pixel316 pixel317 pixel318 pixel319 pixel320 pixel321 pixel322 pixel323
## 1        0        0        0        0        0       23      210      254
## 2      254       29        0        0        0        0        0        0
## 3        0        0        0        0        6      185      254      184
## 4      254       21        0        0        0        0        0        0
## 5      253      247       75        0        0        0        0        0
## 6      116      254      154        3        0        0        0        0
##   pixel324 pixel325 pixel326 pixel327 pixel328 pixel329 pixel330 pixel331
## 1      253      159        0        0        0        0        0        0
## 2        0        0       83      254      254      254      153        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0      195      142        0        0        0        0
## 5        0       26      200      253      253      253      253      216
## 6        0       33      254      254       33        0        0        0
##   pixel332 pixel333 pixel334 pixel335 pixel336 pixel337 pixel338 pixel339
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        4        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel340 pixel341 pixel342 pixel343 pixel344 pixel345 pixel346 pixel347
## 1        0        0        0        0        0        0        0        0
## 2        0       80      254      254      240       24        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0       56      251       21        0        0
## 5        0      254      253      253      253      195        0        0
## 6        0        0        0        0      124      254      115        0
##   pixel348 pixel349 pixel350 pixel351 pixel352 pixel353 pixel354 pixel355
## 1       16      209      253      254      240       81        0        0
## 2        0        0        0        0        0        0       25      240
## 3        0       89      254      184        0        0        0        0
## 4        0        0        0        0        0        0      195      227
## 5        0        0        0        0        0        0       26      200
## 6        0        0        0        0        0      160      254      239
##   pixel356 pixel357 pixel358 pixel359 pixel360 pixel361 pixel362 pixel363
## 1        0        0        0        0        0        0        0        0
## 2      254      254      153        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5      253      253      253      253        5        0        0        0
## 6       23        0        0        0        0        0        0        0
##   pixel364 pixel365 pixel366 pixel367 pixel368 pixel369 pixel370 pixel371
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0       64      254      254
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0      254      253      253
## 6        0        0        0        0        0        0        0        0
##   pixel372 pixel373 pixel374 pixel375 pixel376 pixel377 pixel378 pixel379
## 1        0        0        0        0       27      253      253      254
## 2      186        7        0        0        0        0        0        0
## 3        0        0        0        0        4      146      254      184
## 4      222      153        5        0        0        0        0        0
## 5      253       99        0        0        0        0        0        0
## 6      203      254       35        0        0        0        0        0
##   pixel380 pixel381 pixel382 pixel383 pixel384 pixel385 pixel386 pixel387
## 1       13        0        0        0        0        0        0        0
## 2        0        0        0      166      254      254      224       12
## 3        0        0        0        0        0        0        0        0
## 4        0        0      120      240       13        0        0        0
## 5        0        0        0       25      231      253      253      253
## 6        0      197      254      178        0        0        0        0
##   pixel388 pixel389 pixel390 pixel391 pixel392 pixel393 pixel394 pixel395
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5       36        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel396 pixel397 pixel398 pixel399 pixel400 pixel401 pixel402 pixel403
## 1        0        0        0        0        0        0        0       20
## 2       14      232      254      254      254       29        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0       67      251       40        0
## 5        0      254      253      253      253       99        0        0
## 6        0        0        0       23      239      221       11        0
##   pixel404 pixel405 pixel406 pixel407 pixel408 pixel409 pixel410 pixel411
## 1      206      254      254      198        7        0        0        0
## 2        0        0        0        0        0        0        0       75
## 3        9      254      254      184        0        0        0        0
## 4        0        0        0        0        0        0       94      255
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0      198      255      123
##   pixel412 pixel413 pixel414 pixel415 pixel416 pixel417 pixel418 pixel419
## 1        0        0        0        0        0        0        0        0
## 2      254      254      254       17        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4       69        0        0        0        0        0        0        0
## 5      223      253      253      253      129        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel420 pixel421 pixel422 pixel423 pixel424 pixel425 pixel426 pixel427
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0       18      254      254      254
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0      254      253      253
## 6        0        0        0        0        0        0        0       23
##   pixel428 pixel429 pixel430 pixel431 pixel432 pixel433 pixel434 pixel435
## 1        0        0        0      168      253      253      196        7
## 2      254       29        0        0        0        0        0        0
## 3        0        0        0        0        9      254      254      184
## 4        0      234      184        0        0        0        0        0
## 5      253       99        0        0        0        0        0        0
## 6      238      178        0        0        0        0        0        0
##   pixel436 pixel437 pixel438 pixel439 pixel440 pixel441 pixel442 pixel443
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0       48      254      254      254       17
## 3        0        0        0        0        0        0        0        0
## 4        0        0       19      245       69        0        0        0
## 5        0        0        0        0      127      253      253      253
## 6       10      219      254       96        0        0        0        0
##   pixel444 pixel445 pixel446 pixel447 pixel448 pixel449 pixel450 pixel451
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5      129        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel452 pixel453 pixel454 pixel455 pixel456 pixel457 pixel458 pixel459
## 1        0        0        0        0        0        0       20      203
## 2        2      163      254      254      254       29        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0      234      169        0
## 5        0      254      253      253      253       99        0        0
## 6        0        0        0       30      249      204        0        0
##   pixel460 pixel461 pixel462 pixel463 pixel464 pixel465 pixel466 pixel467
## 1      253      248       76        0        0        0        0        0
## 2        0        0        0        0        0        0        0       48
## 3        9      254      254      184        0        0        0        0
## 4        0        0        0        0        0        0        3      199
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0       25      235      254       62
##   pixel468 pixel469 pixel470 pixel471 pixel472 pixel473 pixel474 pixel475
## 1        0        0        0        0        0        0        0        0
## 2      254      254      254       17        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4      182       10        0        0        0        0        0        0
## 5      139      253      253      253       90        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel476 pixel477 pixel478 pixel479 pixel480 pixel481 pixel482 pixel483
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0       94      254      254
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0      254      253      253
## 6        0        0        0        0        0        0        0       26
##   pixel484 pixel485 pixel486 pixel487 pixel488 pixel489 pixel490 pixel491
## 1        0       22      188      253      245       93        0        0
## 2      254      200       12        0        0        0        0        0
## 3        0        0        0        0        9      254      254      184
## 4        0      154      205        4        0        0       26       72
## 5      253       99        0        0        0        0        0        0
## 6      243      204        0        0        0        0        0        0
##   pixel492 pixel493 pixel494 pixel495 pixel496 pixel497 pixel498 pixel499
## 1        0        0        0        0        0        0        0        0
## 2        0        0       16      209      254      254      150        1
## 3        0        0        0        0        0        0        0        0
## 4      128      203      208      254      254      131        0        0
## 5        0        0        0       78      248      253      253      253
## 6       91      254      248       36        0        0        0        0
##   pixel500 pixel501 pixel502 pixel503 pixel504 pixel505 pixel506 pixel507
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        5        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel508 pixel509 pixel510 pixel511 pixel512 pixel513 pixel514 pixel515
## 1        0        0        0        0        0      103      253      253
## 2        0       15      206      254      254      254      202       66
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0       61      254      129
## 5        0      254      253      253      253      216       34        0
## 6        0        0        0       33      254      204        0        0
##   pixel516 pixel517 pixel518 pixel519 pixel520 pixel521 pixel522 pixel523
## 1      191        0        0        0        0        0        0        0
## 2        0        0        0        0        0       21      161      254
## 3        9      254      254      184        0        0        0        0
## 4      113      186      245      251      189       75       56      136
## 5        0        0        0        0        0        0       33      152
## 6        0        0        0       67      241      254      133        0
##   pixel524 pixel525 pixel526 pixel527 pixel528 pixel529 pixel530 pixel531
## 1        0        0        0        0        0        0        0        0
## 2      254      245       31        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4      254       73        0        0        0        0        0        0
## 5      253      253      253      107        1        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel532 pixel533 pixel534 pixel535 pixel536 pixel537 pixel538 pixel539
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0       60      212
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0      206      253      253
## 6        0        0        0        0        0        0        0       33
##   pixel540 pixel541 pixel542 pixel543 pixel544 pixel545 pixel546 pixel547
## 1       89      240      253      195       25        0        0        0
## 2      254      254      254      194       48       48       34       41
## 3        0        0        0        0      156      254      254      184
## 4        0       15      216      233      233      159      104       52
## 5      253      253      140        0        0        0        0        0
## 6      254      214        7        0        0        0       50      242
##   pixel548 pixel549 pixel550 pixel551 pixel552 pixel553 pixel554 pixel555
## 1        0        0        0        0        0        0        0        0
## 2       48      209      254      254      254      171        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0       38      254       73        0        0
## 5       30      139      234      253      253      253      154        2
## 6      254      194       24        0        0        0        0        0
##   pixel556 pixel557 pixel558 pixel559 pixel560 pixel561 pixel562 pixel563
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel564 pixel565 pixel566 pixel567 pixel568 pixel569 pixel570 pixel571
## 1        0        0        0       15      220      253      253       80
## 2        0        0        0       86      243      254      254      254
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0       16      205      253      253      253      250      208
## 6        0        0        0        5      193      254       78        0
##   pixel572 pixel573 pixel574 pixel575 pixel576 pixel577 pixel578 pixel579
## 1        0        0        0        0        0        0        0        0
## 2      254      254      233      243      254      254      254      254
## 3      185      255      255      184        0        0        0        0
## 4        0        0        0        0        0        0        0       18
## 5      106      106      106      200      237      253      253      253
## 6        0       19      128      254      195       36        0        0
##   pixel580 pixel581 pixel582 pixel583 pixel584 pixel585 pixel586 pixel587
## 1        0        0        0        0        0        0        0        0
## 2      254       86        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4      254       73        0        0        0        0        0        0
## 5      253      209       22        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel588 pixel589 pixel590 pixel591 pixel592 pixel593 pixel594 pixel595
## 1        0        0        0        0        0        0        0       94
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0       82      253
## 6        0        0        0        0        0        0        0        0
##   pixel596 pixel597 pixel598 pixel599 pixel600 pixel601 pixel602 pixel603
## 1      253      253      253       94        0        0        0        0
## 2      114      254      254      254      254      254      254      254
## 3        0        0        0        0      185      254      254      184
## 4        0        0        0        0        0        0        0        0
## 5      253      253      253      253      253      253      253      253
## 6      103      254      222       74      143      235      254      228
##   pixel604 pixel605 pixel606 pixel607 pixel608 pixel609 pixel610 pixel611
## 1        0        0        0        0        0        0        0        0
## 2      254      254      254      239       86       11        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0       18      254       73        0        0
## 5      253      253      253      253      209       22        0        0
## 6       83        0        0        0        0        0        0        0
##   pixel612 pixel613 pixel614 pixel615 pixel616 pixel617 pixel618 pixel619
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel620 pixel621 pixel622 pixel623 pixel624 pixel625 pixel626 pixel627
## 1        0        0        0       89      251      253      250      131
## 2        0        0        0        0       13      182      254      254
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        1       91      253      253      253      253
## 6        0        0        0        0       30      242      254      254
##   pixel628 pixel629 pixel630 pixel631 pixel632 pixel633 pixel634 pixel635
## 1        0        0        0        0        0        0        0        0
## 2      254      254      254      254      254      254      243       70
## 3      185      254      254      184        0        0        0        0
## 4        0        0        0        0        0        0        0        5
## 5      253      253      253      253      253      253      213       90
## 6      254      254      252       84        0        0        0        0
##   pixel636 pixel637 pixel638 pixel639 pixel640 pixel641 pixel642 pixel643
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4      206      106        0        0        0        0        0        0
## 5        7        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel644 pixel645 pixel646 pixel647 pixel648 pixel649 pixel650 pixel651
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        1
## 6        0        0        0        0        0        0        0        0
##   pixel652 pixel653 pixel654 pixel655 pixel656 pixel657 pixel658 pixel659
## 1      214      218       95        0        0        0        0        0
## 2        0        8       76      146      254      255      254      255
## 3        0        0        0        0       63      254      254       62
## 4        0        0        0        0        0        0        0        0
## 5       18      129      208      253      253      253      253      159
## 6        0       23       64      158      200      174       61        0
##   pixel660 pixel661 pixel662 pixel663 pixel664 pixel665 pixel666 pixel667
## 1        0        0        0        0        0        0        0        0
## 2      146       19       15        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0      186      159        0        0
## 5      129       90        4        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel668 pixel669 pixel670 pixel671 pixel672 pixel673 pixel674 pixel675
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel676 pixel677 pixel678 pixel679 pixel680 pixel681 pixel682 pixel683
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel684 pixel685 pixel686 pixel687 pixel688 pixel689 pixel690 pixel691
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        6
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel692 pixel693 pixel694 pixel695 pixel696 pixel697 pixel698 pixel699
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4      209      101        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel700 pixel701 pixel702 pixel703 pixel704 pixel705 pixel706 pixel707
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel708 pixel709 pixel710 pixel711 pixel712 pixel713 pixel714 pixel715
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel716 pixel717 pixel718 pixel719 pixel720 pixel721 pixel722 pixel723
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel724 pixel725 pixel726 pixel727 pixel728 pixel729 pixel730 pixel731
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel732 pixel733 pixel734 pixel735 pixel736 pixel737 pixel738 pixel739
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel740 pixel741 pixel742 pixel743 pixel744 pixel745 pixel746 pixel747
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel748 pixel749 pixel750 pixel751 pixel752 pixel753 pixel754 pixel755
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel756 pixel757 pixel758 pixel759 pixel760 pixel761 pixel762 pixel763
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel764 pixel765 pixel766 pixel767 pixel768 pixel769 pixel770 pixel771
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel772 pixel773 pixel774 pixel775 pixel776 pixel777 pixel778 pixel779
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel780 pixel781 pixel782 pixel783
## 1        0        0        0        0
## 2        0        0        0        0
## 3        0        0        0        0
## 4        0        0        0        0
## 5        0        0        0        0
## 6        0        0        0        0

3. Using the training.csv file, plot representations of the first 10 images to understand the data format. Go ahead and divide all pixels by 255 to produce values between 0 and 1. (This is equivalent to min-max scaling.) (5 points)

digits_training_df_pix <- digits_training_df[,2:ncol(digits_training_df)]/255
digits_training_df_pix$label <- digits_training_df$label
head(digits_training_df_pix)
##   pixel0 pixel1 pixel2 pixel3 pixel4 pixel5 pixel6 pixel7 pixel8 pixel9 pixel10
## 1      0      0      0      0      0      0      0      0      0      0       0
## 2      0      0      0      0      0      0      0      0      0      0       0
## 3      0      0      0      0      0      0      0      0      0      0       0
## 4      0      0      0      0      0      0      0      0      0      0       0
## 5      0      0      0      0      0      0      0      0      0      0       0
## 6      0      0      0      0      0      0      0      0      0      0       0
##   pixel11 pixel12 pixel13 pixel14 pixel15 pixel16 pixel17 pixel18 pixel19
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel20 pixel21 pixel22 pixel23 pixel24 pixel25 pixel26 pixel27 pixel28
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel29 pixel30 pixel31 pixel32 pixel33 pixel34 pixel35 pixel36 pixel37
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel38 pixel39 pixel40 pixel41 pixel42 pixel43 pixel44 pixel45 pixel46
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel47 pixel48 pixel49 pixel50 pixel51 pixel52 pixel53 pixel54 pixel55
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel56 pixel57 pixel58 pixel59 pixel60 pixel61 pixel62 pixel63 pixel64
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel65 pixel66 pixel67 pixel68 pixel69 pixel70 pixel71 pixel72 pixel73
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel74 pixel75 pixel76 pixel77 pixel78 pixel79 pixel80 pixel81 pixel82
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel83 pixel84 pixel85 pixel86 pixel87 pixel88 pixel89 pixel90 pixel91
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel92 pixel93 pixel94 pixel95 pixel96 pixel97 pixel98 pixel99 pixel100
## 1       0       0       0       0       0       0       0       0        0
## 2       0       0       0       0       0       0       0       0        0
## 3       0       0       0       0       0       0       0       0        0
## 4       0       0       0       0       0       0       0       0        0
## 5       0       0       0       0       0       0       0       0        0
## 6       0       0       0       0       0       0       0       0        0
##   pixel101 pixel102 pixel103 pixel104 pixel105 pixel106 pixel107 pixel108
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel109 pixel110 pixel111 pixel112 pixel113 pixel114 pixel115 pixel116
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel117 pixel118 pixel119 pixel120    pixel121   pixel122  pixel123
## 1        0        0        0        0 0.000000000 0.00000000 0.0000000
## 2        0        0        0        0 0.000000000 0.07058824 0.1176471
## 3        0        0        0        0 0.000000000 0.00000000 0.0000000
## 4        0        0        0        0 0.000000000 0.00000000 0.0000000
## 5        0        0        0        0 0.003921569 0.09803922 0.5098039
## 6        0        0        0        0 0.000000000 0.00000000 0.0000000
##     pixel124  pixel125  pixel126   pixel127  pixel128    pixel129    pixel130
## 1 0.00000000 0.0000000 0.0000000 0.00000000 0.0000000 0.000000000 0.000000000
## 2 0.53725490 0.5372549 0.7529412 0.33725490 0.2823529 0.003921569 0.000000000
## 3 0.01176471 0.5529412 0.5450980 0.01176471 0.0000000 0.000000000 0.000000000
## 4 0.00000000 0.0000000 0.0000000 0.00000000 0.0000000 0.000000000 0.000000000
## 5 0.60784314 0.9960784 0.9960784 0.99607843 0.6156863 0.117647059 0.007843137
## 6 0.01176471 0.5529412 0.7921569 0.99607843 0.7568627 0.172549020 0.000000000
##   pixel131  pixel132 pixel133  pixel134 pixel135 pixel136 pixel137 pixel138
## 1        0 0.7372549        1 0.3686275        0        0        0        0
## 2        0 0.0000000        0 0.0000000        0        0        0        0
## 3        0 0.0000000        0 0.0000000        0        0        0        0
## 4        0 0.0000000        0 0.0000000        0        0        0        0
## 5        0 0.0000000        0 0.0000000        0        0        0        0
## 6        0 0.0000000        0 0.0000000        0        0        0        0
##   pixel139 pixel140 pixel141 pixel142 pixel143 pixel144 pixel145  pixel146
## 1        0        0        0        0        0        0        0 0.0000000
## 2        0        0        0        0        0        0        0 0.0000000
## 3        0        0        0        0        0        0        0 0.0000000
## 4        0        0        0        0        0        0        0 0.8627451
## 5        0        0        0        0        0        0        0 0.0000000
## 6        0        0        0        0        0        0        0 0.0000000
##    pixel147   pixel148  pixel149  pixel150   pixel151   pixel152  pixel153
## 1 0.0000000 0.00000000 0.0000000 0.0000000 0.00000000 0.00000000 0.0000000
## 2 0.0000000 0.05098039 0.3372549 0.9803922 0.99607843 0.99607843 0.9960784
## 3 0.0000000 0.00000000 0.0000000 0.0000000 0.00000000 0.03529412 0.9960784
## 4 0.7019608 0.02352941 0.0000000 0.0000000 0.00000000 0.00000000 0.0000000
## 5 0.0000000 0.03137255 0.4039216 0.9921569 0.99215686 0.99215686 0.9921569
## 6 0.0000000 0.00000000 0.0000000 0.0000000 0.01960784 0.64705882 0.9960784
##    pixel154   pixel155  pixel156   pixel157  pixel158    pixel159  pixel160
## 1 0.0000000 0.00000000 0.0000000 0.00000000 0.0000000 0.749019608 0.9803922
## 2 0.9960784 0.85098039 0.9647059 0.59215686 0.1254902 0.000000000 0.0000000
## 3 0.9960784 0.03137255 0.0000000 0.00000000 0.0000000 0.000000000 0.0000000
## 4 0.0000000 0.00000000 0.0000000 0.03529412 0.3019608 0.000000000 0.0000000
## 5 0.9921569 0.99215686 0.9921569 0.99215686 0.4470588 0.007843137 0.0000000
## 6 0.7019608 0.63921569 0.9764706 0.95686275 0.2823529 0.000000000 0.0000000
##    pixel161  pixel162 pixel163 pixel164 pixel165 pixel166 pixel167 pixel168
## 1 0.9921569 0.3647059        0        0        0        0        0        0
## 2 0.0000000 0.0000000        0        0        0        0        0        0
## 3 0.0000000 0.0000000        0        0        0        0        0        0
## 4 0.0000000 0.0000000        0        0        0        0        0        0
## 5 0.0000000 0.0000000        0        0        0        0        0        0
## 6 0.0000000 0.0000000        0        0        0        0        0        0
##   pixel169 pixel170 pixel171 pixel172 pixel173  pixel174   pixel175   pixel176
## 1        0        0        0        0        0 0.0000000 0.00000000 0.00000000
## 2        0        0        0        0        0 0.0000000 0.06274510 0.70196078
## 3        0        0        0        0        0 0.0000000 0.00000000 0.00000000
## 4        0        0        0        0        0 0.1098039 0.96862745 0.06666667
## 5        0        0        0        0        0 0.0000000 0.04313725 0.81568627
## 6        0        0        0        0        0 0.0000000 0.00000000 0.00000000
##    pixel177  pixel178  pixel179   pixel180  pixel181  pixel182   pixel183
## 1 0.0000000 0.0000000 0.0000000 0.00000000 0.0000000 0.0000000 0.00000000
## 2 0.9960784 0.9960784 0.9960784 0.99607843 0.9960784 0.9960784 0.99607843
## 3 0.0000000 0.0000000 0.0000000 0.03529412 0.9960784 0.9960784 0.03137255
## 4 0.0000000 0.0000000 0.0000000 0.00000000 0.0000000 0.0000000 0.00000000
## 5 0.9921569 0.9921569 0.9921569 0.99215686 0.9921569 0.9921569 0.99215686
## 6 0.0000000 0.0000000 0.5294118 0.99607843 0.5882353 0.0000000 0.00000000
##    pixel184  pixel185  pixel186  pixel187   pixel188 pixel189   pixel190
## 1 0.0000000 0.0000000 0.4823529 0.9725490 0.99215686 0.654902 0.03921569
## 2 0.9960784 0.9960784 0.9058824 0.2117647 0.05882353 0.000000 0.00000000
## 3 0.0000000 0.0000000 0.0000000 0.0000000 0.00000000 0.000000 0.00000000
## 4 0.0000000 0.1058824 0.7921569 0.0000000 0.00000000 0.000000 0.00000000
## 5 0.9921569 0.9921569 0.9921569 0.4196078 0.00000000 0.000000 0.00000000
## 6 0.7411765 0.9960784 0.9529412 0.1215686 0.00000000 0.000000 0.00000000
##   pixel191 pixel192 pixel193 pixel194 pixel195 pixel196 pixel197 pixel198
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel199 pixel200 pixel201 pixel202  pixel203  pixel204  pixel205  pixel206
## 1        0        0        0        0 0.0000000 0.0000000 0.0000000 0.0000000
## 2        0        0        0        0 0.2823529 0.9960784 0.9960784 0.9960784
## 3        0        0        0        0 0.0000000 0.0000000 0.0000000 0.0000000
## 4        0        0        0        0 0.9490196 0.6078431 0.0000000 0.0000000
## 5        0        0        0        0 0.1215686 0.9921569 0.9921569 0.9921569
## 6        0        0        0        0 0.0000000 0.0000000 0.0000000 0.3215686
##    pixel207   pixel208   pixel209  pixel210  pixel211  pixel212  pixel213
## 1 0.0000000 0.00000000 0.00000000 0.0000000 0.0000000 0.0000000 0.3137255
## 2 0.9960784 0.99607843 0.99607843 0.9960784 0.9960784 0.9960784 0.9960784
## 3 0.0000000 0.03529412 0.99607843 0.9960784 0.4156863 0.0000000 0.0000000
## 4 0.0000000 0.00000000 0.00000000 0.0000000 0.0000000 0.0000000 0.1058824
## 5 0.9921569 0.99215686 0.99215686 0.9921569 0.9921569 0.9921569 0.9921569
## 6 0.9725490 0.81960784 0.01960784 0.0000000 0.0000000 0.6431373 0.9254902
##    pixel214  pixel215  pixel216   pixel217 pixel218 pixel219 pixel220 pixel221
## 1 0.9686275 0.9921569 0.8156863 0.05098039        0        0        0        0
## 2 0.9960784 0.9960784 0.4078431 0.00000000        0        0        0        0
## 3 0.0000000 0.0000000 0.0000000 0.00000000        0        0        0        0
## 4 0.9960784 0.2470588 0.0000000 0.00000000        0        0        0        0
## 5 0.9921569 0.8431373 0.3960784 0.01176471        0        0        0        0
## 6 0.9960784 0.4509804 0.0000000 0.00000000        0        0        0        0
##   pixel222 pixel223 pixel224 pixel225 pixel226 pixel227 pixel228 pixel229
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##     pixel230  pixel231  pixel232   pixel233  pixel234  pixel235   pixel236
## 1 0.00000000 0.0000000 0.0000000 0.00000000 0.0000000 0.0000000 0.00000000
## 2 0.23921569 0.7490196 0.9960784 0.99607843 0.9960784 0.9960784 0.99607843
## 3 0.00000000 0.0000000 0.0000000 0.00000000 0.0000000 0.0000000 0.03529412
## 4 0.00000000 0.6274510 0.8117647 0.02352941 0.0000000 0.0000000 0.00000000
## 5 0.09019608 0.8235294 0.9921569 0.99215686 0.9921569 0.9725490 0.63137255
## 6 0.00000000 0.0000000 0.0000000 0.03137255 0.8274510 0.9960784 0.22745098
##    pixel237  pixel238  pixel239  pixel240  pixel241  pixel242  pixel243
## 1 0.0000000 0.0000000 0.0000000 0.1137255 0.8117647 0.9921569 0.9215686
## 2 0.4274510 0.3254902 0.7803922 0.9960784 0.9960784 0.9960784 0.9960784
## 3 0.9960784 0.9960784 0.7215686 0.0000000 0.0000000 0.0000000 0.0000000
## 4 0.0000000 0.0000000 0.0000000 0.0000000 0.1058824 0.9960784 0.2549020
## 5 0.8705882 0.8705882 0.9647059 0.9921569 0.9921569 0.9921569 0.9921569
## 6 0.0000000 0.0000000 0.0000000 0.0000000 0.1294118 0.9019608 0.8313725
##     pixel244  pixel245 pixel246 pixel247 pixel248 pixel249 pixel250 pixel251
## 1 0.30196078 0.0000000        0        0        0        0        0        0
## 2 0.95294118 0.3333333        0        0        0        0        0        0
## 3 0.00000000 0.0000000        0        0        0        0        0        0
## 4 0.00000000 0.0000000        0        0        0        0        0        0
## 5 0.99215686 0.1529412        0        0        0        0        0        0
## 6 0.02352941 0.0000000        0        0        0        0        0        0
##   pixel252 pixel253 pixel254 pixel255 pixel256 pixel257  pixel258  pixel259
## 1        0        0        0        0        0        0 0.0000000 0.0000000
## 2        0        0        0        0        0        0 0.6745098 0.9960784
## 3        0        0        0        0        0        0 0.0000000 0.0000000
## 4        0        0        0        0        0        0 0.0000000 0.4980392
## 5        0        0        0        0        0        0 0.5333333 0.9921569
## 6        0        0        0        0        0        0 0.0000000 0.0000000
##    pixel260   pixel261  pixel262  pixel263   pixel264  pixel265  pixel266
## 1 0.0000000 0.00000000 0.0000000 0.0000000 0.00000000 0.0000000 0.0000000
## 2 0.9960784 0.99607843 0.7921569 0.5764706 0.57647059 0.1764706 0.0000000
## 3 0.0000000 0.00000000 0.0000000 0.0000000 0.03529412 0.9960784 0.9960784
## 4 0.9960784 0.08235294 0.0000000 0.0000000 0.00000000 0.0000000 0.0000000
## 5 0.9921569 0.99215686 0.8980392 0.3019608 0.00000000 0.0000000 0.0000000
## 6 0.0000000 0.46666667 0.9960784 0.6117647 0.01176471 0.0000000 0.0000000
##     pixel267  pixel268   pixel269  pixel270  pixel271  pixel272  pixel273
## 1 0.21176471 0.8196078 0.99215686 0.9921569 0.3450980 0.0000000 0.0000000
## 2 0.04313725 0.1137255 0.78431373 0.9960784 0.9960784 0.9960784 0.6705882
## 3 0.72156863 0.0000000 0.00000000 0.0000000 0.0000000 0.0000000 0.0000000
## 4 0.00000000 0.0000000 0.07843137 0.9372549 0.2549020 0.0000000 0.0000000
## 5 0.27450980 0.8549020 0.99215686 0.9921569 0.9921569 0.9921569 0.8431373
## 6 0.00000000 0.0000000 0.07058824 0.9019608 0.9960784 0.1294118 0.0000000
##    pixel274 pixel275 pixel276 pixel277 pixel278 pixel279 pixel280 pixel281
## 1 0.0000000        0        0        0        0        0        0        0
## 2 0.0000000        0        0        0        0        0        0        0
## 3 0.0000000        0        0        0        0        0        0        0
## 4 0.0000000        0        0        0        0        0        0        0
## 5 0.3568627        0        0        0        0        0        0        0
## 6 0.0000000        0        0        0        0        0        0        0
##   pixel282 pixel283 pixel284    pixel285  pixel286  pixel287   pixel288
## 1        0        0        0 0.000000000 0.0000000 0.0000000 0.00000000
## 2        0        0        0 0.003921569 0.6823529 0.9960784 0.99607843
## 3        0        0        0 0.000000000 0.0000000 0.0000000 0.00000000
## 4        0        0        0 0.000000000 0.0000000 0.3019608 0.99607843
## 5        0        0        0 0.019607843 0.8392157 0.9921569 0.99215686
## 6        0        0        0 0.000000000 0.0000000 0.0000000 0.03921569
##     pixel289  pixel290  pixel291   pixel292  pixel293  pixel294  pixel295
## 1 0.00000000 0.0000000 0.0000000 0.00000000 0.0000000 0.3647059 0.9960784
## 2 0.34901961 0.2627451 0.0000000 0.00000000 0.0000000 0.0000000 0.0000000
## 3 0.00000000 0.0000000 0.0000000 0.03529412 0.9960784 0.9960784 0.7215686
## 4 0.08235294 0.0000000 0.0000000 0.00000000 0.0000000 0.0000000 0.0000000
## 5 0.99215686 0.7647059 0.0000000 0.00000000 0.0000000 0.0000000 0.0000000
## 6 0.83137255 0.9960784 0.1372549 0.00000000 0.0000000 0.0000000 0.0000000
##    pixel296  pixel297  pixel298   pixel299  pixel300  pixel301  pixel302
## 1 0.9921569 0.9333333 0.6666667 0.06666667 0.0000000 0.0000000 0.0000000
## 2 0.0000000 0.5019608 0.9882353 0.99607843 0.9960784 0.8313725 0.2980392
## 3 0.0000000 0.0000000 0.0000000 0.00000000 0.0000000 0.0000000 0.0000000
## 4 0.0000000 0.0000000 0.7647059 0.25490196 0.0000000 0.0000000 0.0000000
## 5 0.4078431 0.8784314 0.9921569 0.99215686 0.9921569 0.9921569 0.8431373
## 6 0.0000000 0.1294118 0.9960784 0.99607843 0.1294118 0.0000000 0.0000000
##    pixel303 pixel304 pixel305 pixel306 pixel307 pixel308 pixel309 pixel310
## 1 0.0000000        0        0        0        0        0        0        0
## 2 0.0000000        0        0        0        0        0        0        0
## 3 0.0000000        0        0        0        0        0        0        0
## 4 0.0000000        0        0        0        0        0        0        0
## 5 0.1137255        0        0        0        0        0        0        0
## 6 0.0000000        0        0        0        0        0        0        0
##   pixel311 pixel312  pixel313  pixel314  pixel315  pixel316   pixel317
## 1        0        0 0.0000000 0.0000000 0.0000000 0.0000000 0.00000000
## 2        0        0 0.1843137 0.9960784 0.9960784 0.9960784 0.11372549
## 3        0        0 0.0000000 0.0000000 0.0000000 0.0000000 0.00000000
## 4        0        0 0.0000000 0.0000000 0.2745098 0.9960784 0.08235294
## 5        0        0 0.4549020 0.9921569 0.9921569 0.9921569 0.96862745
## 6        0        0 0.0000000 0.0000000 0.0000000 0.4549020 0.99607843
##    pixel318   pixel319   pixel320   pixel321  pixel322  pixel323  pixel324
## 1 0.0000000 0.00000000 0.00000000 0.09019608 0.8235294 0.9960784 0.9921569
## 2 0.0000000 0.00000000 0.00000000 0.00000000 0.0000000 0.0000000 0.0000000
## 3 0.0000000 0.00000000 0.02352941 0.72549020 0.9960784 0.7215686 0.0000000
## 4 0.0000000 0.00000000 0.00000000 0.00000000 0.0000000 0.0000000 0.0000000
## 5 0.2941176 0.00000000 0.00000000 0.00000000 0.0000000 0.0000000 0.0000000
## 6 0.6039216 0.01176471 0.00000000 0.00000000 0.0000000 0.0000000 0.0000000
##    pixel325  pixel326  pixel327  pixel328  pixel329  pixel330  pixel331
## 1 0.6235294 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 2 0.0000000 0.3254902 0.9960784 0.9960784 0.9960784 0.6000000 0.0000000
## 3 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 4 0.0000000 0.7647059 0.5568627 0.0000000 0.0000000 0.0000000 0.0000000
## 5 0.1019608 0.7843137 0.9921569 0.9921569 0.9921569 0.9921569 0.8470588
## 6 0.1294118 0.9960784 0.9960784 0.1294118 0.0000000 0.0000000 0.0000000
##     pixel332 pixel333 pixel334 pixel335 pixel336 pixel337 pixel338 pixel339
## 1 0.00000000        0        0        0        0        0        0        0
## 2 0.00000000        0        0        0        0        0        0        0
## 3 0.00000000        0        0        0        0        0        0        0
## 4 0.00000000        0        0        0        0        0        0        0
## 5 0.01568627        0        0        0        0        0        0        0
## 6 0.00000000        0        0        0        0        0        0        0
##   pixel340  pixel341  pixel342  pixel343  pixel344   pixel345  pixel346
## 1        0 0.0000000 0.0000000 0.0000000 0.0000000 0.00000000 0.0000000
## 2        0 0.3137255 0.9960784 0.9960784 0.9411765 0.09411765 0.0000000
## 3        0 0.0000000 0.0000000 0.0000000 0.0000000 0.00000000 0.0000000
## 4        0 0.0000000 0.0000000 0.2196078 0.9843137 0.08235294 0.0000000
## 5        0 0.9960784 0.9921569 0.9921569 0.9921569 0.76470588 0.0000000
## 6        0 0.0000000 0.0000000 0.0000000 0.4862745 0.99607843 0.4509804
##   pixel347  pixel348  pixel349  pixel350  pixel351  pixel352  pixel353
## 1        0 0.0627451 0.8196078 0.9921569 0.9960784 0.9411765 0.3176471
## 2        0 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 3        0 0.0000000 0.3490196 0.9960784 0.7215686 0.0000000 0.0000000
## 4        0 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 5        0 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 6        0 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.6274510
##     pixel354  pixel355   pixel356  pixel357  pixel358  pixel359   pixel360
## 1 0.00000000 0.0000000 0.00000000 0.0000000 0.0000000 0.0000000 0.00000000
## 2 0.09803922 0.9411765 0.99607843 0.9960784 0.6000000 0.0000000 0.00000000
## 3 0.00000000 0.0000000 0.00000000 0.0000000 0.0000000 0.0000000 0.00000000
## 4 0.76470588 0.8901961 0.00000000 0.0000000 0.0000000 0.0000000 0.00000000
## 5 0.10196078 0.7843137 0.99215686 0.9921569 0.9921569 0.9921569 0.01960784
## 6 0.99607843 0.9372549 0.09019608 0.0000000 0.0000000 0.0000000 0.00000000
##   pixel361 pixel362 pixel363 pixel364 pixel365 pixel366 pixel367 pixel368
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##    pixel369  pixel370  pixel371  pixel372   pixel373   pixel374 pixel375
## 1 0.0000000 0.0000000 0.0000000 0.0000000 0.00000000 0.00000000        0
## 2 0.2509804 0.9960784 0.9960784 0.7294118 0.02745098 0.00000000        0
## 3 0.0000000 0.0000000 0.0000000 0.0000000 0.00000000 0.00000000        0
## 4 0.0000000 0.0000000 0.0000000 0.8705882 0.60000000 0.01960784        0
## 5 0.9960784 0.9921569 0.9921569 0.9921569 0.38823529 0.00000000        0
## 6 0.0000000 0.0000000 0.0000000 0.7960784 0.99607843 0.13725490        0
##     pixel376  pixel377  pixel378  pixel379   pixel380 pixel381  pixel382
## 1 0.10588235 0.9921569 0.9921569 0.9960784 0.05098039 0.000000 0.0000000
## 2 0.00000000 0.0000000 0.0000000 0.0000000 0.00000000 0.000000 0.0000000
## 3 0.01568627 0.5725490 0.9960784 0.7215686 0.00000000 0.000000 0.0000000
## 4 0.00000000 0.0000000 0.0000000 0.0000000 0.00000000 0.000000 0.4705882
## 5 0.00000000 0.0000000 0.0000000 0.0000000 0.00000000 0.000000 0.0000000
## 6 0.00000000 0.0000000 0.0000000 0.0000000 0.00000000 0.772549 0.9960784
##     pixel383   pixel384  pixel385  pixel386   pixel387  pixel388 pixel389
## 1 0.00000000 0.00000000 0.0000000 0.0000000 0.00000000 0.0000000        0
## 2 0.65098039 0.99607843 0.9960784 0.8784314 0.04705882 0.0000000        0
## 3 0.00000000 0.00000000 0.0000000 0.0000000 0.00000000 0.0000000        0
## 4 0.94117647 0.05098039 0.0000000 0.0000000 0.00000000 0.0000000        0
## 5 0.09803922 0.90588235 0.9921569 0.9921569 0.99215686 0.1411765        0
## 6 0.69803922 0.00000000 0.0000000 0.0000000 0.00000000 0.0000000        0
##   pixel390 pixel391 pixel392 pixel393 pixel394 pixel395   pixel396  pixel397
## 1        0        0        0        0        0        0 0.00000000 0.0000000
## 2        0        0        0        0        0        0 0.05490196 0.9098039
## 3        0        0        0        0        0        0 0.00000000 0.0000000
## 4        0        0        0        0        0        0 0.00000000 0.0000000
## 5        0        0        0        0        0        0 0.00000000 0.9960784
## 6        0        0        0        0        0        0 0.00000000 0.0000000
##    pixel398   pixel399  pixel400  pixel401   pixel402   pixel403   pixel404
## 1 0.0000000 0.00000000 0.0000000 0.0000000 0.00000000 0.07843137 0.80784314
## 2 0.9960784 0.99607843 0.9960784 0.1137255 0.00000000 0.00000000 0.00000000
## 3 0.0000000 0.00000000 0.0000000 0.0000000 0.00000000 0.00000000 0.03529412
## 4 0.0000000 0.00000000 0.2627451 0.9843137 0.15686275 0.00000000 0.00000000
## 5 0.9921569 0.99215686 0.9921569 0.3882353 0.00000000 0.00000000 0.00000000
## 6 0.0000000 0.09019608 0.9372549 0.8666667 0.04313725 0.00000000 0.00000000
##    pixel405  pixel406  pixel407   pixel408  pixel409  pixel410  pixel411
## 1 0.9960784 0.9960784 0.7764706 0.02745098 0.0000000 0.0000000 0.0000000
## 2 0.0000000 0.0000000 0.0000000 0.00000000 0.0000000 0.0000000 0.2941176
## 3 0.9960784 0.9960784 0.7215686 0.00000000 0.0000000 0.0000000 0.0000000
## 4 0.0000000 0.0000000 0.0000000 0.00000000 0.0000000 0.3686275 1.0000000
## 5 0.0000000 0.0000000 0.0000000 0.00000000 0.0000000 0.0000000 0.0000000
## 6 0.0000000 0.0000000 0.0000000 0.00000000 0.7764706 1.0000000 0.4823529
##    pixel412  pixel413  pixel414   pixel415  pixel416 pixel417 pixel418 pixel419
## 1 0.0000000 0.0000000 0.0000000 0.00000000 0.0000000        0        0        0
## 2 0.9960784 0.9960784 0.9960784 0.06666667 0.0000000        0        0        0
## 3 0.0000000 0.0000000 0.0000000 0.00000000 0.0000000        0        0        0
## 4 0.2705882 0.0000000 0.0000000 0.00000000 0.0000000        0        0        0
## 5 0.8745098 0.9921569 0.9921569 0.99215686 0.5058824        0        0        0
## 6 0.0000000 0.0000000 0.0000000 0.00000000 0.0000000        0        0        0
##   pixel420 pixel421 pixel422 pixel423   pixel424  pixel425  pixel426   pixel427
## 1        0        0        0        0 0.00000000 0.0000000 0.0000000 0.00000000
## 2        0        0        0        0 0.07058824 0.9960784 0.9960784 0.99607843
## 3        0        0        0        0 0.00000000 0.0000000 0.0000000 0.00000000
## 4        0        0        0        0 0.00000000 0.0000000 0.0000000 0.00000000
## 5        0        0        0        0 0.00000000 0.9960784 0.9921569 0.99215686
## 6        0        0        0        0 0.00000000 0.0000000 0.0000000 0.09019608
##    pixel428  pixel429  pixel430  pixel431   pixel432  pixel433  pixel434
## 1 0.0000000 0.0000000 0.0000000 0.6588235 0.99215686 0.9921569 0.7686275
## 2 0.9960784 0.1137255 0.0000000 0.0000000 0.00000000 0.0000000 0.0000000
## 3 0.0000000 0.0000000 0.0000000 0.0000000 0.03529412 0.9960784 0.9960784
## 4 0.0000000 0.9176471 0.7215686 0.0000000 0.00000000 0.0000000 0.0000000
## 5 0.9921569 0.3882353 0.0000000 0.0000000 0.00000000 0.0000000 0.0000000
## 6 0.9333333 0.6980392 0.0000000 0.0000000 0.00000000 0.0000000 0.0000000
##     pixel435   pixel436  pixel437  pixel438  pixel439  pixel440  pixel441
## 1 0.02745098 0.00000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 2 0.00000000 0.00000000 0.0000000 0.0000000 0.1882353 0.9960784 0.9960784
## 3 0.72156863 0.00000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 4 0.00000000 0.00000000 0.0000000 0.0745098 0.9607843 0.2705882 0.0000000
## 5 0.00000000 0.00000000 0.0000000 0.0000000 0.0000000 0.4980392 0.9921569
## 6 0.00000000 0.03921569 0.8588235 0.9960784 0.3764706 0.0000000 0.0000000
##    pixel442   pixel443  pixel444 pixel445 pixel446 pixel447 pixel448 pixel449
## 1 0.0000000 0.00000000 0.0000000        0        0        0        0        0
## 2 0.9960784 0.06666667 0.0000000        0        0        0        0        0
## 3 0.0000000 0.00000000 0.0000000        0        0        0        0        0
## 4 0.0000000 0.00000000 0.0000000        0        0        0        0        0
## 5 0.9921569 0.99215686 0.5058824        0        0        0        0        0
## 6 0.0000000 0.00000000 0.0000000        0        0        0        0        0
##   pixel450 pixel451    pixel452  pixel453  pixel454  pixel455  pixel456
## 1        0        0 0.000000000 0.0000000 0.0000000 0.0000000 0.0000000
## 2        0        0 0.007843137 0.6392157 0.9960784 0.9960784 0.9960784
## 3        0        0 0.000000000 0.0000000 0.0000000 0.0000000 0.0000000
## 4        0        0 0.000000000 0.0000000 0.0000000 0.0000000 0.0000000
## 5        0        0 0.000000000 0.9960784 0.9921569 0.9921569 0.9921569
## 6        0        0 0.000000000 0.0000000 0.0000000 0.1176471 0.9764706
##    pixel457   pixel458  pixel459   pixel460  pixel461  pixel462  pixel463
## 1 0.0000000 0.07843137 0.7960784 0.99215686 0.9725490 0.2980392 0.0000000
## 2 0.1137255 0.00000000 0.0000000 0.00000000 0.0000000 0.0000000 0.0000000
## 3 0.0000000 0.00000000 0.0000000 0.03529412 0.9960784 0.9960784 0.7215686
## 4 0.9176471 0.66274510 0.0000000 0.00000000 0.0000000 0.0000000 0.0000000
## 5 0.3882353 0.00000000 0.0000000 0.00000000 0.0000000 0.0000000 0.0000000
## 6 0.8000000 0.00000000 0.0000000 0.00000000 0.0000000 0.0000000 0.0000000
##     pixel464  pixel465   pixel466  pixel467  pixel468   pixel469  pixel470
## 1 0.00000000 0.0000000 0.00000000 0.0000000 0.0000000 0.00000000 0.0000000
## 2 0.00000000 0.0000000 0.00000000 0.1882353 0.9960784 0.99607843 0.9960784
## 3 0.00000000 0.0000000 0.00000000 0.0000000 0.0000000 0.00000000 0.0000000
## 4 0.00000000 0.0000000 0.01176471 0.7803922 0.7137255 0.03921569 0.0000000
## 5 0.00000000 0.0000000 0.00000000 0.0000000 0.5450980 0.99215686 0.9921569
## 6 0.09803922 0.9215686 0.99607843 0.2431373 0.0000000 0.00000000 0.0000000
##     pixel471  pixel472 pixel473 pixel474 pixel475 pixel476 pixel477 pixel478
## 1 0.00000000 0.0000000        0        0        0        0        0        0
## 2 0.06666667 0.0000000        0        0        0        0        0        0
## 3 0.00000000 0.0000000        0        0        0        0        0        0
## 4 0.00000000 0.0000000        0        0        0        0        0        0
## 5 0.99215686 0.3529412        0        0        0        0        0        0
## 6 0.00000000 0.0000000        0        0        0        0        0        0
##   pixel479 pixel480  pixel481  pixel482  pixel483  pixel484   pixel485
## 1        0        0 0.0000000 0.0000000 0.0000000 0.0000000 0.08627451
## 2        0        0 0.3686275 0.9960784 0.9960784 0.9960784 0.78431373
## 3        0        0 0.0000000 0.0000000 0.0000000 0.0000000 0.00000000
## 4        0        0 0.0000000 0.0000000 0.0000000 0.0000000 0.60392157
## 5        0        0 0.9960784 0.9921569 0.9921569 0.9921569 0.38823529
## 6        0        0 0.0000000 0.0000000 0.1019608 0.9529412 0.80000000
##     pixel486   pixel487   pixel488  pixel489  pixel490  pixel491  pixel492
## 1 0.73725490 0.99215686 0.96078431 0.3647059 0.0000000 0.0000000 0.0000000
## 2 0.04705882 0.00000000 0.00000000 0.0000000 0.0000000 0.0000000 0.0000000
## 3 0.00000000 0.00000000 0.03529412 0.9960784 0.9960784 0.7215686 0.0000000
## 4 0.80392157 0.01568627 0.00000000 0.0000000 0.1019608 0.2823529 0.5019608
## 5 0.00000000 0.00000000 0.00000000 0.0000000 0.0000000 0.0000000 0.0000000
## 6 0.00000000 0.00000000 0.00000000 0.0000000 0.0000000 0.0000000 0.3568627
##    pixel493  pixel494  pixel495  pixel496  pixel497  pixel498    pixel499
## 1 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.000000000
## 2 0.0000000 0.0627451 0.8196078 0.9960784 0.9960784 0.5882353 0.003921569
## 3 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.000000000
## 4 0.7960784 0.8156863 0.9960784 0.9960784 0.5137255 0.0000000 0.000000000
## 5 0.0000000 0.0000000 0.3058824 0.9725490 0.9921569 0.9921569 0.992156863
## 6 0.9960784 0.9725490 0.1411765 0.0000000 0.0000000 0.0000000 0.000000000
##     pixel500 pixel501 pixel502 pixel503 pixel504 pixel505 pixel506 pixel507
## 1 0.00000000        0        0        0        0        0        0        0
## 2 0.00000000        0        0        0        0        0        0        0
## 3 0.00000000        0        0        0        0        0        0        0
## 4 0.00000000        0        0        0        0        0        0        0
## 5 0.01960784        0        0        0        0        0        0        0
## 6 0.00000000        0        0        0        0        0        0        0
##   pixel508   pixel509  pixel510  pixel511  pixel512  pixel513  pixel514
## 1        0 0.00000000 0.0000000 0.0000000 0.0000000 0.4039216 0.9921569
## 2        0 0.05882353 0.8078431 0.9960784 0.9960784 0.9960784 0.7921569
## 3        0 0.00000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 4        0 0.00000000 0.0000000 0.0000000 0.0000000 0.2392157 0.9960784
## 5        0 0.99607843 0.9921569 0.9921569 0.9921569 0.8470588 0.1333333
## 6        0 0.00000000 0.0000000 0.1294118 0.9960784 0.8000000 0.0000000
##    pixel515   pixel516  pixel517  pixel518  pixel519  pixel520   pixel521
## 1 0.9921569 0.74901961 0.0000000 0.0000000 0.0000000 0.0000000 0.00000000
## 2 0.2588235 0.00000000 0.0000000 0.0000000 0.0000000 0.0000000 0.08235294
## 3 0.0000000 0.03529412 0.9960784 0.9960784 0.7215686 0.0000000 0.00000000
## 4 0.5058824 0.44313725 0.7294118 0.9607843 0.9843137 0.7411765 0.29411765
## 5 0.0000000 0.00000000 0.0000000 0.0000000 0.0000000 0.0000000 0.00000000
## 6 0.0000000 0.00000000 0.0000000 0.0000000 0.2627451 0.9450980 0.99607843
##    pixel522  pixel523  pixel524  pixel525  pixel526  pixel527    pixel528
## 1 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.000000000
## 2 0.6313725 0.9960784 0.9960784 0.9607843 0.1215686 0.0000000 0.000000000
## 3 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.000000000
## 4 0.2196078 0.5333333 0.9960784 0.2862745 0.0000000 0.0000000 0.000000000
## 5 0.1294118 0.5960784 0.9921569 0.9921569 0.9921569 0.4196078 0.003921569
## 6 0.5215686 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.000000000
##   pixel529 pixel530 pixel531 pixel532 pixel533 pixel534 pixel535 pixel536
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##    pixel537  pixel538  pixel539  pixel540   pixel541   pixel542  pixel543
## 1 0.0000000 0.0000000 0.0000000 0.3490196 0.94117647 0.99215686 0.7647059
## 2 0.0000000 0.2352941 0.8313725 0.9960784 0.99607843 0.99607843 0.7607843
## 3 0.0000000 0.0000000 0.0000000 0.0000000 0.00000000 0.00000000 0.0000000
## 4 0.0000000 0.0000000 0.0000000 0.0000000 0.05882353 0.84705882 0.9137255
## 5 0.8078431 0.9921569 0.9921569 0.9921569 0.99215686 0.54901961 0.0000000
## 6 0.0000000 0.0000000 0.1294118 0.9960784 0.83921569 0.02745098 0.0000000
##     pixel544  pixel545  pixel546  pixel547  pixel548  pixel549   pixel550
## 1 0.09803922 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.00000000
## 2 0.18823529 0.1882353 0.1333333 0.1607843 0.1882353 0.8196078 0.99607843
## 3 0.61176471 0.9960784 0.9960784 0.7215686 0.0000000 0.0000000 0.00000000
## 4 0.91372549 0.6235294 0.4078431 0.2039216 0.0000000 0.0000000 0.00000000
## 5 0.00000000 0.0000000 0.0000000 0.0000000 0.1176471 0.5450980 0.91764706
## 6 0.00000000 0.0000000 0.1960784 0.9490196 0.9960784 0.7607843 0.09411765
##    pixel551  pixel552  pixel553  pixel554    pixel555 pixel556 pixel557
## 1 0.0000000 0.0000000 0.0000000 0.0000000 0.000000000        0        0
## 2 0.9960784 0.9960784 0.6705882 0.0000000 0.000000000        0        0
## 3 0.0000000 0.0000000 0.0000000 0.0000000 0.000000000        0        0
## 4 0.1490196 0.9960784 0.2862745 0.0000000 0.000000000        0        0
## 5 0.9921569 0.9921569 0.9921569 0.6039216 0.007843137        0        0
## 6 0.0000000 0.0000000 0.0000000 0.0000000 0.000000000        0        0
##   pixel558 pixel559 pixel560 pixel561 pixel562 pixel563 pixel564  pixel565
## 1        0        0        0        0        0        0        0 0.0000000
## 2        0        0        0        0        0        0        0 0.0000000
## 3        0        0        0        0        0        0        0 0.0000000
## 4        0        0        0        0        0        0        0 0.0000000
## 5        0        0        0        0        0        0        0 0.0627451
## 6        0        0        0        0        0        0        0 0.0000000
##    pixel566   pixel567  pixel568  pixel569  pixel570  pixel571  pixel572
## 1 0.0000000 0.05882353 0.8627451 0.9921569 0.9921569 0.3137255 0.0000000
## 2 0.0000000 0.33725490 0.9529412 0.9960784 0.9960784 0.9960784 0.9960784
## 3 0.0000000 0.00000000 0.0000000 0.0000000 0.0000000 0.0000000 0.7254902
## 4 0.0000000 0.00000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 5 0.8039216 0.99215686 0.9921569 0.9921569 0.9803922 0.8156863 0.4156863
## 6 0.0000000 0.01960784 0.7568627 0.9960784 0.3058824 0.0000000 0.0000000
##    pixel573  pixel574  pixel575  pixel576  pixel577  pixel578   pixel579
## 1 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.00000000
## 2 0.9960784 0.9137255 0.9529412 0.9960784 0.9960784 0.9960784 0.99607843
## 3 1.0000000 1.0000000 0.7215686 0.0000000 0.0000000 0.0000000 0.00000000
## 4 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.07058824
## 5 0.4156863 0.4156863 0.7843137 0.9294118 0.9921569 0.9921569 0.99215686
## 6 0.0745098 0.5019608 0.9960784 0.7647059 0.1411765 0.0000000 0.00000000
##    pixel580  pixel581   pixel582 pixel583 pixel584 pixel585 pixel586 pixel587
## 1 0.0000000 0.0000000 0.00000000        0        0        0        0        0
## 2 0.9960784 0.3372549 0.00000000        0        0        0        0        0
## 3 0.0000000 0.0000000 0.00000000        0        0        0        0        0
## 4 0.9960784 0.2862745 0.00000000        0        0        0        0        0
## 5 0.9921569 0.8196078 0.08627451        0        0        0        0        0
## 6 0.0000000 0.0000000 0.00000000        0        0        0        0        0
##   pixel588 pixel589 pixel590 pixel591 pixel592 pixel593  pixel594  pixel595
## 1        0        0        0        0        0        0 0.0000000 0.3686275
## 2        0        0        0        0        0        0 0.0000000 0.0000000
## 3        0        0        0        0        0        0 0.0000000 0.0000000
## 4        0        0        0        0        0        0 0.0000000 0.0000000
## 5        0        0        0        0        0        0 0.3215686 0.9921569
## 6        0        0        0        0        0        0 0.0000000 0.0000000
##    pixel596  pixel597  pixel598  pixel599  pixel600  pixel601  pixel602
## 1 0.9921569 0.9921569 0.9921569 0.3686275 0.0000000 0.0000000 0.0000000
## 2 0.4470588 0.9960784 0.9960784 0.9960784 0.9960784 0.9960784 0.9960784
## 3 0.0000000 0.0000000 0.0000000 0.0000000 0.7254902 0.9960784 0.9960784
## 4 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 5 0.9921569 0.9921569 0.9921569 0.9921569 0.9921569 0.9921569 0.9921569
## 6 0.4039216 0.9960784 0.8705882 0.2901961 0.5607843 0.9215686 0.9960784
##    pixel603  pixel604  pixel605  pixel606   pixel607  pixel608   pixel609
## 1 0.0000000 0.0000000 0.0000000 0.0000000 0.00000000 0.0000000 0.00000000
## 2 0.9960784 0.9960784 0.9960784 0.9960784 0.93725490 0.3372549 0.04313725
## 3 0.7215686 0.0000000 0.0000000 0.0000000 0.00000000 0.0000000 0.00000000
## 4 0.0000000 0.0000000 0.0000000 0.0000000 0.07058824 0.9960784 0.28627451
## 5 0.9921569 0.9921569 0.9921569 0.9921569 0.99215686 0.8196078 0.08627451
## 6 0.8941176 0.3254902 0.0000000 0.0000000 0.00000000 0.0000000 0.00000000
##   pixel610 pixel611 pixel612 pixel613 pixel614 pixel615 pixel616 pixel617
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel618 pixel619 pixel620 pixel621    pixel622  pixel623   pixel624
## 1        0        0        0        0 0.000000000 0.3490196 0.98431373
## 2        0        0        0        0 0.000000000 0.0000000 0.05098039
## 3        0        0        0        0 0.000000000 0.0000000 0.00000000
## 4        0        0        0        0 0.000000000 0.0000000 0.00000000
## 5        0        0        0        0 0.003921569 0.3568627 0.99215686
## 6        0        0        0        0 0.000000000 0.0000000 0.11764706
##    pixel625  pixel626  pixel627  pixel628  pixel629  pixel630  pixel631
## 1 0.9921569 0.9803922 0.5137255 0.0000000 0.0000000 0.0000000 0.0000000
## 2 0.7137255 0.9960784 0.9960784 0.9960784 0.9960784 0.9960784 0.9960784
## 3 0.0000000 0.0000000 0.0000000 0.7254902 0.9960784 0.9960784 0.7215686
## 4 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 5 0.9921569 0.9921569 0.9921569 0.9921569 0.9921569 0.9921569 0.9921569
## 6 0.9490196 0.9960784 0.9960784 0.9960784 0.9960784 0.9882353 0.3294118
##    pixel632  pixel633  pixel634   pixel635   pixel636  pixel637 pixel638
## 1 0.0000000 0.0000000 0.0000000 0.00000000 0.00000000 0.0000000        0
## 2 0.9960784 0.9960784 0.9529412 0.27450980 0.00000000 0.0000000        0
## 3 0.0000000 0.0000000 0.0000000 0.00000000 0.00000000 0.0000000        0
## 4 0.0000000 0.0000000 0.0000000 0.01960784 0.80784314 0.4156863        0
## 5 0.9921569 0.9921569 0.8352941 0.35294118 0.02745098 0.0000000        0
## 6 0.0000000 0.0000000 0.0000000 0.00000000 0.00000000 0.0000000        0
##   pixel639 pixel640 pixel641 pixel642 pixel643 pixel644 pixel645 pixel646
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel647 pixel648 pixel649 pixel650    pixel651   pixel652   pixel653
## 1        0        0        0        0 0.000000000 0.83921569 0.85490196
## 2        0        0        0        0 0.000000000 0.00000000 0.03137255
## 3        0        0        0        0 0.000000000 0.00000000 0.00000000
## 4        0        0        0        0 0.000000000 0.00000000 0.00000000
## 5        0        0        0        0 0.003921569 0.07058824 0.50588235
## 6        0        0        0        0 0.000000000 0.00000000 0.09019608
##    pixel654  pixel655  pixel656  pixel657  pixel658  pixel659  pixel660
## 1 0.3725490 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 2 0.2980392 0.5725490 0.9960784 1.0000000 0.9960784 1.0000000 0.5725490
## 3 0.0000000 0.0000000 0.2470588 0.9960784 0.9960784 0.2431373 0.0000000
## 4 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## 5 0.8156863 0.9921569 0.9921569 0.9921569 0.9921569 0.6235294 0.5058824
## 6 0.2509804 0.6196078 0.7843137 0.6823529 0.2392157 0.0000000 0.0000000
##    pixel661   pixel662 pixel663  pixel664  pixel665 pixel666 pixel667 pixel668
## 1 0.0000000 0.00000000        0 0.0000000 0.0000000        0        0        0
## 2 0.0745098 0.05882353        0 0.0000000 0.0000000        0        0        0
## 3 0.0000000 0.00000000        0 0.0000000 0.0000000        0        0        0
## 4 0.0000000 0.00000000        0 0.7294118 0.6235294        0        0        0
## 5 0.3529412 0.01568627        0 0.0000000 0.0000000        0        0        0
## 6 0.0000000 0.00000000        0 0.0000000 0.0000000        0        0        0
##   pixel669 pixel670 pixel671 pixel672 pixel673 pixel674 pixel675 pixel676
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel677 pixel678 pixel679 pixel680 pixel681 pixel682 pixel683 pixel684
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel685 pixel686 pixel687 pixel688 pixel689 pixel690   pixel691  pixel692
## 1        0        0        0        0        0        0 0.00000000 0.0000000
## 2        0        0        0        0        0        0 0.00000000 0.0000000
## 3        0        0        0        0        0        0 0.00000000 0.0000000
## 4        0        0        0        0        0        0 0.02352941 0.8196078
## 5        0        0        0        0        0        0 0.00000000 0.0000000
## 6        0        0        0        0        0        0 0.00000000 0.0000000
##    pixel693 pixel694 pixel695 pixel696 pixel697 pixel698 pixel699 pixel700
## 1 0.0000000        0        0        0        0        0        0        0
## 2 0.0000000        0        0        0        0        0        0        0
## 3 0.0000000        0        0        0        0        0        0        0
## 4 0.3960784        0        0        0        0        0        0        0
## 5 0.0000000        0        0        0        0        0        0        0
## 6 0.0000000        0        0        0        0        0        0        0
##   pixel701 pixel702 pixel703 pixel704 pixel705 pixel706 pixel707 pixel708
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel709 pixel710 pixel711 pixel712 pixel713 pixel714 pixel715 pixel716
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel717 pixel718 pixel719 pixel720 pixel721 pixel722 pixel723 pixel724
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel725 pixel726 pixel727 pixel728 pixel729 pixel730 pixel731 pixel732
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel733 pixel734 pixel735 pixel736 pixel737 pixel738 pixel739 pixel740
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel741 pixel742 pixel743 pixel744 pixel745 pixel746 pixel747 pixel748
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel749 pixel750 pixel751 pixel752 pixel753 pixel754 pixel755 pixel756
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel757 pixel758 pixel759 pixel760 pixel761 pixel762 pixel763 pixel764
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel765 pixel766 pixel767 pixel768 pixel769 pixel770 pixel771 pixel772
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel773 pixel774 pixel775 pixel776 pixel777 pixel778 pixel779 pixel780
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel781 pixel782 pixel783 label
## 1        0        0        0     1
## 2        0        0        0     0
## 3        0        0        0     1
## 4        0        0        0     4
## 5        0        0        0     0
## 6        0        0        0     0

Borrowing heavily from Stack Overflow, create a function to rotate our numbers to match presentation.

rotate <- function(matrix){apply(matrix,2, rev)}

Visualize with the 255 scale.

par(mfrow=c(2,5))
for (i in 1:10){
    digit_image <- rotate(matrix(rev(as.numeric(digits_training_df_pix[i,-c(1, 786)])), nrow = 28))
    image(digit_image, col = grey.colors(255), axes=FALSE, xlim=c(0,1), ylim=c(-0.2,1.2))
}

Looking at our first ten labels, this looks good.

digits_training_df_pix$label[1:10]
##  [1] 1 0 1 4 0 0 7 3 5 3

4. What is the frequency distribution of the numbers in the dataset? (5 points)

Looking just at the training data set - first column is the label, the digit that was drawn by the user.

train_label <- digits_training_df_pix$label
train_frequency <- as.data.frame(table(train_label)) #table for Freq
ggplot(train_frequency, aes(x = train_label,y=Freq)) + 
  geom_histogram(stat='identity') + 
  labs(title = 'Frequency Distribution of Drawn Digits - Training Set',
       x = 'Drawn Digit')

5. For each number, provide the mean pixel intensity. What does this tell you? (5 points)

Create a function to calculate pixel intensity.

pixel_intensity_calc <- function(df) { 
    digit_rows <- df %>%
    rowwise() %>%
    dplyr::mutate(pixel_intensity_calc = sum(c_across(starts_with("pixel")))) %>%
    ungroup()
    
    return(digit_rows)
}

Use the function to calculate its mean.

pixel_intensity_mean <- 
    pixel_intensity_calc(digits_training_df_pix) %>% 
    group_by(label) %>%
    summarise(pixel_intensity_mean = mean(pixel_intensity_calc)) %>%
    ungroup()
pixel_intensity_mean
## # A tibble: 10 x 2
##    label pixel_intensity_mean
##    <int>                <dbl>
##  1     0                136. 
##  2     1                 59.6
##  3     2                117. 
##  4     3                111. 
##  5     4                 95.0
##  6     5                101. 
##  7     6                109. 
##  8     7                 89.9
##  9     8                118. 
## 10     9                 96.3

My guess is that circular strokes in drawing digits lead to larger intensities than straight ones.

6. Reduce the data by using principal components that account for 95% of the variance. How many components did you generate? Use PCA to generate all possible components (100% of the variance). How many components are possible? Why? (5 points)

digit_train_pca <- prcomp(digits_training_df_pix)

Establish the standard deviation of the PCA and plot the cumulative variance.

digit_train_pca_sd <- digit_train_pca$sdev
digit_train_pca_cum_var <- cumsum(digit_train_pca_sd^2)/sum(digit_train_pca_sd^2)
plot(digit_train_pca_cum_var)

Looks like we hit 95% after 100 but before 200. Let’s try halfway - 140 looks better.

which.max(digit_train_pca_cum_var >= .95)
## [1] 139
which.max(digit_train_pca_cum_var >= 1)
## [1] 705

We hit 95% variance at 139 and 100% at 705. 785 components are possible - one for each column in the original data set.

7. Plot the first 10 images generated by PCA. They will appear to be noise. Why? (5 points)

digit_train_pca_rotation <- digit_train_pca$rotation
for (d in 1:10){
  plot(4,4, xlim=c(1,28), ylim=c(1,28))
  imageShow(array(digit_train_pca_rotation[,d],c(28,28)))
}

Looks a little like an ultrasound…

8. Now, select only those images that have labels that are 8’s. Re-run PCA that accounts for all of the variance (100%). Plot the first 10 images. What do you see? (5 points)

digits_training_df_pix_8 <- digits_training_df_pix %>% filter(digits_training_df_pix$label == 8)
head(digits_training_df_pix_8$label)
## [1] 8 8 8 8 8 8
digit_train_pca_8 <- prcomp(digits_training_df_pix_8)

Establish the standard deviation of the PCA and plot the cumulative variance.

digit_train_pca_sd_8 <- digit_train_pca_8$sdev
digit_train_pca_cum_var_8 <- cumsum(digit_train_pca_sd_8^2)/sum(digit_train_pca_sd_8^2)
plot(digit_train_pca_cum_var_8)

which.max(digit_train_pca_cum_var_8 >= .95)
## [1] 135
which.max(digit_train_pca_cum_var_8 >= 1)
## [1] 537
digit_train_pca_rotation_8 <- digit_train_pca_8$rotation
for (d in 1:10){
  plot(4,4, xlim=c(1,28), ylim=c(1,28))
  imageShow(array(digit_train_pca_rotation_8[,d],c(28,28)))
}

The variance hit 95% slower than I would have thought. But our images are clearly horizontal eights - that look vaguely like anthrax or a worn hippy tattoo.

9. An incorrect approach to predicting the images would be to build a linear regression model with y as the digit values and X as the pixel matrix. Instead, we can build a multinomial model that classifies the digits. Build a multinomial model on the entirety of the training set. Then provide its classification accuracy (percent correctly identified) as well as a matrix of observed versus forecast values (confusion matrix). This matrix will be a 10 x 10, and correct classifications will be on the diagonal. (10 points)

We split our training set into train and test sets before building the model - which might be breaking the rules.

train_size <- floor(.8 * nrow(digits_training_df_pix))
set.seed(6789)
train_index <- sample(seq_len(nrow(digits_training_df_pix)), size = train_size)

train <- digits_training_df_pix[train_index,]
test <- digits_training_df_pix[-train_index,]
train_x <- train[,names(train) != "label"]
train_x <- lapply(train_x, as.numeric)
train_y <- as.factor(train$label)
test_x <- test[,names(test) != "label"]
test_x <- lapply(test_x, as.numeric)
test_y <- as.factor(test$label)

We will use the multinom function from the nnet package.

digit_mn_model <- multinom(train_y~., train_x, MaxNWts = 100000)
## # weights:  7860 (7065 variable)
## initial  value 77366.859125 
## iter  10 value 22615.011966
## iter  20 value 18121.636376
## iter  30 value 16868.689561
## iter  40 value 16254.576319
## iter  50 value 15907.790404
## iter  60 value 15233.728359
## iter  70 value 13943.579896
## iter  80 value 12150.556849
## iter  90 value 10928.878374
## iter 100 value 10175.200392
## final  value 10175.200392 
## stopped after 100 iterations
digit_test_prediction <- predict(digit_mn_model, newdata = test_x)
confusionMatrix(digit_test_prediction,test_y)
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction   0   1   2   3   4   5   6   7   8   9
##          0 834   0  13   6   1   9   6   1   8   7
##          1   2 917  20  10   6   9   6  14  41   9
##          2   1   6 705  21   3   4   7   6  11   0
##          3   2   6  14 769   3  30   0   0  27  11
##          4   3   2  22   2 778   8  11  10   8  35
##          5   3   2   7  31   3 595  14   4  27   7
##          6   8   3   8   2   6  16 779   2   6   0
##          7   1   2   8   8   4   3   1 823   3  28
##          8   7   7  27  13   6  11   6   1 656   3
##          9   1   1  10  12  31  16   1  33  25 705
## 
## Overall Statistics
##                                           
##                Accuracy : 0.9001          
##                  95% CI : (0.8935, 0.9065)
##     No Information Rate : 0.1126          
##     P-Value [Acc > NIR] : < 2.2e-16       
##                                           
##                   Kappa : 0.8889          
##                                           
##  Mcnemar's Test P-Value : 1.373e-15       
## 
## Statistics by Class:
## 
##                      Class: 0 Class: 1 Class: 2 Class: 3 Class: 4 Class: 5
## Sensitivity           0.96752   0.9693  0.84532  0.87986  0.92509  0.84879
## Specificity           0.99323   0.9843  0.99220  0.98764  0.98664  0.98727
## Pos Pred Value        0.94237   0.8868  0.92277  0.89211  0.88510  0.85859
## Neg Pred Value        0.99627   0.9961  0.98311  0.98607  0.99162  0.98625
## Prevalence            0.10262   0.1126  0.09929  0.10405  0.10012  0.08345
## Detection Rate        0.09929   0.1092  0.08393  0.09155  0.09262  0.07083
## Detection Prevalence  0.10536   0.1231  0.09095  0.10262  0.10464  0.08250
## Balanced Accuracy     0.98038   0.9768  0.91876  0.93375  0.95586  0.91803
##                      Class: 6 Class: 7 Class: 8 Class: 9
## Sensitivity           0.93742  0.92058  0.80788  0.87578
## Specificity           0.99326  0.99227  0.98933  0.98288
## Pos Pred Value        0.93855  0.93417  0.89009  0.84431
## Neg Pred Value        0.99313  0.99056  0.97964  0.98678
## Prevalence            0.09893  0.10643  0.09667  0.09583
## Detection Rate        0.09274  0.09798  0.07810  0.08393
## Detection Prevalence  0.09881  0.10488  0.08774  0.09940
## Balanced Accuracy     0.96534  0.95643  0.89860  0.92933

Struggled the mist with 8s followed by 5s. Something about those rounded strokes is difficult to discern.

Sources consulted: https://www.youtube.com/watch?v=OowGKNgdowA https://stackoverflow.com/questions/37953644/r-image-plot-mnist-dataset https://python-course.eu/machine-learning/training-and-testing-with-mnist.php https://stackoverflow.com/questions/21729310/unexpected-apply-function-behaviour-in-r https://stackoverflow.com/questions/24604496/r-backwards-principal-component-calculation https://www.rdocumentation.org/packages/graphics/versions/3.6.2/topics/image https://forum.image.sc/t/trackmate-which-pixels-are-used-to-calculate-mean-pixel-intensity/6078 https://stats.oarc.ucla.edu/r/dae/multinomial-logistic-regression/

Final Problem 3. 30 points

You are to compete in the House Prices: Advanced Regression Techniques competition https://www.kaggle.com/c/house-prices-advanced-regression-techniques . I want you to do the following.

Loading the data.

house_train <- read.csv("adv_house_train.csv")
house_test <- read.csv('adv_house_test.csv')

Descriptive and Inferential Statistics.

Provide univariate descriptive statistics and appropriate plots for the training data set. Provide a scatterplot matrix for at least two of the independent variables and the dependent variable. Derive a correlation matrix for any three quantitative variables in the dataset. Test the hypotheses that the correlations between each pairwise set of variables is 0 and provide an 80% confidence interval. Discuss the meaning of your analysis. Would you be worried about familywise error? Why or why not? 5 points

summary(house_train)
##        Id           MSSubClass      MSZoning          LotFrontage    
##  Min.   :   1.0   Min.   : 20.0   Length:1460        Min.   : 21.00  
##  1st Qu.: 365.8   1st Qu.: 20.0   Class :character   1st Qu.: 59.00  
##  Median : 730.5   Median : 50.0   Mode  :character   Median : 69.00  
##  Mean   : 730.5   Mean   : 56.9                      Mean   : 70.05  
##  3rd Qu.:1095.2   3rd Qu.: 70.0                      3rd Qu.: 80.00  
##  Max.   :1460.0   Max.   :190.0                      Max.   :313.00  
##                                                      NA's   :259     
##     LotArea          Street             Alley             LotShape        
##  Min.   :  1300   Length:1460        Length:1460        Length:1460       
##  1st Qu.:  7554   Class :character   Class :character   Class :character  
##  Median :  9478   Mode  :character   Mode  :character   Mode  :character  
##  Mean   : 10517                                                           
##  3rd Qu.: 11602                                                           
##  Max.   :215245                                                           
##                                                                           
##  LandContour         Utilities          LotConfig          LandSlope        
##  Length:1460        Length:1460        Length:1460        Length:1460       
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##                                                                             
##  Neighborhood        Condition1         Condition2          BldgType        
##  Length:1460        Length:1460        Length:1460        Length:1460       
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##                                                                             
##   HouseStyle         OverallQual      OverallCond      YearBuilt   
##  Length:1460        Min.   : 1.000   Min.   :1.000   Min.   :1872  
##  Class :character   1st Qu.: 5.000   1st Qu.:5.000   1st Qu.:1954  
##  Mode  :character   Median : 6.000   Median :5.000   Median :1973  
##                     Mean   : 6.099   Mean   :5.575   Mean   :1971  
##                     3rd Qu.: 7.000   3rd Qu.:6.000   3rd Qu.:2000  
##                     Max.   :10.000   Max.   :9.000   Max.   :2010  
##                                                                    
##   YearRemodAdd   RoofStyle           RoofMatl         Exterior1st       
##  Min.   :1950   Length:1460        Length:1460        Length:1460       
##  1st Qu.:1967   Class :character   Class :character   Class :character  
##  Median :1994   Mode  :character   Mode  :character   Mode  :character  
##  Mean   :1985                                                           
##  3rd Qu.:2004                                                           
##  Max.   :2010                                                           
##                                                                         
##  Exterior2nd         MasVnrType          MasVnrArea      ExterQual        
##  Length:1460        Length:1460        Min.   :   0.0   Length:1460       
##  Class :character   Class :character   1st Qu.:   0.0   Class :character  
##  Mode  :character   Mode  :character   Median :   0.0   Mode  :character  
##                                        Mean   : 103.7                     
##                                        3rd Qu.: 166.0                     
##                                        Max.   :1600.0                     
##                                        NA's   :8                          
##   ExterCond          Foundation          BsmtQual           BsmtCond        
##  Length:1460        Length:1460        Length:1460        Length:1460       
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##                                                                             
##  BsmtExposure       BsmtFinType1         BsmtFinSF1     BsmtFinType2      
##  Length:1460        Length:1460        Min.   :   0.0   Length:1460       
##  Class :character   Class :character   1st Qu.:   0.0   Class :character  
##  Mode  :character   Mode  :character   Median : 383.5   Mode  :character  
##                                        Mean   : 443.6                     
##                                        3rd Qu.: 712.2                     
##                                        Max.   :5644.0                     
##                                                                           
##    BsmtFinSF2        BsmtUnfSF       TotalBsmtSF       Heating         
##  Min.   :   0.00   Min.   :   0.0   Min.   :   0.0   Length:1460       
##  1st Qu.:   0.00   1st Qu.: 223.0   1st Qu.: 795.8   Class :character  
##  Median :   0.00   Median : 477.5   Median : 991.5   Mode  :character  
##  Mean   :  46.55   Mean   : 567.2   Mean   :1057.4                     
##  3rd Qu.:   0.00   3rd Qu.: 808.0   3rd Qu.:1298.2                     
##  Max.   :1474.00   Max.   :2336.0   Max.   :6110.0                     
##                                                                        
##   HeatingQC          CentralAir         Electrical          X1stFlrSF   
##  Length:1460        Length:1460        Length:1460        Min.   : 334  
##  Class :character   Class :character   Class :character   1st Qu.: 882  
##  Mode  :character   Mode  :character   Mode  :character   Median :1087  
##                                                           Mean   :1163  
##                                                           3rd Qu.:1391  
##                                                           Max.   :4692  
##                                                                         
##    X2ndFlrSF     LowQualFinSF       GrLivArea     BsmtFullBath   
##  Min.   :   0   Min.   :  0.000   Min.   : 334   Min.   :0.0000  
##  1st Qu.:   0   1st Qu.:  0.000   1st Qu.:1130   1st Qu.:0.0000  
##  Median :   0   Median :  0.000   Median :1464   Median :0.0000  
##  Mean   : 347   Mean   :  5.845   Mean   :1515   Mean   :0.4253  
##  3rd Qu.: 728   3rd Qu.:  0.000   3rd Qu.:1777   3rd Qu.:1.0000  
##  Max.   :2065   Max.   :572.000   Max.   :5642   Max.   :3.0000  
##                                                                  
##   BsmtHalfBath        FullBath        HalfBath       BedroomAbvGr  
##  Min.   :0.00000   Min.   :0.000   Min.   :0.0000   Min.   :0.000  
##  1st Qu.:0.00000   1st Qu.:1.000   1st Qu.:0.0000   1st Qu.:2.000  
##  Median :0.00000   Median :2.000   Median :0.0000   Median :3.000  
##  Mean   :0.05753   Mean   :1.565   Mean   :0.3829   Mean   :2.866  
##  3rd Qu.:0.00000   3rd Qu.:2.000   3rd Qu.:1.0000   3rd Qu.:3.000  
##  Max.   :2.00000   Max.   :3.000   Max.   :2.0000   Max.   :8.000  
##                                                                    
##   KitchenAbvGr   KitchenQual         TotRmsAbvGrd     Functional       
##  Min.   :0.000   Length:1460        Min.   : 2.000   Length:1460       
##  1st Qu.:1.000   Class :character   1st Qu.: 5.000   Class :character  
##  Median :1.000   Mode  :character   Median : 6.000   Mode  :character  
##  Mean   :1.047                      Mean   : 6.518                     
##  3rd Qu.:1.000                      3rd Qu.: 7.000                     
##  Max.   :3.000                      Max.   :14.000                     
##                                                                        
##    Fireplaces    FireplaceQu         GarageType         GarageYrBlt  
##  Min.   :0.000   Length:1460        Length:1460        Min.   :1900  
##  1st Qu.:0.000   Class :character   Class :character   1st Qu.:1961  
##  Median :1.000   Mode  :character   Mode  :character   Median :1980  
##  Mean   :0.613                                         Mean   :1979  
##  3rd Qu.:1.000                                         3rd Qu.:2002  
##  Max.   :3.000                                         Max.   :2010  
##                                                        NA's   :81    
##  GarageFinish         GarageCars      GarageArea      GarageQual       
##  Length:1460        Min.   :0.000   Min.   :   0.0   Length:1460       
##  Class :character   1st Qu.:1.000   1st Qu.: 334.5   Class :character  
##  Mode  :character   Median :2.000   Median : 480.0   Mode  :character  
##                     Mean   :1.767   Mean   : 473.0                     
##                     3rd Qu.:2.000   3rd Qu.: 576.0                     
##                     Max.   :4.000   Max.   :1418.0                     
##                                                                        
##   GarageCond         PavedDrive          WoodDeckSF      OpenPorchSF    
##  Length:1460        Length:1460        Min.   :  0.00   Min.   :  0.00  
##  Class :character   Class :character   1st Qu.:  0.00   1st Qu.:  0.00  
##  Mode  :character   Mode  :character   Median :  0.00   Median : 25.00  
##                                        Mean   : 94.24   Mean   : 46.66  
##                                        3rd Qu.:168.00   3rd Qu.: 68.00  
##                                        Max.   :857.00   Max.   :547.00  
##                                                                         
##  EnclosedPorch      X3SsnPorch      ScreenPorch        PoolArea      
##  Min.   :  0.00   Min.   :  0.00   Min.   :  0.00   Min.   :  0.000  
##  1st Qu.:  0.00   1st Qu.:  0.00   1st Qu.:  0.00   1st Qu.:  0.000  
##  Median :  0.00   Median :  0.00   Median :  0.00   Median :  0.000  
##  Mean   : 21.95   Mean   :  3.41   Mean   : 15.06   Mean   :  2.759  
##  3rd Qu.:  0.00   3rd Qu.:  0.00   3rd Qu.:  0.00   3rd Qu.:  0.000  
##  Max.   :552.00   Max.   :508.00   Max.   :480.00   Max.   :738.000  
##                                                                      
##     PoolQC             Fence           MiscFeature           MiscVal        
##  Length:1460        Length:1460        Length:1460        Min.   :    0.00  
##  Class :character   Class :character   Class :character   1st Qu.:    0.00  
##  Mode  :character   Mode  :character   Mode  :character   Median :    0.00  
##                                                           Mean   :   43.49  
##                                                           3rd Qu.:    0.00  
##                                                           Max.   :15500.00  
##                                                                             
##      MoSold           YrSold       SaleType         SaleCondition     
##  Min.   : 1.000   Min.   :2006   Length:1460        Length:1460       
##  1st Qu.: 5.000   1st Qu.:2007   Class :character   Class :character  
##  Median : 6.000   Median :2008   Mode  :character   Mode  :character  
##  Mean   : 6.322   Mean   :2008                                        
##  3rd Qu.: 8.000   3rd Qu.:2009                                        
##  Max.   :12.000   Max.   :2010                                        
##                                                                       
##    SalePrice     
##  Min.   : 34900  
##  1st Qu.:129975  
##  Median :163000  
##  Mean   :180921  
##  3rd Qu.:214000  
##  Max.   :755000  
## 
ggpairs(house_train[names(house_train) %in% c("FullBath","SaleCondition","SalePrice")], aes(colour = SaleCondition))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

That was fun, but let’s get a little more useful.

ggplot(house_train,aes(x=TotRmsAbvGrd,y=SalePrice)) +
  geom_point()

house_train_numeric_cols <- unlist(lapply(house_train, is.numeric))
house_train_numeric <- house_train[, house_train_numeric_cols]
corrplot(cor(house_train_numeric), method = "color")

That’s not particulary visible…

Correlation matrix:

cor_m <- cor(house_train[,c("TotalBsmtSF","TotRmsAbvGrd","LotArea","BedroomAbvGr")])
cor_m
##              TotalBsmtSF TotRmsAbvGrd   LotArea BedroomAbvGr
## TotalBsmtSF   1.00000000    0.2855726 0.2608331   0.05044996
## TotRmsAbvGrd  0.28557256    1.0000000 0.1900148   0.67661994
## LotArea       0.26083313    0.1900148 1.0000000   0.11968991
## BedroomAbvGr  0.05044996    0.6766199 0.1196899   1.00000000

Overall, we definitely have to worry about collinearities in this data set. Missing values are present. There are weird outliers that may be indicative of poor data quality.

Let’s derive a correlation and test three of the above - starting with the hypothesis that the correlation between each pairwise set of variables is 0.

cor.test(house_train$TotalBsmtSF, house_train$TotRmsAbvGrd, conf.level=0.80)
## 
##  Pearson's product-moment correlation
## 
## data:  house_train$TotalBsmtSF and house_train$TotRmsAbvGrd
## t = 11.378, df = 1458, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 80 percent confidence interval:
##  0.2544496 0.3161046
## sample estimates:
##       cor 
## 0.2855726
cor.test(house_train$LotArea, house_train$BedroomAbvGr, conf.level=0.80)
## 
##  Pearson's product-moment correlation
## 
## data:  house_train$LotArea and house_train$BedroomAbvGr
## t = 4.6033, df = 1458, p-value = 4.52e-06
## alternative hypothesis: true correlation is not equal to 0
## 80 percent confidence interval:
##  0.08647564 0.15263840
## sample estimates:
##       cor 
## 0.1196899
cor.test(house_train$LotArea, house_train$FullBath, conf.level=0.80)
## 
##  Pearson's product-moment correlation
## 
## data:  house_train$LotArea and house_train$FullBath
## t = 4.851, df = 1458, p-value = 1.36e-06
## alternative hypothesis: true correlation is not equal to 0
## 80 percent confidence interval:
##  0.09286177 0.15892007
## sample estimates:
##       cor 
## 0.1260306

Yes, we are definitely worried about familiy wise. We have many variables - if we’re operating at a significance level of .05, 1 in 20 will appear significant by chance even if there’s no relationship. This level of collinearity only increases the chances of Type I error.

Linear Algebra and Correlation.

Invert your correlation matrix from above. (This is known as the precision matrix and contains variance inflation factors on the diagonal.) Multiply the correlation matrix by the precision matrix, and then multiply the precision matrix by the correlation matrix. Conduct LU decomposition on the matrix. 5 points

cor_m
##              TotalBsmtSF TotRmsAbvGrd   LotArea BedroomAbvGr
## TotalBsmtSF   1.00000000    0.2855726 0.2608331   0.05044996
## TotRmsAbvGrd  0.28557256    1.0000000 0.1900148   0.67661994
## LotArea       0.26083313    0.1900148 1.0000000   0.11968991
## BedroomAbvGr  0.05044996    0.6766199 0.1196899   1.00000000

Invert it.

invert_m <- solve(cor_m)
invert_m
##              TotalBsmtSF TotRmsAbvGrd     LotArea BedroomAbvGr
## TotalBsmtSF    1.1939276    -0.502802 -0.25301047   0.31025506
## TotRmsAbvGrd  -0.5028020     2.098094 -0.10210698  -1.38202442
## LotArea       -0.2530105    -0.102107  1.09123111  -0.04875736
## BedroomAbvGr   0.3102551    -1.382024 -0.04875736   1.92528869

Precision.

precision_m <- round(cor_m %*% invert_m)
precision_m
##              TotalBsmtSF TotRmsAbvGrd LotArea BedroomAbvGr
## TotalBsmtSF            1            0       0            0
## TotRmsAbvGrd           0            1       0            0
## LotArea                0            0       1            0
## BedroomAbvGr           0            0       0            1

LU Decomposition.

lu_cor_m <- lu.decomposition(cor_m)
lu_cor_m
## $L
##            [,1]      [,2]      [,3] [,4]
## [1,] 1.00000000 0.0000000 0.0000000    0
## [2,] 0.28557256 1.0000000 0.0000000    0
## [3,] 0.26083313 0.1257861 1.0000000    0
## [4,] 0.05044996 0.7210126 0.0253247    1
## 
## $U
##      [,1]      [,2]      [,3]       [,4]
## [1,]    1 0.2855726 0.2608331 0.05044996
## [2,]    0 0.9184483 0.1155280 0.66221281
## [3,]    0 0.0000000 0.9174343 0.02323375
## [4,]    0 0.0000000 0.0000000 0.51940263

Calculus-Based Probability & Statistics.

Many times, it makes sense to fit a closed form distribution to data. Select a variable in the Kaggle.com training dataset that is skewed to the right, shift it so that the minimum value is absolutely above zero if necessary. Then load the MASS package and run fitdistr to fit an exponential probability density function. (See https://stat.ethz.ch/R-manual/R- devel/library/MASS/html/fitdistr.html ). Find the optimal value of λ for this distribution, and then take 1000 samples from this exponential distribution using this value (e.g., rexp(1000, λ)). Plot a histogram and compare it with a histogram of your original variable. Using the exponential pdf, find the 5th and 95th percentiles using the cumulative distribution function (CDF). Also generate a 95% confidence interval from the empirical data, assuming normality. Finally, provide the empirical 5th percentile and 95th percentile of the data. Discuss. 10 points

Because I live in a basement-free state, let’s explore basement size, which likely has a rightward skew.

ggplot(house_train,aes(x=BsmtFinSF1)) +
  geom_histogram()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

No shifting required, as 0 is the natural minimum. Using the MASS package, run fitdistr:

optimal_lambda <- fitdistr(house_train$BsmtFinSF1, densfun = "exponential")
optimal_lambda
##       rate    
##   0.002254081 
##  (0.000058992)

Now we take our samples - using that top number from above, returned by estimate.

lambda_sample <- rexp(1000, optimal_lambda$estimate)
hist(lambda_sample, breaks = 100)

low_lambda <- qexp(.05, rate = optimal_lambda$estimate)
low_lambda
## [1] 22.75574
high_lambda <- qexp(.95, rate = optimal_lambda$estimate)
high_lambda
## [1] 1329.026

Back to empirical:

low_emp <- quantile(house_train$BsmtFinSF1,0.05)
low_emp
## 5% 
##  0
high_emp <- quantile(house_train$BsmtFinSF1,0.95)
high_emp
##  95% 
## 1274

Our lambda sample moves its mean slightly to the right, with a slightly less skewed distribution - there’s still a lot of skew!

Modeling.

Build some type of multiple regression model and submit your model to the competition board. Provide your complete model summary and results with analysis. Report your Kaggle.com user name and score. 10 points

One could easily spend 8 hours on this, which is the focus of other MSDS courses. We have two young kids and a busy job - going to set a time cap and then have some fun on Kaggle this summer when we’re not taking any courses.

We’re going to start with all numeric variables and then remove them using backward elimination while selectively adding factor variables based on very rudimentary knowledge of the real estate market.

house_train_quant_col <- house_train %>%
  select_all() %>%
  map_lgl(is.numeric)

house_train_quant_df <- house_train %>%
  select_if(house_train_quant_col)
house_lm_quant <- lm(SalePrice~.,data=house_train_quant_df)
summary(house_lm_quant)
## 
## Call:
## lm(formula = SalePrice ~ ., data = house_train_quant_df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -442182  -16955   -2824   15125  318183 
## 
## Coefficients: (2 not defined because of singularities)
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   -3.351e+05  1.701e+06  -0.197 0.843909    
## Id            -1.205e+00  2.658e+00  -0.453 0.650332    
## MSSubClass    -2.001e+02  3.451e+01  -5.797 8.84e-09 ***
## LotFrontage   -1.160e+02  6.126e+01  -1.894 0.058503 .  
## LotArea        5.422e-01  1.575e-01   3.442 0.000599 ***
## OverallQual    1.866e+04  1.482e+03  12.592  < 2e-16 ***
## OverallCond    5.239e+03  1.368e+03   3.830 0.000135 ***
## YearBuilt      3.164e+02  8.766e+01   3.610 0.000321 ***
## YearRemodAdd   1.194e+02  8.668e+01   1.378 0.168607    
## MasVnrArea     3.141e+01  7.022e+00   4.473 8.54e-06 ***
## BsmtFinSF1     1.736e+01  5.838e+00   2.973 0.003014 ** 
## BsmtFinSF2     8.342e+00  8.766e+00   0.952 0.341532    
## BsmtUnfSF      5.005e+00  5.277e+00   0.948 0.343173    
## TotalBsmtSF           NA         NA      NA       NA    
## X1stFlrSF      4.597e+01  7.360e+00   6.246 6.02e-10 ***
## X2ndFlrSF      4.663e+01  6.102e+00   7.641 4.72e-14 ***
## LowQualFinSF   3.341e+01  2.794e+01   1.196 0.232009    
## GrLivArea             NA         NA      NA       NA    
## BsmtFullBath   9.043e+03  3.198e+03   2.828 0.004776 ** 
## BsmtHalfBath   2.465e+03  5.073e+03   0.486 0.627135    
## FullBath       5.433e+03  3.531e+03   1.539 0.124182    
## HalfBath      -1.098e+03  3.321e+03  -0.331 0.740945    
## BedroomAbvGr  -1.022e+04  2.155e+03  -4.742 2.40e-06 ***
## KitchenAbvGr  -2.202e+04  6.710e+03  -3.282 0.001063 ** 
## TotRmsAbvGrd   5.464e+03  1.487e+03   3.674 0.000251 ***
## Fireplaces     4.372e+03  2.189e+03   1.998 0.046020 *  
## GarageYrBlt   -4.728e+01  9.106e+01  -0.519 0.603742    
## GarageCars     1.685e+04  3.491e+03   4.827 1.58e-06 ***
## GarageArea     6.274e+00  1.213e+01   0.517 0.605002    
## WoodDeckSF     2.144e+01  1.002e+01   2.139 0.032662 *  
## OpenPorchSF   -2.252e+00  1.949e+01  -0.116 0.907998    
## EnclosedPorch  7.295e+00  2.062e+01   0.354 0.723590    
## X3SsnPorch     3.349e+01  3.758e+01   0.891 0.373163    
## ScreenPorch    5.805e+01  2.041e+01   2.844 0.004532 ** 
## PoolArea      -6.052e+01  2.990e+01  -2.024 0.043204 *  
## MiscVal       -3.761e+00  6.960e+00  -0.540 0.589016    
## MoSold        -2.217e+02  4.229e+02  -0.524 0.600188    
## YrSold        -2.474e+02  8.458e+02  -0.293 0.769917    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 36800 on 1085 degrees of freedom
##   (339 observations deleted due to missingness)
## Multiple R-squared:  0.8096, Adjusted R-squared:  0.8034 
## F-statistic: 131.8 on 35 and 1085 DF,  p-value: < 2.2e-16

Removing columns that likely shouldn’t have been there in the first place - like time period sold and Id plus the variables that are clearly less useful based on p-value. Year built is a proxy for age and probably should be transformed as such.

house_lm_quant_2 <- lm(SalePrice ~ MSSubClass + LotArea + OverallQual + OverallCond + YearBuilt + MasVnrArea + BsmtFinSF1 + X1stFlrSF + X2ndFlrSF + BsmtFullBath + BedroomAbvGr + KitchenAbvGr + TotRmsAbvGrd + Fireplaces + GarageCars + WoodDeckSF + ScreenPorch + PoolArea,data=house_train_quant_df)
summary(house_lm_quant_2)
## 
## Call:
## lm(formula = SalePrice ~ MSSubClass + LotArea + OverallQual + 
##     OverallCond + YearBuilt + MasVnrArea + BsmtFinSF1 + X1stFlrSF + 
##     X2ndFlrSF + BsmtFullBath + BedroomAbvGr + KitchenAbvGr + 
##     TotRmsAbvGrd + Fireplaces + GarageCars + WoodDeckSF + ScreenPorch + 
##     PoolArea, data = house_train_quant_df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -471826  -16295   -1995   13876  299766 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -8.391e+05  8.879e+04  -9.450  < 2e-16 ***
## MSSubClass   -1.632e+02  2.582e+01  -6.322 3.44e-10 ***
## LotArea       4.209e-01  1.002e-01   4.202 2.81e-05 ***
## OverallQual   1.869e+04  1.125e+03  16.619  < 2e-16 ***
## OverallCond   5.078e+03  9.226e+02   5.504 4.40e-08 ***
## YearBuilt     3.918e+02  4.508e+01   8.691  < 2e-16 ***
## MasVnrArea    2.949e+01  5.874e+00   5.021 5.78e-07 ***
## BsmtFinSF1    9.989e+00  2.975e+00   3.358 0.000807 ***
## X1stFlrSF     5.770e+01  4.651e+00  12.407  < 2e-16 ***
## X2ndFlrSF     4.883e+01  4.112e+00  11.874  < 2e-16 ***
## BsmtFullBath  8.955e+03  2.373e+03   3.774 0.000167 ***
## BedroomAbvGr -1.026e+04  1.646e+03  -6.233 6.00e-10 ***
## KitchenAbvGr -1.338e+04  5.098e+03  -2.624 0.008774 ** 
## TotRmsAbvGrd  5.418e+03  1.214e+03   4.461 8.78e-06 ***
## Fireplaces    2.507e+03  1.734e+03   1.446 0.148471    
## GarageCars    1.042e+04  1.695e+03   6.146 1.03e-09 ***
## WoodDeckSF    2.462e+01  7.911e+00   3.112 0.001892 ** 
## ScreenPorch   5.085e+01  1.689e+01   3.010 0.002657 ** 
## PoolArea     -3.049e+01  2.341e+01  -1.302 0.192979    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 34820 on 1433 degrees of freedom
##   (8 observations deleted due to missingness)
## Multiple R-squared:  0.8095, Adjusted R-squared:  0.8071 
## F-statistic: 338.4 on 18 and 1433 DF,  p-value: < 2.2e-16

Now we’ll continue with backward elimination but return to the original dataset, adding factor variables selectively.

house_lm_3 <- lm(SalePrice ~ MSSubClass + LotArea + OverallQual + OverallCond + YearBuilt + X1stFlrSF + X2ndFlrSF + BedroomAbvGr + KitchenAbvGr + TotRmsAbvGrd + WoodDeckSF + ScreenPorch + HeatingQC + ExterQual + RoofMatl + Condition1 + Neighborhood + LandSlope + LotConfig,data=house_train,na.action=na.omit)
summary(house_lm_3)
## 
## Call:
## lm(formula = SalePrice ~ MSSubClass + LotArea + OverallQual + 
##     OverallCond + YearBuilt + X1stFlrSF + X2ndFlrSF + BedroomAbvGr + 
##     KitchenAbvGr + TotRmsAbvGrd + WoodDeckSF + ScreenPorch + 
##     HeatingQC + ExterQual + RoofMatl + Condition1 + Neighborhood + 
##     LandSlope + LotConfig, data = house_train, na.action = na.omit)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -332580  -13455    -818   12089  257403 
## 
## Coefficients:
##                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)         -1.509e+06  1.317e+05 -11.454  < 2e-16 ***
## MSSubClass          -1.559e+02  2.547e+01  -6.121 1.21e-09 ***
## LotArea              7.079e-01  1.092e-01   6.482 1.25e-10 ***
## OverallQual          1.112e+04  1.084e+03  10.256  < 2e-16 ***
## OverallCond          6.404e+03  8.330e+02   7.688 2.80e-14 ***
## YearBuilt            5.287e+02  6.214e+01   8.508  < 2e-16 ***
## X1stFlrSF            7.992e+01  3.982e+00  20.072  < 2e-16 ***
## X2ndFlrSF            5.947e+01  3.709e+00  16.035  < 2e-16 ***
## BedroomAbvGr        -8.095e+03  1.483e+03  -5.457 5.71e-08 ***
## KitchenAbvGr        -1.395e+04  4.498e+03  -3.100 0.001971 ** 
## TotRmsAbvGrd         2.863e+03  1.074e+03   2.666 0.007756 ** 
## WoodDeckSF           2.118e+01  6.821e+00   3.105 0.001941 ** 
## ScreenPorch          5.092e+01  1.433e+01   3.553 0.000394 ***
## HeatingQCFa         -1.473e+03  4.759e+03  -0.309 0.757001    
## HeatingQCGd         -4.178e+03  2.460e+03  -1.698 0.089664 .  
## HeatingQCPo          1.440e+04  3.125e+04   0.461 0.645049    
## HeatingQCTA         -4.321e+03  2.307e+03  -1.873 0.061277 .  
## ExterQualFa         -4.276e+04  1.039e+04  -4.117 4.07e-05 ***
## ExterQualGd         -4.961e+04  4.986e+03  -9.949  < 2e-16 ***
## ExterQualTA         -5.066e+04  5.667e+03  -8.941  < 2e-16 ***
## RoofMatlCompShg      4.847e+05  3.234e+04  14.989  < 2e-16 ***
## RoofMatlMembran      5.274e+05  4.570e+04  11.542  < 2e-16 ***
## RoofMatlMetal        5.302e+05  4.607e+04  11.509  < 2e-16 ***
## RoofMatlRoll         4.859e+05  4.392e+04  11.064  < 2e-16 ***
## RoofMatlTar&Grv      4.739e+05  3.343e+04  14.176  < 2e-16 ***
## RoofMatlWdShake      4.660e+05  3.503e+04  13.303  < 2e-16 ***
## RoofMatlWdShngl      5.666e+05  3.397e+04  16.677  < 2e-16 ***
## Condition1Feedr     -4.611e+02  5.653e+03  -0.082 0.935009    
## Condition1Norm       6.733e+03  4.607e+03   1.462 0.144093    
## Condition1PosA      -1.734e+03  1.176e+04  -0.147 0.882821    
## Condition1PosN      -1.637e+04  8.329e+03  -1.965 0.049566 *  
## Condition1RRAe      -1.630e+04  1.082e+04  -1.507 0.132030    
## Condition1RRAn       6.341e+03  7.583e+03   0.836 0.403224    
## Condition1RRNe      -1.333e+04  2.170e+04  -0.614 0.539247    
## Condition1RRNn       4.438e+03  1.450e+04   0.306 0.759566    
## NeighborhoodBlueste  3.034e+03  2.222e+04   0.137 0.891405    
## NeighborhoodBrDale  -1.706e+03  1.082e+04  -0.158 0.874783    
## NeighborhoodBrkSide  1.186e+04  9.535e+03   1.244 0.213702    
## NeighborhoodClearCr  7.137e+03  1.012e+04   0.705 0.480884    
## NeighborhoodCollgCr  7.328e+03  7.998e+03   0.916 0.359719    
## NeighborhoodCrawfor  2.475e+04  9.339e+03   2.650 0.008144 ** 
## NeighborhoodEdwards -3.393e+03  8.666e+03  -0.391 0.695503    
## NeighborhoodGilbert -1.760e+02  8.522e+03  -0.021 0.983529    
## NeighborhoodIDOTRR   6.281e+02  1.007e+04   0.062 0.950293    
## NeighborhoodMeadowV  6.520e+03  1.073e+04   0.607 0.543687    
## NeighborhoodMitchel -6.913e+02  8.964e+03  -0.077 0.938541    
## NeighborhoodNAmes    2.379e+03  8.415e+03   0.283 0.777455    
## NeighborhoodNoRidge  5.318e+04  9.188e+03   5.788 8.79e-09 ***
## NeighborhoodNPkVill  1.130e+04  1.254e+04   0.901 0.367870    
## NeighborhoodNridgHt  4.922e+04  8.268e+03   5.953 3.32e-09 ***
## NeighborhoodNWAmes  -5.116e+03  8.778e+03  -0.583 0.560094    
## NeighborhoodOldTown  4.689e+02  9.261e+03   0.051 0.959624    
## NeighborhoodSawyer   3.856e+03  8.898e+03   0.433 0.664839    
## NeighborhoodSawyerW  3.948e+03  8.599e+03   0.459 0.646178    
## NeighborhoodSomerst  2.155e+04  8.140e+03   2.647 0.008208 ** 
## NeighborhoodStoneBr  6.008e+04  9.450e+03   6.357 2.78e-10 ***
## NeighborhoodSWISU    4.498e+03  1.060e+04   0.424 0.671290    
## NeighborhoodTimber   1.428e+04  9.121e+03   1.565 0.117770    
## NeighborhoodVeenker  2.566e+04  1.181e+04   2.174 0.029902 *  
## LandSlopeMod         8.412e+03  4.027e+03   2.089 0.036890 *  
## LandSlopeSev        -2.236e+04  1.163e+04  -1.923 0.054670 .  
## LotConfigCulDSac     7.112e+03  3.747e+03   1.898 0.057907 .  
## LotConfigFR2        -5.704e+03  4.777e+03  -1.194 0.232621    
## LotConfigFR3        -1.384e+04  1.532e+04  -0.903 0.366504    
## LotConfigInside     -1.842e+03  2.082e+03  -0.885 0.376401    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 29240 on 1395 degrees of freedom
## Multiple R-squared:  0.8704, Adjusted R-squared:  0.8645 
## F-statistic: 146.4 on 64 and 1395 DF,  p-value: < 2.2e-16

Note that the following variables have NAs in the test data but would have been significant if we’d had time to build a more robust model: BsmtExposure, KitchenQual

More variables than we’d like. No attempts at transformation. No exploration of time series. Likely overfitting. Unexplored collinearities present. But let’s see how we do, subsetting our test data to only include the variables used in the model.

plot(house_lm_3)

Our model is far from a perfect one. Residuals are not normally distributed. We see outliers for extreme values. Nonetheless, we will submit.

house_test_subset <- house_test %>% dplyr::select(MSSubClass,LotArea,OverallQual,OverallCond,YearBuilt,X1stFlrSF,X2ndFlrSF,BedroomAbvGr,KitchenAbvGr,TotRmsAbvGrd,WoodDeckSF,ScreenPorch,HeatingQC,ExterQual,RoofMatl,Condition1,Neighborhood,LandSlope,LotConfig)
summary(house_test_subset)
##    MSSubClass        LotArea       OverallQual      OverallCond   
##  Min.   : 20.00   Min.   : 1470   Min.   : 1.000   Min.   :1.000  
##  1st Qu.: 20.00   1st Qu.: 7391   1st Qu.: 5.000   1st Qu.:5.000  
##  Median : 50.00   Median : 9399   Median : 6.000   Median :5.000  
##  Mean   : 57.38   Mean   : 9819   Mean   : 6.079   Mean   :5.554  
##  3rd Qu.: 70.00   3rd Qu.:11518   3rd Qu.: 7.000   3rd Qu.:6.000  
##  Max.   :190.00   Max.   :56600   Max.   :10.000   Max.   :9.000  
##    YearBuilt      X1stFlrSF        X2ndFlrSF     BedroomAbvGr    KitchenAbvGr  
##  Min.   :1879   Min.   : 407.0   Min.   :   0   Min.   :0.000   Min.   :0.000  
##  1st Qu.:1953   1st Qu.: 873.5   1st Qu.:   0   1st Qu.:2.000   1st Qu.:1.000  
##  Median :1973   Median :1079.0   Median :   0   Median :3.000   Median :1.000  
##  Mean   :1971   Mean   :1156.5   Mean   : 326   Mean   :2.854   Mean   :1.042  
##  3rd Qu.:2001   3rd Qu.:1382.5   3rd Qu.: 676   3rd Qu.:3.000   3rd Qu.:1.000  
##  Max.   :2010   Max.   :5095.0   Max.   :1862   Max.   :6.000   Max.   :2.000  
##   TotRmsAbvGrd      WoodDeckSF       ScreenPorch      HeatingQC        
##  Min.   : 3.000   Min.   :   0.00   Min.   :  0.00   Length:1459       
##  1st Qu.: 5.000   1st Qu.:   0.00   1st Qu.:  0.00   Class :character  
##  Median : 6.000   Median :   0.00   Median :  0.00   Mode  :character  
##  Mean   : 6.385   Mean   :  93.17   Mean   : 17.06                     
##  3rd Qu.: 7.000   3rd Qu.: 168.00   3rd Qu.:  0.00                     
##  Max.   :15.000   Max.   :1424.00   Max.   :576.00                     
##   ExterQual           RoofMatl          Condition1        Neighborhood      
##  Length:1459        Length:1459        Length:1459        Length:1459       
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##   LandSlope          LotConfig        
##  Length:1459        Length:1459       
##  Class :character   Class :character  
##  Mode  :character   Mode  :character  
##                                       
##                                       
## 
dim(house_test_subset)
## [1] 1459   19
house_test_predict <- predict(house_lm_3,house_test_subset)
house_test_predict <- as.data.frame(house_test_predict)
house_test_predict$Id <- house_test$Id
house_test_submission <- house_test_predict[,c(2,1)]
names(house_test_submission)[names(house_test_submission) == "house_test_predict"] <- "SalePrice"
head(house_test_submission,140)
##       Id SalePrice
## 1   1461 121535.23
## 2   1462 170599.29
## 3   1463 168699.73
## 4   1464 192671.41
## 5   1465 243811.59
## 6   1466 176702.95
## 7   1467 181008.25
## 8   1468 162279.91
## 9   1469 187013.66
## 10  1470 107552.93
## 11  1471 176962.80
## 12  1472  99488.71
## 13  1473  84418.14
## 14  1474 145679.97
## 15  1475 128800.64
## 16  1476 389301.73
## 17  1477 276357.65
## 18  1478 275825.74
## 19  1479 298360.13
## 20  1480 446803.92
## 21  1481 316914.16
## 22  1482 247131.16
## 23  1483 186897.61
## 24  1484 165603.16
## 25  1485 177939.11
## 26  1486 202102.79
## 27  1487 341455.70
## 28  1488 254326.25
## 29  1489 206576.68
## 30  1490 232760.70
## 31  1491 206728.91
## 32  1492  96777.21
## 33  1493 186714.16
## 34  1494 304150.40
## 35  1495 295703.42
## 36  1496 225057.91
## 37  1497 194946.78
## 38  1498 164142.99
## 39  1499 163667.98
## 40  1500 155220.19
## 41  1501 177195.83
## 42  1502 150609.40
## 43  1503 253993.85
## 44  1504 244319.24
## 45  1505 227413.61
## 46  1506 192734.78
## 47  1507 234238.74
## 48  1508 191090.54
## 49  1509 155668.06
## 50  1510 136084.44
## 51  1511 136443.91
## 52  1512 180001.66
## 53  1513 173448.86
## 54  1514 144913.40
## 55  1515 228309.59
## 56  1516 155454.34
## 57  1517 159641.61
## 58  1518 128951.37
## 59  1519 210287.15
## 60  1520 124173.18
## 61  1521 133950.58
## 62  1522 184089.22
## 63  1523 109339.00
## 64  1524 131387.98
## 65  1525 115788.40
## 66  1526  93898.76
## 67  1527  95304.64
## 68  1528 141319.45
## 69  1529 139533.22
## 70  1530 217071.11
## 71  1531 127161.83
## 72  1532  93404.86
## 73  1533 157283.78
## 74  1534 132318.28
## 75  1535 154487.44
## 76  1536 101140.09
## 77  1537  30620.32
## 78  1538 171045.50
## 79  1539 213060.24
## 80  1540 121616.03
## 81  1541 146845.87
## 82  1542 156465.53
## 83  1543 203306.24
## 84  1544  81476.28
## 85  1545 134513.43
## 86  1546 136442.72
## 87  1547 144836.45
## 88  1548 159128.02
## 89  1549 121905.65
## 90  1550 126107.52
## 91  1551 103927.68
## 92  1552 134931.95
## 93  1553 164837.56
## 94  1554 125897.11
## 95  1555 175233.67
## 96  1556  87479.49
## 97  1557  95548.29
## 98  1558 106677.13
## 99  1559  87861.55
## 100 1560 106421.03
## 101 1561 132820.99
## 102 1562 123378.40
## 103 1563 119431.42
## 104 1564 139855.51
## 105 1565 138585.47
## 106 1566 239749.61
## 107 1567  58288.43
## 108 1568 225989.04
## 109 1569 104993.87
## 110 1570 138803.00
## 111 1571 115712.55
## 112 1572 134148.48
## 113 1573 221627.42
## 114 1574 133267.82
## 115 1575 226538.99
## 116 1576 229576.42
## 117 1577 197618.10
## 118 1578 136158.74
## 119 1579 132340.89
## 120 1580 203682.23
## 121 1581 158934.85
## 122 1582 117791.96
## 123 1583 269215.55
## 124 1584 233798.87
## 125 1585 140577.86
## 126 1586  60372.26
## 127 1587 118088.96
## 128 1588 149609.05
## 129 1589 108592.93
## 130 1590 127170.65
## 131 1591  92426.58
## 132 1592 123946.00
## 133 1593 121292.65
## 134 1594 160584.25
## 135 1595 114865.63
## 136 1596 226248.58
## 137 1597 191771.09
## 138 1598 218212.78
## 139 1599 176268.29
## 140 1600 176566.34
write_csv(house_test_submission, file = 'ames_house_test_submission.csv')

Kaggle username: Jeff Littlejohn Score: 0.28253

Kaggle Screenshot

Leaderboard

Sources consulted: https://rviews.rstudio.com/2019/10/02/multiple-hypothesis-testing/ https://stat.ethz.ch/R-manual/R-devel/library/MASS/html/fitdistr.html https://www.programmingr.com/examples/neat-tricks/sample-r-function/rexp/ https://dplyr.tidyverse.org/reference/select.html