https://machinelearningmastery.com/introduction-to-matrix-decompositions-for-machine-learning/