相似矩阵稀疏化的稀疏计算算法。

sparsecomputation的Python项目详细描述


Travis build status

稀疏计算

sparsecomputation是一个python包,用于构造成对相似性的稀疏矩阵(相似矩阵)。稀疏计算产生的稀疏相似矩阵为依赖成对相似矩阵/核矩阵的有监督机器学习算法(如k近邻、基于核的支持向量机和有监督规范化割)提供了显著的加速而不损失精度。

对于具有n对象(观察)的数据集,相似矩阵具有O(n^2)项。对于大型数据集,计算所有成对的相似性在计算上是困难的。稀疏计算通过识别空间中彼此靠近的所有对象对来克服这种计算负担。通过将对象投影到低维空间并使用低维空间中的贴近度作为原始空间中贴近度的代理来识别这些对。稀疏计算使用网格来确定低维空间中的有效闭合对象。

稀疏计算将二维numpy数组作为输入,其大小为n x d。每一行代表一个具有d功能的对象。spase计算返回一个包含两个元组的列表,其中每个元组是应该在其之间计算成对相似性的对象的索引。

安装

您可以使用pip来安装包:

pip instal sparsecomputation

最小示例

要查找与稀疏计算相关的成对相似性,请使用以下代码:

# load sample datasetimportsklearn.datasetsdata,_=sklearn.datasets.load_iris(return_X_y=True)# load Sparse ComputationfromsparsecomputationimportApproximatePCA,SparseComputation# Project data to a low-dimensional space of dimension 3# with a fast, scalable version of PCA.apca=ApproximatePCA(dimLow=3)# Select pair if objects are closer than ~distance~ (1 / resolution).# Controls sparsity (small distance - highly sparse matrix)sc=SparseComputation(apca,distance=0.05)# Input: n x d matrix - data# Output: list of relevant pairs (undirected)pairs=sc.select_pairs(data)# Out: [(101, 142), (1, 9), (1, 34), (1, 37), ...]

相关论文

有关这些技术的更多细节,请阅读以下文章。如果您在学术工作中使用此实现,请引用这些作品:

  • Dorit S.Hochbaum,Philipp Baumann(2016年)。大规模数据挖掘中的稀疏计算。ieee大数据事务,2(2),151-174。
  • Philipp Baumann、Dorit S.Hochbaum和Quico Spaen(2017年)。大数据分析中稀疏计算的高性能几何算法。2017年ieee大数据国际会议,马萨诸塞州波士顿。
  • Philipp Baumann、Dorit S.Hochbaum和Quico Spaen(2016年)。稀疏简化计算。第五届模式识别应用与方法国际会议论文集。

学分

Philipp Baumann的原始Matlab实现。Titouan Jehl和Quico Spaen的原始Python实现。由quico spaen和philipp baumann使用新的块移位算法更新实现。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何从同步请求中获取响应代码   具有深度复制的类中的Java oop getter/setter   java LDAP“简单”用户身份验证(JNDI Tomcat)不稳定?   java将Jenkins jnlp代理设置为通过API以编程方式使用WebSocket   java如何获取在servlet筛选器的静态块中启动的静态类的实例?   前两个数字的java charAt循环不能循环它   java在Spring引导执行器中是否有检查子服务运行状况的标准方法?   java我可以将jacksonmapped@JsonProperties推到“顶层”吗?   json JAVA:opencsv随机读取CSV单元格   无第三方应用程序的java捆绑包JRE   使用openidConnectClient功能的WAS Liberty中出现java无效cookie标头错误   java如何在Restful Web服务中从Http Post获取数组?   java如何读取安卓开发的JSON url?   如何在java IO中打开包含汉字的文件?