Linear Algebra: Step by Step, by Kuldeep Singh, is a tremendous resource for improving your skills in the fundamental mathematics behind machine learning. I’m authoring an R companion series to ensure that this can be translated to make sense to R programmers, and reduce the legwork for translating core principles back and forth.
This series will be light on content, making the assumption that you have the book or are looking for very quick information on producing linear algebra concepts using R. Some sections will provide tips to packages, or simple code snippets to try textbook examples yourself.
For anyone interested in catching up or following along, the book is available for purchase via Amazon by clicking here.
Section 1.1 – Systems of Linear Equations
The most beneficial information for this section is plotting. My best recommendation is to become familiar with the ggplot2 package, by Hadley Wickham.
matlib is a package that’s useful for designing and solving a variety of problems around matrices.
Section 1.2 – Gaussian Elimination
gaussianElimination is a function within the matlib package, and is useful for guiding yourself through the steps. To borrow example 1.8, here is the companion code:
A <- matrix(c(1,3,2,4,4,-3,5,1,2), nrow = 3, byrow = TRUE) b <- c(13,3,13) gaussianElimination(A, b, verbose = TRUE)
Example 1.9 can be double-checked using the rref function from pracma
A <- matrix(c(1,5,-3,-9,0,-13,5,37,0,0,5,-15), nrow = 3, byrow = TRUE) rref(A)
Section 1.3 – Vector Arithmetic
The base R packages have a special syntax for dot products.
u <- c(-3,1,7) v <- c(9,2,-4) u %*% v
Section 1.4 – Arithmetic of Matrices
We continue using the special syntax for matrix multiplication. Example 1.18 part A is reproduced below.
A <- matrix(c(2,3,-1,5), nrow = 2, byrow = TRUE) x <- matrix(c(2,1), nrow = 2) A %*% x
Section 1.5 – Matrix Algebra
The zero matrix can be created very easily. A 2 by 2 zero matrix is created with the code below.
We should introduce the expm package for its function %^% to perform matrix powers. Example 1.27 part A is solved below.
A <- matrix(c(-3,7,1,8), nrow = 2, byrow = TRUE) A %^% 2
To be continued…
We will continue on with the rest of Chapter 1 in part 2. This series is ongoing, and will be grouped in sections that I’m able to pull together at a given time.
Note about links to some materials above: As an Amazon Associate I earn from qualifying purchases.