您当前的位置: 首页 >  数据结构与算法

星拱北辰

暂无认证

  • 0浏览

    0关注

    1205博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【数据结构与算法】浅谈稀疏矩阵

星拱北辰 发布时间:2020-09-26 18:53:09 ,浏览量:0

  数据结构中我们就已经了解过稀疏矩阵的概念。在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵。

  仅有几个0元素不太算稀疏矩阵,很大的数据集中大部分元素都是0的情况比较符合稀疏矩阵的实际意义。这种情况在平时可能很难见到,但在机器学习中可能是很常见的。

  我们不妨举个例子:我们想象一个矩阵,列元素是腾讯视频平台上的所有视频,行元素是腾讯视频的所有用户,矩阵中的每个元素的值代表某个视频每个用户看过几次。这个矩阵将会拥有很多很多的行和列。但我们也知道,某个用户看的视频再多,相较于海量的视频库都不算什么;很多用户甚至可能几乎没看过视频。这个矩阵的绝大多数的元素是0!

  再举个例子:我们再想想一个矩阵(方阵),行列元素都是微信用户,矩阵中的每个元素代表两个用户之间的好友关系。就算我们是公众号号主或者社交达人,好友上限也是5000(之前是5000,现在好像也不可能无限多)。这个矩阵的绝大多数元素是0!

  上面两个例子只是自己编的,但足以表明很多实际的问题需要稀疏矩阵。稀疏矩阵只保存非零元素并假设其余元素的值都是0,这样能节省大量的计算成本。甚至有时一个矩阵和一个比它大很多倍的矩阵的压缩存储是一致的,增加的0元素不改变稀疏矩阵的大小。

  稀疏矩阵的类型有很多,比如,压缩的行,压缩的列,表中表,键值对字典等等,不仅仅是大家在学习数据结构时了解的狭义矩阵。值得一提的是,类型不同的稀疏矩阵不存在真正完美的存在,它们之间的差异带来了自己独特的优劣势,在处理不同问题时能绽放出自己的光芒。

关注
打赏
1660750074
查看更多评论
立即登录/注册

微信扫码登录

0.0438s