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