机器学习算法整理(机器学习稀疏矩阵简介)
机器学习算法整理(机器学习稀疏矩阵简介)运行示例后,首先打印定义的稀疏矩阵,然后是矩阵的稀疏度。[[1 0 0 1 0 0] [0 0 2 0 0 1] [0 0 0 2 0 0]] 0.7222222222222222相关资源如果您希望深入的了解稀疏矩阵,本节提供了有关该主题的一些资源:sparsity = 1.0 - count_nonzero(A) / A.size下面的示例演示如何计算数组的稀疏度:在本教程中,读者可以学习稀疏矩阵的基本概念、存在的问题以及如何在Python中使用它。运行该示例后,首先打印出定义的密集数组,然后打印出CSR表示,最后打印出重建的密集矩阵。[[1 0 0 1 0 0] [0 0 2 0 0 1] [0 0 0 2 0 0]] (0 0) 1 (0 3) 1 (1 2) 2 (1 5) 1 (2 3) 2 [[1 0 0 1 0 0] [0 0 2 0 0 1] [0 0
摘要:本文主要介绍了稀疏矩阵的基本知识、它存在的一些问题以及如何在Python中应用它,对于初学者和工程应用者来说是一份不错的入门材料。
对于一个矩阵而言,若数值为零的元素远远多于非零元素的个数,且非零元素分布没有规律时,这样的矩阵被称作稀疏矩阵;与之相反,若非零元素数目占据绝大多数时,这样的矩阵被称作稠密矩阵。
稀疏矩阵在工程应用中经常被使用,尤其是在通信编码和机器学习中。若编码矩阵或特征表达矩阵是稀疏矩阵时,其计算速度会大大提升。对于机器学习而言,稀疏矩阵应用非常广,比如在数据特征表示、自然语言处理等领域。
用稀疏表示和工作在计算上代价很高,需要专门处理稀疏矩阵的表示和操作等,但是这些操作可以大幅提升性能。
在本教程中,读者可以学习稀疏矩阵的基本概念、存在的问题以及如何在Python中使用它。
运行该示例后,首先打印出定义的密集数组,然后打印出CSR表示,最后打印出重建的密集矩阵。
[[1 0 0 1 0 0] [0 0 2 0 0 1] [0 0 0 2 0 0]] (0 0) 1 (0 3) 1 (1 2) 2 (1 5) 1 (2 3) 2 [[1 0 0 1 0 0] [0 0 2 0 0 1] [0 0 0 2 0 0]]
Numpy不提供函数来计算矩阵的稀疏性。不过,可以通过首先找到矩阵的密度并从中减去相关值来轻松地计算出来。Numpy数组中的非零元素的数量可以由count_nonzero()函数给出,数组中的元素总个数可以由数组的size属性给出。因此,可以将数组稀疏度计算为:
sparsity = 1.0 - count_nonzero(A) / A.size
下面的示例演示如何计算数组的稀疏度:
运行示例后,首先打印定义的稀疏矩阵,然后是矩阵的稀疏度。
[[1 0 0 1 0 0] [0 0 2 0 0 1] [0 0 0 2 0 0]] 0.7222222222222222相关资源
如果您希望深入的了解稀疏矩阵,本节提供了有关该主题的一些资源:
书籍
线性代数简介,第五版,2016.
科学计算的艺术,第三版,2007.
人工智能:现代方法,第三版,2009.
直接稀疏矩阵的方法,第二版,2017.
API
Sparse matrices(scipy.sparse)API
Scipy.sparse.csr_matrix()API
Numpy.count_nonzero()API
Numpy.ndarray.size API
文章
稀疏矩阵(维基百科)
作者信息
Jason Brownlee,机器学习专家,专注于机器学习的推广教育。
本文由阿里云云栖社区组织翻译,文章原标题《A Gentle Introduction to Sparse Matrices for Machine Learning》,作者:Jason Brownlee,译者:海棠。