机器学习的不少领域中存在不少稀疏矩阵,好比用来表示分类数据的独热编码、用于表示文档中词汇频率的计数编码、用于表示词汇中标准化的单词频率得分的TF-IDF编码。机器学习
稀疏矩阵:在矩阵中,若数值中为0的元素数目远远多于非0元素的数目,而且非0元素分布没有规律。学习
稠密矩阵:在矩阵中,若数值中为0的元素数目远远少于非0元素的数目。编码
$$矩阵的稠密度=\frac{非零元素的总数}{矩阵全部元素的总数}$$spa
大多数大型矩阵都是稀疏的,稀疏矩阵有不少的零值,矩阵中的每一个32位或64位零值都要分配零值,须要大量的内存,这是对内存资源的浪费,由于这些零值不包含任何信息。内存
若是一个很是大的稀疏矩阵能够适应内存,因为矩阵分钟包含大部分的零值,那么在这个矩阵中执行操做可能须要很长时间,其中大部分计算都须要将零值相加或相乘。资源
稀疏矩阵的计算速度更快,由于程序代码只对非零元素进行操做,这是稀疏矩阵的一个突出的优势。文档
稀疏矩阵存储空间大部分存放的是 0 元素,从而形成大量的空间浪费。为了节省存储空间,能够只存储其中的非 0 元素。get
参考it
知乎:一篇关于机器学习中的稀疏矩阵的介绍class