Matrix Multiplication for Data Science (or Machine Learning)

Learn the math behind matrix multiplication for data science and machine learning with code examples.



Matrix Multiplication for Data Science (or Machine Learning)
Image by Author

 

Key Takeaways

 

  • Matrix multiplication plays an important role in data science and machine learning
  • For matrix multiplication between two matrices to be well defined, the two matrices must be compatible, that is, the number of columns of matrix A must be equal to the number of rows of matrix B.
  • Matrix multiplication is not commutative, that is AB = BA.

Matrix multiplication plays an important role in data science and machine learning. Consider a dataset with m features and n observations as shown below:

 

Matrix Multiplication for Data Science (or Machine Learning)

 

A basic regression model can be represented as follows:

 

Matrix Multiplication for Data Science (or Machine Learning)

 

Where Equation is the n×m feature matrix, and w is the m×1 weight coefficients or regression coefficients matrix. Here we observe that the calculation of Equation involves matrix multiplication between the feature matrix X and the regression coefficient matrix w. Since X is an n ×m matrix and w is an m ×1 matrix, matrix multiplication between X and w is well defined. In matrix form, the equation above can be expressed simply as

 

Matrix Multiplication for Data Science (or Machine Learning)

 

where Xw represents matrix multiplication between X and w.

 

Definition of Matrix Multiplication

 

Let A be and n×p matrix, and B a p×m matrix,

 

Matrix Multiplication for Data Science (or Machine Learning)

 

the product matrix C = AB is an n×m matrix with elements given as

 

Matrix Multiplication for Data Science (or Machine Learning)

 

Properties of Matrix Multiplication

 

Matrix multiplication is not commutative, that is

AB≠BA

 

Implementation of Matrix Multiplication in Python

 

Using for Loop

 

import numpy as np
 
A = np.array([[1,2,3],[4,5,6]]) # create (2 x 3) matrix
 
B = np.array([[7,8],[9,10],[11,12]]) # create (3 x 2) matrix

A.shape[1] == B.shape[0] # ensures two matrices are compatible
 
C = np.zeros((2,2)) # (2 x 2) matrix
 
for i in range(2):
  for k in range(2):
    for j in range(3):
      C[i,k]= C[i,k] + A[i,j]*B[j,k]
 
print(C)

 

[[ 58,  64]
 [139, 154]]


Using Numpy Library

 

C = np.dot(A, B)

print(C)

 

[[ 58,  64]
 [139, 154]]


Note that np.dot(B, A) gives the following output:

print(np.dot(B, A))

 

[[ 39  54  69]
 [ 49  68  87]
 [ 59  82 105]]


Clearly, we see that np.dot(A, B) ≠ np.dot(B, A).

In summary, we’ve discussed the mathematical basis of matrix multiplication. We also demonstrated how matrix multiplication can be performed using a short python code, and using the in-built matrix multiplication method in numpy.

 
 
Benjamin O. Tayo is a Physicist, Data Science Educator, and Writer, as well as the Owner of DataScienceHub. Previously, Benjamin was teaching Engineering and Physics at U. of Central Oklahoma, Grand Canyon U., and Pittsburgh State U.