用于非负矩阵分解的 Python 模块
项目描述
宁法
Nimfa 是一个 Python 模块,它实现了许多用于非负矩阵分解的算法。Nimfa 在 BSD 许可下分发。
该项目由 Marinka Zitnik 于 2011 年作为 Google Summer of Code 项目启动,从那时起许多志愿者都做出了贡献。有关贡献者的完整列表,请参阅 AUTHORS 文件。
它目前由一组志愿者维护。
重要链接
- 官方源代码仓库:https ://github.com/marinkaz/nimfa
- HTML 文档(稳定版):http ://ai.stanford.edu/~marinka/nimfa
- 下载版本:http: //github.com/marinkaz/nimfa/releases
- 问题跟踪器:http: //github.com/marinkaz/nimfa/issues
依赖项
Nimfa 经测试可在 Python 2.7 和 Python 3.4 下工作。
构建软件所需的依赖项是 NumPy >= 1.7.0,SciPy >= 0.12.0。
运行示例需要 Matplotlib >= 1.1.1。
安装
这个包使用 setuptools,这是安装 python 模块的常用方法。要安装在您的主目录中,请使用:
python setup.py install --user
在 Unix/Linux 上为所有用户安装:
sudo python setup.py install
有关更详细的安装说明,请参见网页http://ai.stanford.edu/~marinka/nimfa
利用
使用投影梯度和随机 Vcol 初始化算法对髓母细胞瘤基因表达数据运行交替最小二乘非负矩阵分解:
>>> import nimfa
>>> V = nimfa.examples.medulloblastoma.read(normalize=True)
>>> lsnmf = nimfa.Lsnmf(V, seed='random_vcol', rank=50, max_iter=100)
>>> lsnmf_fit = lsnmf()
>>> print('Rss: %5.4f' % lsnmf_fit.fit.rss())
Rss: 0.2668
>>> print('Evar: %5.4f' % lsnmf_fit.fit.evar())
Evar: 0.9997
>>> print('K-L divergence: %5.4f' % lsnmf_fit.distance(metric='kl'))
K-L divergence: 38.8744
>>> print('Sparseness, W: %5.4f, H: %5.4f' % lsnmf_fit.fit.sparseness())
Sparseness, W: 0.7297, H: 0.8796
引用
@article{Zitnik2012,
title = {Nimfa: A Python Library for Nonnegative Matrix Factorization},
author = {Zitnik, Marinka and Zupan, Blaz},
journal = {Journal of Machine Learning Research},
volume = {13},
pages = {849-853},
year = {2012}
}
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
nimfa-1.4.0.tar.gz
(5.7 MB
查看哈希)
内置分布
nimfa-1.4.0-py2.py3-none-any.whl
(4.7 MB
查看哈希)