├── requirements.txt ├── nimfa ├── tests │ ├── __init__.py │ └── test_examples.py ├── datasets │ ├── ORL_faces │ │ ├── s1 │ │ │ ├── 1.pgm │ │ │ ├── 10.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ └── 9.pgm │ │ ├── s10 │ │ │ ├── 1.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ ├── 9.pgm │ │ │ ├── 10.pgm │ │ │ └── target.jpg │ │ ├── s11 │ │ │ ├── 1.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ ├── 9.pgm │ │ │ └── 10.pgm │ │ ├── s12 │ │ │ ├── 1.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ ├── 9.pgm │ │ │ └── 10.pgm │ │ ├── s13 │ │ │ ├── 1.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ ├── 9.pgm │ │ │ └── 10.pgm │ │ ├── s14 │ │ │ ├── 1.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ ├── 9.pgm │ │ │ └── 10.pgm │ │ ├── s15 │ │ │ ├── 1.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ ├── 9.pgm │ │ │ └── 10.pgm │ │ ├── s16 │ │ │ ├── 1.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ ├── 9.pgm │ │ │ └── 10.pgm │ │ ├── s17 │ │ │ ├── 1.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ ├── 9.pgm │ │ │ └── 10.pgm │ │ ├── s18 │ │ │ ├── 1.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ ├── 9.pgm │ │ │ └── 10.pgm │ │ ├── s19 │ │ │ ├── 1.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ ├── 9.pgm │ │ │ └── 10.pgm │ │ ├── s2 │ │ │ ├── 1.pgm │ │ │ ├── 10.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ └── 9.pgm │ │ ├── s20 │ │ │ ├── 1.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ ├── 9.pgm │ │ │ └── 10.pgm │ │ ├── s21 │ │ │ ├── 1.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ ├── 9.pgm │ │ │ └── 10.pgm │ │ ├── s22 │ │ │ ├── 1.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ ├── 9.pgm │ │ │ └── 10.pgm │ │ ├── s23 │ │ │ ├── 1.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ ├── 9.pgm │ │ │ └── 10.pgm │ │ ├── s24 │ │ │ ├── 1.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ ├── 9.pgm │ │ │ └── 10.pgm │ │ ├── s25 │ │ │ ├── 1.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ ├── 9.pgm │ │ │ └── 10.pgm │ │ ├── s26 │ │ │ ├── 1.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ ├── 9.pgm │ │ │ └── 10.pgm │ │ ├── s27 │ │ │ ├── 1.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ ├── 9.pgm │ │ │ └── 10.pgm │ │ ├── s28 │ │ │ ├── 1.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ ├── 9.pgm │ │ │ └── 10.pgm │ │ ├── s29 │ │ │ ├── 1.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ ├── 9.pgm │ │ │ └── 10.pgm │ │ ├── s3 │ │ │ ├── 1.pgm │ │ │ ├── 10.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ └── 9.pgm │ │ ├── s30 │ │ │ ├── 1.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ ├── 9.pgm │ │ │ └── 10.pgm │ │ ├── s31 │ │ │ ├── 1.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ ├── 9.pgm │ │ │ └── 10.pgm │ │ ├── s32 │ │ │ ├── 1.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ ├── 9.pgm │ │ │ └── 10.pgm │ │ ├── s33 │ │ │ ├── 1.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ ├── 9.pgm │ │ │ └── 10.pgm │ │ ├── s34 │ │ │ ├── 1.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ ├── 9.pgm │ │ │ └── 10.pgm │ │ ├── s35 │ │ │ ├── 1.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ ├── 9.pgm │ │ │ └── 10.pgm │ │ ├── s36 │ │ │ ├── 1.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ ├── 9.pgm │ │ │ └── 10.pgm │ │ ├── s37 │ │ │ ├── 1.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ ├── 9.pgm │ │ │ └── 10.pgm │ │ ├── s38 │ │ │ ├── 1.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ ├── 9.pgm │ │ │ └── 10.pgm │ │ ├── s39 │ │ │ ├── 1.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ ├── 9.pgm │ │ │ └── 10.pgm │ │ ├── s4 │ │ │ ├── 1.pgm │ │ │ ├── 10.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ └── 9.pgm │ │ ├── s40 │ │ │ ├── 1.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ ├── 9.pgm │ │ │ └── 10.pgm │ │ ├── s5 │ │ │ ├── 1.pgm │ │ │ ├── 10.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ └── 9.pgm │ │ ├── s6 │ │ │ ├── 1.pgm │ │ │ ├── 10.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ └── 9.pgm │ │ ├── s7 │ │ │ ├── 1.pgm │ │ │ ├── 10.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ └── 9.pgm │ │ ├── s8 │ │ │ ├── 1.pgm │ │ │ ├── 10.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ └── 9.pgm │ │ ├── s9 │ │ │ ├── 1.pgm │ │ │ ├── 10.pgm │ │ │ ├── 2.pgm │ │ │ ├── 3.pgm │ │ │ ├── 4.pgm │ │ │ ├── 5.pgm │ │ │ ├── 6.pgm │ │ │ ├── 7.pgm │ │ │ ├── 8.pgm │ │ │ └── 9.pgm │ │ └── README │ ├── Medlars │ │ └── README.md │ ├── MovieLens │ │ └── README.md │ ├── CBCL_faces │ │ └── README.md │ ├── Medulloblastoma │ │ └── Medulloblastomas_samples.txt │ ├── S_cerevisiae_FC │ │ └── README.md │ ├── __init__.py │ └── ALL_AML │ │ └── ALL_AML_samples.txt ├── utils │ ├── __init__.py │ └── utils.py ├── methods │ ├── __init__.py │ ├── seeding │ │ ├── __init__.py │ │ ├── fixed.py │ │ ├── random_vcol.py │ │ ├── random.py │ │ └── random_c.py │ └── factorization │ │ └── __init__.py ├── __init__.py ├── models │ ├── __init__.py │ ├── mf_track.py │ ├── nmf_std.py │ ├── nmf_ns.py │ ├── smf.py │ └── mf_fit.py └── examples │ ├── __init__.py │ └── recommendations.py ├── setup.cfg ├── tutorial-diseases.png ├── docs ├── images │ ├── base │ │ ├── google-logo.png │ │ └── orange-logo.png │ ├── all_aml_consensus2.png │ ├── all_aml_consensus3.png │ ├── documents_basisW1.png │ ├── documents_basisW13.png │ ├── documents_basisW15.png │ ├── documents_basisW4.png │ ├── documents_basisW5.png │ ├── cbcl_faces_50_iters_NMF.png │ ├── cbcl_faces_10_iters_SNMF_L.png │ ├── cbcl_faces_10_iters_SNMF_R.png │ ├── cbcl_faces_50_iters_LSNMF.png │ ├── medulloblastoma_consensus2.png │ ├── medulloblastoma_consensus3.png │ ├── orl_faces_200_iters_small_LSNMF.png │ ├── orl_faces_200_iters_small_NMF.png │ ├── orl_faces_500_iters_large_LSNMF.png │ └── orl_faces_5_iters_small_PSMF_prior5.png ├── nimfa.models.nmf.rst ├── nimfa.models.smf.rst ├── nimfa.utils.linalg.rst ├── nimfa.utils.utils.rst ├── nimfa.models.mf_fit.rst ├── nimfa.models.mf_track.rst ├── nimfa.models.nmf_mm.rst ├── nimfa.models.nmf_ns.rst ├── nimfa.models.nmf_std.rst ├── content-utils.rst ├── nimfa.methods.seeding.fixed.rst ├── nimfa.methods.seeding.nndsvd.rst ├── nimfa.methods.seeding.random.rst ├── nimfa.methods.factorization.bd.rst ├── nimfa.methods.factorization.bmf.rst ├── nimfa.methods.factorization.icm.rst ├── nimfa.methods.factorization.nmf.rst ├── nimfa.methods.factorization.pmf.rst ├── nimfa.methods.seeding.random_c.rst ├── nimfa.methods.factorization.lfnmf.rst ├── nimfa.methods.factorization.lsnmf.rst ├── nimfa.methods.factorization.nsnmf.rst ├── nimfa.methods.factorization.pmfcc.rst ├── nimfa.methods.factorization.psmf.rst ├── nimfa.methods.factorization.snmf.rst ├── nimfa.methods.seeding.random_vcol.rst ├── nimfa.methods.factorization.sepnmf.rst ├── nimfa.methods.factorization.snmnmf.rst ├── code │ ├── snippet_nsnmf.py │ ├── snippet_pmf.py │ ├── snippet_psmf.py │ ├── snippet_bmf.py │ ├── snippet_nmf_fro.py │ ├── snippet_nmf_div.py │ ├── snippet_lsnmf.py │ ├── snippet_nmf_conn.py │ ├── snippet_pmfcc.py │ ├── snippet_snmf_r.py │ ├── snippet_snmf_l.py │ ├── snippet_lfnmf.py │ ├── snippet_icm.py │ ├── snippet_bd.py │ ├── usage.py │ ├── snippet_snmnmf.py │ ├── usage6.py │ ├── usage7.py │ ├── usage2.py │ ├── usage5.py │ ├── usage3.py │ ├── usage1.py │ └── usage4.py ├── content-initialization.rst ├── nimfa.datasets.rst ├── nimfa.examples.all_aml.rst ├── nimfa.examples.documents.rst ├── nimfa.examples.orl_images.rst ├── nimfa.examples.synthetic.rst ├── nimfa.examples.cbcl_images.rst ├── nimfa.examples.medulloblastoma.rst ├── nimfa.examples.recommendations.rst ├── nimfa.examples.gene_func_prediction.rst ├── nimfa.utils.rst ├── nimfa.methods.rst ├── nimfa.models.rst ├── nimfa.methods.seeding.rst ├── nimfa.examples.rst ├── README.rst ├── content-quality-performance.rst ├── nimfa.methods.factorization.rst └── content-factorization.rst ├── requirements-tests.txt ├── tox.ini ├── MANIFEST.in ├── .gitignore ├── AUTHORS.md ├── JMLR.txt ├── COPYING.txt ├── .travis.yml ├── setup.py └── README.md /requirements.txt: -------------------------------------------------------------------------------- 1 | numpy>=1.7.0 2 | scipy>=0.12.0 3 | -------------------------------------------------------------------------------- /nimfa/tests/__init__.py: -------------------------------------------------------------------------------- 1 | """Various tests for nimfa code""" 2 | -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- 1 | [bdist_wheel] 2 | universal=1 3 | 4 | [metadata] 5 | description-file = README.md 6 | -------------------------------------------------------------------------------- /tutorial-diseases.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/tutorial-diseases.png -------------------------------------------------------------------------------- /docs/images/base/google-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/docs/images/base/google-logo.png -------------------------------------------------------------------------------- /docs/images/base/orange-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/docs/images/base/orange-logo.png -------------------------------------------------------------------------------- /requirements-tests.txt: -------------------------------------------------------------------------------- 1 | # do not explicitly install base requirements via pip 2 | # -r requirements.txt 3 | pytest 4 | -------------------------------------------------------------------------------- /docs/images/all_aml_consensus2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/docs/images/all_aml_consensus2.png -------------------------------------------------------------------------------- /docs/images/all_aml_consensus3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/docs/images/all_aml_consensus3.png -------------------------------------------------------------------------------- /docs/images/documents_basisW1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/docs/images/documents_basisW1.png -------------------------------------------------------------------------------- /docs/images/documents_basisW13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/docs/images/documents_basisW13.png -------------------------------------------------------------------------------- /docs/images/documents_basisW15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/docs/images/documents_basisW15.png -------------------------------------------------------------------------------- /docs/images/documents_basisW4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/docs/images/documents_basisW4.png -------------------------------------------------------------------------------- /docs/images/documents_basisW5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/docs/images/documents_basisW5.png -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s1/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s1/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s1/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s1/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s1/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s1/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s1/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s1/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s1/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s1/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s1/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s1/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s1/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s1/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s1/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s1/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s1/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s1/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s1/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s1/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s10/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s10/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s10/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s10/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s10/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s10/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s10/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s10/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s10/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s10/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s10/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s10/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s10/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s10/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s10/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s10/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s10/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s10/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s11/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s11/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s11/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s11/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s11/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s11/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s11/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s11/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s11/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s11/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s11/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s11/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s11/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s11/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s11/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s11/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s11/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s11/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s12/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s12/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s12/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s12/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s12/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s12/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s12/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s12/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s12/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s12/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s12/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s12/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s12/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s12/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s12/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s12/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s12/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s12/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s13/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s13/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s13/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s13/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s13/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s13/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s13/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s13/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s13/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s13/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s13/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s13/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s13/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s13/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s13/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s13/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s13/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s13/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s14/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s14/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s14/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s14/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s14/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s14/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s14/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s14/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s14/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s14/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s14/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s14/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s14/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s14/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s14/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s14/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s14/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s14/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s15/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s15/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s15/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s15/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s15/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s15/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s15/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s15/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s15/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s15/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s15/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s15/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s15/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s15/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s15/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s15/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s15/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s15/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s16/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s16/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s16/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s16/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s16/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s16/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s16/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s16/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s16/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s16/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s16/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s16/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s16/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s16/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s16/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s16/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s16/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s16/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s17/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s17/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s17/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s17/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s17/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s17/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s17/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s17/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s17/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s17/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s17/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s17/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s17/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s17/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s17/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s17/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s17/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s17/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s18/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s18/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s18/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s18/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s18/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s18/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s18/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s18/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s18/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s18/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s18/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s18/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s18/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s18/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s18/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s18/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s18/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s18/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s19/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s19/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s19/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s19/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s19/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s19/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s19/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s19/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s19/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s19/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s19/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s19/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s19/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s19/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s19/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s19/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s19/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s19/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s2/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s2/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s2/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s2/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s2/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s2/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s2/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s2/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s2/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s2/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s2/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s2/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s2/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s2/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s2/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s2/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s2/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s2/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s2/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s2/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s20/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s20/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s20/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s20/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s20/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s20/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s20/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s20/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s20/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s20/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s20/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s20/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s20/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s20/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s20/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s20/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s20/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s20/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s21/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s21/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s21/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s21/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s21/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s21/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s21/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s21/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s21/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s21/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s21/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s21/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s21/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s21/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s21/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s21/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s21/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s21/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s22/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s22/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s22/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s22/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s22/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s22/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s22/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s22/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s22/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s22/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s22/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s22/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s22/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s22/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s22/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s22/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s22/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s22/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s23/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s23/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s23/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s23/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s23/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s23/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s23/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s23/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s23/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s23/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s23/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s23/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s23/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s23/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s23/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s23/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s23/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s23/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s24/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s24/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s24/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s24/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s24/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s24/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s24/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s24/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s24/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s24/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s24/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s24/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s24/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s24/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s24/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s24/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s24/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s24/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s25/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s25/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s25/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s25/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s25/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s25/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s25/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s25/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s25/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s25/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s25/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s25/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s25/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s25/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s25/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s25/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s25/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s25/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s26/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s26/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s26/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s26/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s26/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s26/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s26/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s26/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s26/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s26/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s26/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s26/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s26/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s26/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s26/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s26/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s26/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s26/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s27/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s27/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s27/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s27/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s27/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s27/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s27/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s27/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s27/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s27/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s27/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s27/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s27/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s27/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s27/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s27/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s27/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s27/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s28/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s28/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s28/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s28/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s28/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s28/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s28/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s28/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s28/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s28/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s28/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s28/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s28/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s28/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s28/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s28/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s28/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s28/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s29/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s29/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s29/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s29/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s29/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s29/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s29/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s29/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s29/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s29/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s29/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s29/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s29/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s29/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s29/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s29/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s29/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s29/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s3/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s3/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s3/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s3/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s3/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s3/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s3/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s3/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s3/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s3/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s3/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s3/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s3/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s3/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s3/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s3/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s3/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s3/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s3/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s3/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s30/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s30/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s30/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s30/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s30/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s30/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s30/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s30/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s30/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s30/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s30/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s30/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s30/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s30/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s30/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s30/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s30/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s30/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s31/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s31/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s31/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s31/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s31/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s31/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s31/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s31/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s31/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s31/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s31/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s31/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s31/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s31/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s31/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s31/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s31/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s31/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s32/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s32/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s32/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s32/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s32/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s32/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s32/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s32/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s32/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s32/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s32/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s32/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s32/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s32/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s32/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s32/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s32/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s32/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s33/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s33/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s33/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s33/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s33/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s33/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s33/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s33/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s33/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s33/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s33/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s33/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s33/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s33/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s33/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s33/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s33/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s33/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s34/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s34/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s34/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s34/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s34/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s34/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s34/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s34/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s34/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s34/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s34/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s34/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s34/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s34/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s34/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s34/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s34/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s34/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s35/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s35/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s35/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s35/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s35/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s35/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s35/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s35/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s35/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s35/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s35/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s35/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s35/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s35/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s35/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s35/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s35/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s35/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s36/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s36/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s36/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s36/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s36/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s36/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s36/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s36/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s36/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s36/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s36/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s36/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s36/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s36/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s36/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s36/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s36/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s36/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s37/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s37/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s37/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s37/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s37/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s37/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s37/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s37/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s37/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s37/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s37/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s37/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s37/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s37/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s37/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s37/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s37/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s37/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s38/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s38/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s38/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s38/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s38/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s38/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s38/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s38/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s38/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s38/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s38/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s38/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s38/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s38/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s38/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s38/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s38/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s38/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s39/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s39/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s39/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s39/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s39/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s39/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s39/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s39/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s39/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s39/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s39/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s39/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s39/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s39/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s39/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s39/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s39/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s39/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s4/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s4/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s4/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s4/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s4/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s4/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s4/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s4/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s4/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s4/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s4/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s4/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s4/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s4/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s4/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s4/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s4/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s4/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s4/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s4/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s40/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s40/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s40/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s40/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s40/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s40/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s40/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s40/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s40/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s40/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s40/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s40/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s40/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s40/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s40/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s40/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s40/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s40/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s5/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s5/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s5/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s5/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s5/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s5/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s5/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s5/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s5/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s5/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s5/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s5/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s5/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s5/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s5/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s5/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s5/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s5/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s5/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s5/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s6/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s6/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s6/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s6/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s6/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s6/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s6/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s6/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s6/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s6/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s6/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s6/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s6/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s6/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s6/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s6/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s6/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s6/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s6/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s6/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s7/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s7/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s7/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s7/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s7/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s7/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s7/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s7/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s7/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s7/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s7/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s7/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s7/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s7/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s7/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s7/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s7/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s7/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s7/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s7/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s8/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s8/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s8/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s8/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s8/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s8/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s8/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s8/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s8/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s8/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s8/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s8/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s8/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s8/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s8/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s8/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s8/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s8/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s8/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s8/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s9/1.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s9/1.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s9/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s9/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s9/2.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s9/2.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s9/3.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s9/3.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s9/4.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s9/4.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s9/5.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s9/5.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s9/6.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s9/6.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s9/7.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s9/7.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s9/8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s9/8.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s9/9.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s9/9.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s10/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s10/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s11/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s11/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s12/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s12/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s13/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s13/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s14/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s14/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s15/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s15/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s16/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s16/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s17/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s17/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s18/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s18/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s19/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s19/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s20/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s20/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s21/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s21/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s22/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s22/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s23/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s23/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s24/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s24/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s25/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s25/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s26/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s26/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s27/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s27/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s28/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s28/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s29/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s29/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s30/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s30/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s31/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s31/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s32/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s32/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s33/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s33/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s34/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s34/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s35/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s35/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s36/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s36/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s37/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s37/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s38/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s38/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s39/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s39/10.pgm -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s40/10.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s40/10.pgm -------------------------------------------------------------------------------- /docs/images/cbcl_faces_50_iters_NMF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/docs/images/cbcl_faces_50_iters_NMF.png -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/s10/target.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/nimfa/datasets/ORL_faces/s10/target.jpg -------------------------------------------------------------------------------- /docs/images/cbcl_faces_10_iters_SNMF_L.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/docs/images/cbcl_faces_10_iters_SNMF_L.png -------------------------------------------------------------------------------- /docs/images/cbcl_faces_10_iters_SNMF_R.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/docs/images/cbcl_faces_10_iters_SNMF_R.png -------------------------------------------------------------------------------- /docs/images/cbcl_faces_50_iters_LSNMF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/docs/images/cbcl_faces_50_iters_LSNMF.png -------------------------------------------------------------------------------- /docs/images/medulloblastoma_consensus2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/docs/images/medulloblastoma_consensus2.png -------------------------------------------------------------------------------- /docs/images/medulloblastoma_consensus3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/docs/images/medulloblastoma_consensus3.png -------------------------------------------------------------------------------- /docs/nimfa.models.nmf.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.models.nmf 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: -------------------------------------------------------------------------------- /docs/nimfa.models.smf.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.models.smf 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: -------------------------------------------------------------------------------- /docs/images/orl_faces_200_iters_small_LSNMF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/docs/images/orl_faces_200_iters_small_LSNMF.png -------------------------------------------------------------------------------- /docs/images/orl_faces_200_iters_small_NMF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/docs/images/orl_faces_200_iters_small_NMF.png -------------------------------------------------------------------------------- /docs/images/orl_faces_500_iters_large_LSNMF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/docs/images/orl_faces_500_iters_large_LSNMF.png -------------------------------------------------------------------------------- /docs/nimfa.utils.linalg.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.utils.linalg 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: -------------------------------------------------------------------------------- /docs/nimfa.utils.utils.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.utils.utils 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: -------------------------------------------------------------------------------- /docs/nimfa.models.mf_fit.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.models.mf_fit 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: -------------------------------------------------------------------------------- /docs/nimfa.models.mf_track.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.models.mf_track 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: -------------------------------------------------------------------------------- /docs/nimfa.models.nmf_mm.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.models.nmf_mm 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: -------------------------------------------------------------------------------- /docs/nimfa.models.nmf_ns.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.models.nmf_ns 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: -------------------------------------------------------------------------------- /docs/nimfa.models.nmf_std.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.models.nmf_std 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: -------------------------------------------------------------------------------- /docs/content-utils.rst: -------------------------------------------------------------------------------- 1 | 2 | * Fitted factorization model tracker across multiple runs 3 | 4 | * Residuals tracker across multiple factorizations / runs -------------------------------------------------------------------------------- /docs/images/orl_faces_5_iters_small_PSMF_prior5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mims-harvard/nimfa/HEAD/docs/images/orl_faces_5_iters_small_PSMF_prior5.png -------------------------------------------------------------------------------- /docs/nimfa.methods.seeding.fixed.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.methods.seeding.fixed 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: -------------------------------------------------------------------------------- /docs/nimfa.methods.seeding.nndsvd.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.methods.seeding.nndsvd 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: -------------------------------------------------------------------------------- /docs/nimfa.methods.seeding.random.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.methods.seeding.random 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: -------------------------------------------------------------------------------- /docs/nimfa.methods.factorization.bd.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.methods.factorization.bd 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: -------------------------------------------------------------------------------- /docs/nimfa.methods.factorization.bmf.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.methods.factorization.bmf 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: -------------------------------------------------------------------------------- /docs/nimfa.methods.factorization.icm.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.methods.factorization.icm 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: -------------------------------------------------------------------------------- /docs/nimfa.methods.factorization.nmf.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.methods.factorization.nmf 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: -------------------------------------------------------------------------------- /docs/nimfa.methods.factorization.pmf.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.methods.factorization.pmf 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: -------------------------------------------------------------------------------- /docs/nimfa.methods.seeding.random_c.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.methods.seeding.random_c 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: -------------------------------------------------------------------------------- /docs/nimfa.methods.factorization.lfnmf.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.methods.factorization.lfnmf 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: -------------------------------------------------------------------------------- /docs/nimfa.methods.factorization.lsnmf.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.methods.factorization.lsnmf 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: -------------------------------------------------------------------------------- /docs/nimfa.methods.factorization.nsnmf.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.methods.factorization.nsnmf 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: -------------------------------------------------------------------------------- /docs/nimfa.methods.factorization.pmfcc.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.methods.factorization.pmfcc 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: -------------------------------------------------------------------------------- /docs/nimfa.methods.factorization.psmf.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.methods.factorization.psmf 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: -------------------------------------------------------------------------------- /docs/nimfa.methods.factorization.snmf.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.methods.factorization.snmf 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: -------------------------------------------------------------------------------- /docs/nimfa.methods.seeding.random_vcol.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.methods.seeding.random_vcol 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: -------------------------------------------------------------------------------- /docs/nimfa.methods.factorization.sepnmf.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.methods.factorization.sepnmf 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: 6 | -------------------------------------------------------------------------------- /docs/nimfa.methods.factorization.snmnmf.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.methods.factorization.snmnmf 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: -------------------------------------------------------------------------------- /docs/code/snippet_nsnmf.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | import nimfa 4 | 5 | V = np.random.rand(40, 100) 6 | nsnmf = nimfa.Nsnmf(V, seed="random", rank=10, max_iter=12, theta=0.5) 7 | nsnmf_fit = nsnmf() 8 | -------------------------------------------------------------------------------- /docs/code/snippet_pmf.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | import nimfa 4 | 5 | V = np.random.rand(40, 100) 6 | pmf = nimfa.Pmf(V, seed="random_vcol", rank=10, max_iter=12, rel_error=1e-5) 7 | pmf_fit = pmf() 8 | -------------------------------------------------------------------------------- /docs/code/snippet_psmf.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | import nimfa 4 | 5 | V = np.random.rand(40, 100) 6 | psmf = nimfa.Psmf(V, seed=None, rank=10, max_iter=12, prior=np.random.rand(10)) 7 | psmf_fit = psmf() 8 | -------------------------------------------------------------------------------- /docs/code/snippet_bmf.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | import nimfa 4 | 5 | V = np.random.rand(40, 100) 6 | bmf = nimfa.Bmf(V, seed="nndsvd", rank=10, max_iter=12, lambda_w=1.1, lambda_h=1.1) 7 | bmf_fit = bmf() 8 | -------------------------------------------------------------------------------- /docs/content-initialization.rst: -------------------------------------------------------------------------------- 1 | 2 | * **Random** 3 | 4 | * **Fixed** 5 | 6 | * **NNDSVD** [Boutsidis2007]_ 7 | 8 | * **Random C** [Albright2006]_ 9 | 10 | * **Random VCol** [Albright2006]_ 11 | -------------------------------------------------------------------------------- /tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | envlist = py27,py34 3 | 4 | [testenv] 5 | commands = py.test nimfa 6 | deps = -r{toxinidir}/requirements-tests.txt 7 | sitepackages = True 8 | 9 | [testenv:cover] 10 | commands = py.test --cov=nimfa 11 | -------------------------------------------------------------------------------- /docs/code/snippet_nmf_fro.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | import nimfa 4 | 5 | V = np.random.rand(40, 100) 6 | nmf = nimfa.Nmf(V, seed="nndsvd", rank=10, max_iter=12, update='euclidean', 7 | objective='fro') 8 | nmf_fit = nmf() 9 | -------------------------------------------------------------------------------- /docs/code/snippet_nmf_div.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | import nimfa 4 | 5 | V = np.random.rand(40, 100) 6 | nmf = nimfa.Nmf(V, seed="random_c", rank=10, max_iter=12, update='divergence', 7 | objective='div') 8 | nmf_fit = nmf() 9 | -------------------------------------------------------------------------------- /docs/nimfa.datasets.rst: -------------------------------------------------------------------------------- 1 | ####################### 2 | Datasets (``datasets``) 3 | ####################### 4 | 5 | .. automodule:: nimfa.datasets 6 | :members: 7 | :undoc-members: 8 | :inherited-members: 9 | :show-inheritance: 10 | 11 | 12 | -------------------------------------------------------------------------------- /docs/code/snippet_lsnmf.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | import nimfa 4 | 5 | V = np.random.rand(40, 100) 6 | lsnmf = nimfa.Lsnmf(V, seed="random_vcol", rank=10, max_iter=12, sub_iter=10, 7 | inner_sub_iter=10, beta=0.1) 8 | lsnmf_fit = lsnmf() 9 | -------------------------------------------------------------------------------- /nimfa/utils/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | """ 3 | This package contains implementations of linear algebra operations for sparse and dense matrices and 4 | utils for convenient operation of nimfa library. 5 | """ 6 | 7 | from . import linalg 8 | from . import utils 9 | -------------------------------------------------------------------------------- /docs/code/snippet_nmf_conn.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | import nimfa 4 | 5 | V = np.random.rand(40, 100) 6 | nmf = nimfa.Nmf(V, rank=10, seed="random_vcol", max_iter=200, update='euclidean', 7 | objective='conn', conn_change=40) 8 | nmf_fit = nmf() 9 | -------------------------------------------------------------------------------- /docs/code/snippet_pmfcc.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | import nimfa 4 | 5 | V = np.random.rand(40, 100) 6 | pmfcc = nimfa.Pmfcc(V, seed="random_vcol", rank=10, max_iter=30, 7 | theta=np.random.rand(V.shape[1], V.shape[1])) 8 | pmfcc_fit = pmfcc() 9 | -------------------------------------------------------------------------------- /docs/code/snippet_snmf_r.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | import nimfa 4 | 5 | V = np.random.rand(40, 100) 6 | snmf = nimfa.Snmf(V, seed="random_c", rank=10, max_iter=12, version='r', eta=1., 7 | beta=1e-4, i_conv=10, w_min_change=0) 8 | snmf_fit = snmf() 9 | -------------------------------------------------------------------------------- /docs/nimfa.examples.all_aml.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.examples.all_aml 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: 6 | 7 | .. comment literalinclude:: ../../nimfa/examples/all_aml.py 8 | :lines: 106-209 9 | :linenos: 10 | -------------------------------------------------------------------------------- /docs/code/snippet_snmf_l.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | import nimfa 4 | 5 | V = np.random.rand(40, 100) 6 | snmf = nimfa.Snmf(V, seed="random_vcol", rank=10, max_iter=12, version='l', 7 | eta=1., beta=1e-4, i_conv=10, w_min_change=0) 8 | snmf_fit = snmf() 9 | -------------------------------------------------------------------------------- /docs/nimfa.examples.documents.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.examples.documents 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: 6 | 7 | .. comment literalinclude:: ../../nimfa/examples/documents.py 8 | :lines: 99-262 9 | :linenos: 10 | -------------------------------------------------------------------------------- /docs/nimfa.examples.orl_images.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.examples.orl_images 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: 6 | 7 | .. comment literalinclude:: ../../nimfa/examples/orl_images.py 8 | :lines: 93-209 9 | :linenos: 10 | -------------------------------------------------------------------------------- /docs/nimfa.examples.synthetic.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.examples.synthetic 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: 6 | 7 | .. comment literalinclude:: ../../nimfa/examples/synthetic.py 8 | :lines: 35-378 9 | :linenos: 10 | -------------------------------------------------------------------------------- /docs/nimfa.examples.cbcl_images.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.examples.cbcl_images 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: 6 | 7 | .. comment literalinclude:: ../../nimfa/examples/cbcl_images.py 8 | :lines: 82-198 9 | :linenos: 10 | -------------------------------------------------------------------------------- /nimfa/datasets/Medlars/README.md: -------------------------------------------------------------------------------- 1 | # Medlars 2 | 3 | Dataset is at: http://web.eecs.utk.edu/research/lsi. This is a collection of 1033 medical abstracts. 4 | 5 | Directory structure should look like: 6 | 7 | datasets/ 8 | Medlars/ 9 | med.all 10 | [...] 11 | -------------------------------------------------------------------------------- /nimfa/datasets/ORL_faces/README: -------------------------------------------------------------------------------- 1 | 2 | ------------------------------------- 3 | README file for directory 'orl-faces' 4 | ------------------------------------- 5 | 6 | This directory contains the files of the 'ORL face database', provided 7 | courtesy of AT&T Laboratories Cambridge. 8 | 9 | -------------------------------------------------------------------------------- /docs/nimfa.examples.medulloblastoma.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.examples.medulloblastoma 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: 6 | 7 | .. comment literalinclude:: ../../nimfa/examples/medulloblastoma.py 8 | :lines: 96-199 9 | :linenos: 10 | -------------------------------------------------------------------------------- /docs/nimfa.examples.recommendations.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.examples.recommendations 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: 6 | 7 | .. comment literalinclude:: ../../nimfa/examples/recommendations.py 8 | :lines: 43-173 9 | :linenos: 10 | -------------------------------------------------------------------------------- /docs/nimfa.examples.gene_func_prediction.rst: -------------------------------------------------------------------------------- 1 | .. automodule:: nimfa.examples.gene_func_prediction 2 | :members: 3 | :undoc-members: 4 | :inherited-members: 5 | :show-inheritance: 6 | 7 | .. comment literalinclude:: ../../nimfa/examples/gene_func_prediction.py 8 | :lines: 57-461 9 | :linenos: 10 | -------------------------------------------------------------------------------- /docs/code/snippet_lfnmf.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | import nimfa 4 | 5 | V = np.random.rand(40, 100) 6 | lfnmf = nimfa.Lfnmf(V, seed=None, W=np.random.rand(V.shape[0], 10), 7 | H=np.random.rand(10, V.shape[1]), rank=10, max_iter=12, 8 | alpha=0.01) 9 | lfnmf_fit = lfnmf() 10 | -------------------------------------------------------------------------------- /docs/code/snippet_icm.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | import nimfa 4 | 5 | V = np.random.rand(40, 100) 6 | icm = nimfa.Icm(V, seed="nndsvd", rank=10, max_iter=12, iiter=20, 7 | alpha=np.random.randn(V.shape[0], 10), beta=np.random.randn(10, V.shape[1]), 8 | theta=0., k=0., sigma=1.) 9 | icm_fit = icm() 10 | -------------------------------------------------------------------------------- /docs/nimfa.utils.rst: -------------------------------------------------------------------------------- 1 | ################# 2 | Utils (``utils``) 3 | ################# 4 | 5 | .. automodule:: nimfa.utils 6 | :members: 7 | :undoc-members: 8 | :inherited-members: 9 | :show-inheritance: 10 | 11 | 12 | .. toctree:: 13 | :maxdepth: 2 14 | 15 | nimfa.utils.utils 16 | 17 | nimfa.utils.linalg 18 | 19 | 20 | -------------------------------------------------------------------------------- /docs/nimfa.methods.rst: -------------------------------------------------------------------------------- 1 | ##################### 2 | Methods (``methods``) 3 | ##################### 4 | 5 | .. automodule:: nimfa.methods 6 | :members: 7 | :undoc-members: 8 | :inherited-members: 9 | :show-inheritance: 10 | 11 | 12 | .. toctree:: 13 | :maxdepth: 3 14 | 15 | nimfa.methods.factorization 16 | 17 | nimfa.methods.seeding 18 | 19 | -------------------------------------------------------------------------------- /docs/code/snippet_bd.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | import nimfa 4 | 5 | V = np.random.rand(40, 100) 6 | bd = nimfa.Bd(V, seed="random_c", rank=10, max_iter=12, alpha=np.zeros((V.shape[0], 10)), 7 | beta=np.zeros((10, V.shape[1])), theta=.0, k=.0, sigma=1., skip=100, stride=1, 8 | n_w=np.zeros((10, 1)), n_h=np.zeros((10, 1)), n_sigma=False) 9 | bd_fit = bd() 10 | -------------------------------------------------------------------------------- /nimfa/datasets/MovieLens/README.md: -------------------------------------------------------------------------------- 1 | # Movielens 2 | 3 | Dataset is at: http://www.grouplens.org/node/12. Select the stable benchmark dataset with 100000 4 | ratings from 1000 users on 1700 movies. 5 | 6 | Directory structure should look like: 7 | 8 | datasets/ 9 | MovieLens/ 10 | ua.base 11 | ua.test 12 | ub.base 13 | ub.test 14 | [...] 15 | [...] 16 | -------------------------------------------------------------------------------- /docs/code/usage.py: -------------------------------------------------------------------------------- 1 | import nimfa 2 | 3 | V = nimfa.examples.medulloblastoma.read(normalize=True) 4 | 5 | lsnmf = nimfa.Lsnmf(V, seed='random_vcol', rank=50, max_iter=100) 6 | lsnmf_fit = lsnmf() 7 | 8 | print('Rss: %5.4f' % lsnmf_fit.fit.rss()) 9 | print('Evar: %5.4f' % lsnmf_fit.fit.evar()) 10 | print('K-L divergence: %5.4f' % lsnmf_fit.distance(metric='kl')) 11 | print('Sparseness, W: %5.4f, H: %5.4f' % lsnmf_fit.fit.sparseness()) 12 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | recursive-include docs * 2 | recursive-include nimfa/datasets/ALL_AML * 3 | recursive-include nimfa/datasets/CBCL_faces/README.md 4 | recursive-include nimfa/datasets/Medlars/README.md 5 | recursive-include nimfa/datasets/Medulloblastoma * 6 | recursive-include nimfa/datasets/MovieLens/README.md 7 | recursive-include nimfa/datasets/ORL_faces * 8 | recursive-include nimfa/datasets/S_cerevisiae_FC/README.md 9 | include *.py *.txt *.rst *.md 10 | -------------------------------------------------------------------------------- /docs/code/snippet_snmnmf.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import scipy.sparse as sp 3 | 4 | import nimfa 5 | 6 | V = np.random.rand(40, 100) 7 | V1 = np.random.rand(40, 200) 8 | snmnmf = nimfa.Snmnmf(V=V, V1=V1, seed="random_c", rank=10, max_iter=12, 9 | A=sp.csr_matrix((V1.shape[1], V1.shape[1])), 10 | B=sp.csr_matrix((V.shape[1], V1.shape[1])), gamma=0.01, 11 | gamma_1=0.01, lamb=0.01, lamb_1=0.01) 12 | snmnmf_fit = snmnmf() 13 | -------------------------------------------------------------------------------- /docs/code/usage6.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | import nimfa 4 | 5 | V = np.random.rand(30, 20) 6 | 7 | init_W = np.random.rand(30, 4) 8 | init_H = np.random.rand(4, 20) 9 | 10 | # Fixed initialization of latent matrices 11 | nmf = nimfa.Nmf(V, seed="fixed", W=init_W, H=init_H, rank=4) 12 | nmf_fit = nmf() 13 | 14 | print("Euclidean distance: %5.3f" % nmf_fit.distance(metric="euclidean")) 15 | print('Initialization type: %s' % nmf_fit.seeding) 16 | print('Iterations: %d' % nmf_fit.n_iter) 17 | -------------------------------------------------------------------------------- /nimfa/methods/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | """ 3 | This package contains implementations of the MF algorithms and seeding methods. 4 | """ 5 | 6 | from . import factorization 7 | from . import seeding 8 | 9 | 10 | def list_mf_methods(): 11 | """Return list of implemented MF methods.""" 12 | return [name for name in factorization.methods] 13 | 14 | 15 | def list_seeding_methods(): 16 | """Return list of implemented seeding methods.""" 17 | return [name for name in seeding.methods] 18 | -------------------------------------------------------------------------------- /nimfa/methods/seeding/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | """ 3 | This package contains implementations of initialization methods for matrix factorization. 4 | """ 5 | 6 | from .nndsvd import * 7 | from .random import * 8 | from .fixed import * 9 | from .random_c import * 10 | from .random_vcol import * 11 | 12 | methods = {"random": Random, 13 | "fixed": Fixed, 14 | "nndsvd": Nndsvd, 15 | "random_c": Random_c, 16 | "random_vcol": Random_vcol, 17 | "none": None} 18 | -------------------------------------------------------------------------------- /docs/nimfa.models.rst: -------------------------------------------------------------------------------- 1 | #################### 2 | Models (``models``) 3 | #################### 4 | 5 | .. automodule:: nimfa.models 6 | :members: 7 | :undoc-members: 8 | :inherited-members: 9 | :show-inheritance: 10 | 11 | 12 | .. toctree:: 13 | :maxdepth: 2 14 | 15 | nimfa.models.nmf 16 | 17 | nimfa.models.nmf_std 18 | 19 | nimfa.models.nmf_ns 20 | 21 | nimfa.models.nmf_mm 22 | 23 | nimfa.models.smf 24 | 25 | nimfa.models.mf_fit 26 | 27 | nimfa.models.mf_track 28 | 29 | 30 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore temporary editor files. 2 | *.swp 3 | *~ 4 | 5 | # Ignore project files 6 | *.pyproj 7 | 8 | # Ignore dot files. 9 | .* 10 | 11 | # Ignore backup files. 12 | *.orig 13 | *.bak 14 | 15 | # Ignore temporary editor files. 16 | *.swp 17 | *~ 18 | 19 | # Ignore binaries. 20 | *.py[cod] 21 | *.so 22 | *.dll 23 | 24 | # Ignore built documentation 25 | html 26 | 27 | # Ignore files created by setup.py. 28 | build 29 | dist 30 | MANIFEST 31 | *.egg-info 32 | *.egg 33 | distribute*.tar.gz 34 | 35 | # Ignore virtualenv folder 36 | venv 37 | -------------------------------------------------------------------------------- /docs/nimfa.methods.seeding.rst: -------------------------------------------------------------------------------- 1 | ############################# 2 | Seeding (``methods.seeding``) 3 | ############################# 4 | 5 | .. automodule:: nimfa.methods.seeding 6 | :members: 7 | :undoc-members: 8 | :inherited-members: 9 | :show-inheritance: 10 | 11 | 12 | .. toctree:: 13 | :maxdepth: 2 14 | 15 | nimfa.methods.seeding.nndsvd 16 | 17 | nimfa.methods.seeding.random_c 18 | 19 | nimfa.methods.seeding.random_vcol 20 | 21 | nimfa.methods.seeding.random 22 | 23 | nimfa.methods.seeding.fixed 24 | 25 | 26 | -------------------------------------------------------------------------------- /AUTHORS.md: -------------------------------------------------------------------------------- 1 | .. -*- mode: rst -*- 2 | 3 | 4 | This is a community effort, and as such many people have contributed 5 | to it over the years. 6 | 7 | History 8 | ------- 9 | 10 | This project was started in 2011 as a Google Summer of Code project by 11 | Marinka Zitnik. 12 | 13 | People 14 | ------ 15 | 16 | The following people have been core contributors to Nimfa's development and maintenance: 17 | 18 | * Yaroslav Halchenko 19 | * Vamsi Krishna 20 | * Mariano Tepper 21 | * Marko Toplak 22 | * Marinka Zitnik 23 | * Blaz Zupan 24 | -------------------------------------------------------------------------------- /nimfa/datasets/CBCL_faces/README.md: -------------------------------------------------------------------------------- 1 | # CBCL face images 2 | 3 | CBCL face images data set: 4 | * 19 x 19 Grayscale PGM format images, 5 | * Training set: 2429 faces, 4548 nonfaces, 6 | * Test set: 472 faces, 23573 nonfaces. 7 | 8 | Dataset is at: http://cbcl.mit.edu/cbcl/software-datasets/FaceData2.html. 9 | 10 | Directory structure should look like: 11 | 12 | datasets/ 13 | CBCL_faces/ 14 | README 15 | face/ 16 | face00001.pgm 17 | [...] 18 | face02429.pgm 19 | non-face/ 20 | [...] 21 | [...] 22 | -------------------------------------------------------------------------------- /docs/code/usage7.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | import nimfa 4 | 5 | V = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]) 6 | print('Target:\n%s' % V) 7 | 8 | lsnmf = nimfa.Lsnmf(V, seed='random_vcol', max_iter=10, rank=3, track_error=True) 9 | lsnmf_fit = lsnmf() 10 | 11 | W = lsnmf_fit.basis() 12 | print('Basis matrix:\n%s' % W) 13 | 14 | H = lsnmf_fit.coef() 15 | print('Mixture matrix:\n%s' % H) 16 | 17 | r = lsnmf.estimate_rank(rank_range=[2,3,4], what=['rss']) 18 | pp_r = '\n'.join('%d: %5.3f' % (rank, vals['rss']) for rank, vals in r.items()) 19 | print('Rank estimate:\n%s' % pp_r) 20 | -------------------------------------------------------------------------------- /docs/code/usage2.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | import nimfa 4 | 5 | V = np.array([[1, 2, 3], [4, 5, 6], [6, 7, 8]]) 6 | print('Target:\n%s' % V) 7 | 8 | lsnmf = nimfa.Lsnmf(V, max_iter=10, rank=3) 9 | lsnmf_fit = lsnmf() 10 | 11 | W = lsnmf_fit.basis() 12 | print('Basis matrix:\n%s' % W) 13 | 14 | H = lsnmf_fit.coef() 15 | print('Mixture matrix:\n%s' % H) 16 | 17 | print('K-L divergence: %5.3f' % lsnmf_fit.distance(metric='kl')) 18 | 19 | print('Rss: %5.3f' % lsnmf_fit.fit.rss()) 20 | print('Evar: %5.3f' % lsnmf_fit.fit.evar()) 21 | print('Iterations: %d' % lsnmf_fit.n_iter) 22 | print('Target estimate:\n%s' % np.dot(W, H)) 23 | -------------------------------------------------------------------------------- /docs/nimfa.examples.rst: -------------------------------------------------------------------------------- 1 | ####################### 2 | Examples (``examples``) 3 | ####################### 4 | 5 | .. automodule:: nimfa.examples 6 | :members: 7 | :undoc-members: 8 | :inherited-members: 9 | :show-inheritance: 10 | 11 | 12 | .. toctree:: 13 | :maxdepth: 2 14 | 15 | nimfa.examples.synthetic 16 | 17 | nimfa.examples.all_aml 18 | 19 | nimfa.examples.medulloblastoma 20 | 21 | nimfa.examples.cbcl_images 22 | 23 | nimfa.examples.documents 24 | 25 | nimfa.examples.orl_images 26 | 27 | nimfa.examples.recommendations 28 | 29 | nimfa.examples.gene_func_prediction 30 | -------------------------------------------------------------------------------- /docs/code/usage5.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | import nimfa 4 | 5 | V = np.random.rand(23, 200) 6 | 7 | # Factorization will be run 3 times (n_run) and factors will be tracked for computing 8 | # cophenetic correlation. Note increased time and space complexity 9 | bmf = nimfa.Bmf(V, max_iter=10, rank=30, n_run=3, track_factor=True) 10 | bmf_fit = bmf() 11 | 12 | print('K-L divergence: %5.3f' % bmf_fit.distance(metric='kl')) 13 | 14 | sm = bmf_fit.summary() 15 | print('Rss: %5.3f' % sm['rss']) 16 | print('Evar: %5.3f' % sm['evar']) 17 | print('Iterations: %d' % sm['n_iter']) 18 | print('Cophenetic correlation: %5.3f' % sm['cophenetic']) 19 | -------------------------------------------------------------------------------- /docs/code/usage3.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | import nimfa 4 | 5 | V = np.array([[1, 2, 3], [4, 5, 6], [6, 7, 8]]) 6 | print('Target:\n%s' % V) 7 | 8 | lsnmf = nimfa.Lsnmf(V, seed='random_vcol', max_iter=10, rank=3, track_error=True) 9 | lsnmf_fit = lsnmf() 10 | 11 | W = lsnmf_fit.basis() 12 | print('Basis matrix:\n%s' % W) 13 | 14 | H = lsnmf_fit.coef() 15 | print('Mixture matrix:\n%s' % H) 16 | 17 | # Objective function value for each iteration 18 | print('Error tracking:\n%s' % lsnmf_fit.fit.tracker.get_error()) 19 | 20 | sm = lsnmf_fit.summary() 21 | print('Rss: %5.3f' % sm['rss']) 22 | print('Evar: %5.3f' % sm['evar']) 23 | print('Iterations: %d' % sm['n_iter']) 24 | -------------------------------------------------------------------------------- /nimfa/datasets/Medulloblastoma/Medulloblastomas_samples.txt: -------------------------------------------------------------------------------- 1 | Brain_MD_7 C 2 | Brain_MD_59 C 3 | Brain_MD_20 C 4 | Brain_MD_21 C 5 | Brain_MD_50 C 6 | Brain_MD_49 C 7 | Brain_MD_45 C 8 | Brain_MD_43 C 9 | Brain_MD_8 C 10 | Brain_MD_42 C 11 | Brain_MD_1 C 12 | Brain_MD_4 C 13 | Brain_MD_55 C 14 | Brain_MD_41 C 15 | Brain_MD_37 C 16 | Brain_MD_3 C 17 | Brain_MD_34 C 18 | Brain_MD_29 C 19 | Brain_MD_13 C 20 | Brain_MD_24 C 21 | Brain_MD_65 C 22 | Brain_MD_5 C 23 | Brain_MD_66 C 24 | Brain_MD_67 C 25 | Brain_MD_58 C 26 | Brain_MD_53 D 27 | Brain_MD_56 D 28 | Brain_MD_16 D 29 | Brain_MD_40 D 30 | Brain_MD_35 D 31 | Brain_MD_30 D 32 | Brain_MD_23 D 33 | Brain_MD_28 D 34 | Brain_MD_60 D 35 | -------------------------------------------------------------------------------- /nimfa/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | """ 3 | ################# 4 | Nimfa (``nimfa``) 5 | ################# 6 | 7 | Nimfa is a Python module which includes a number of published matrix 8 | factorization algorithms, initialization methods, quality and performance 9 | measures and facilitates the combination of these to produce new strategies. 10 | The library represents a unified and efficient interface to matrix 11 | factorization algorithms and methods. 12 | """ 13 | 14 | __license__ = 'BSD' 15 | __version__ = '1.4.0' 16 | __maintainer__ = 'Marinka Zitnik' 17 | __email__ = 'marinka@cs.stanford.edu' 18 | 19 | 20 | from nimfa import examples 21 | from nimfa.methods.factorization import * 22 | from .version import \ 23 | short_version as __version__, git_revision as __git_version__ 24 | -------------------------------------------------------------------------------- /docs/code/usage1.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import scipy.sparse as spr 3 | 4 | import nimfa 5 | 6 | V = spr.csr_matrix([[1, 0, 2, 4], [0, 0, 6, 3], [4, 0, 5, 6]]) 7 | print('Target:\n%s' % V.todense()) 8 | 9 | nmf = nimfa.Nmf(V, max_iter=200, rank=2, update='euclidean', objective='fro') 10 | nmf_fit = nmf() 11 | 12 | W = nmf_fit.basis() 13 | print('Basis matrix:\n%s' % W.todense()) 14 | 15 | H = nmf_fit.coef() 16 | print('Mixture matrix:\n%s' % H.todense()) 17 | 18 | print('Euclidean distance: %5.3f' % nmf_fit.distance(metric='euclidean')) 19 | 20 | sm = nmf_fit.summary() 21 | print('Sparseness Basis: %5.3f Mixture: %5.3f' % (sm['sparseness'][0], sm['sparseness'][1])) 22 | print('Iterations: %d' % sm['n_iter']) 23 | print('Target estimate:\n%s' % np.dot(W.todense(), H.todense())) 24 | -------------------------------------------------------------------------------- /nimfa/utils/utils.py: -------------------------------------------------------------------------------- 1 | 2 | """ 3 | ######################### 4 | Utils (``utils.utils``) 5 | ######################### 6 | """ 7 | 8 | class MFError(Exception): 9 | 10 | """ 11 | Generic Python exception derived object raised by nimfa library. 12 | 13 | This is general purpose exception class, derived from Python common base 14 | class for all non-exit exceptions. It is programmatically raised in nimfa 15 | library functions when: 16 | 17 | #. linear algebra related condition prevents further correct execution 18 | of a function; 19 | #. user input parameters are ambiguous or not in correct format. 20 | """ 21 | 22 | def __init__(self, msg): 23 | self.msg = msg 24 | 25 | def __str__(self): 26 | return repr(self.msg) 27 | -------------------------------------------------------------------------------- /docs/README.rst: -------------------------------------------------------------------------------- 1 | Building 2 | ======== 3 | 4 | For building the documentation use Sphinx 1.0 or newer. Sphinx is available at `Sphinx home page`_ and 5 | nimfa library documentation sources are available at `Github repository`_. Before building documentation, 6 | please install nimfa library. 7 | 8 | Documentation can be built by issuing:: 9 | 10 | make html 11 | 12 | Resulting documentation is saved to `html` directory. Without make 13 | utility, execute:: 14 | 15 | cd docs/source 16 | 17 | sphinx-build -b html 18 | 19 | from the nimfa root directory. 20 | 21 | .. note:: The nimfa library documentation is contained in ``docs`` source directory and scripts are in ``nimfa`` directory. 22 | 23 | .. _Sphinx home page: http://sphinx.pocoo.org 24 | .. _Github repository: http://github.com/marinkaz/mf 25 | -------------------------------------------------------------------------------- /docs/content-quality-performance.rst: -------------------------------------------------------------------------------- 1 | 2 | * Distance 3 | 4 | * Residuals 5 | 6 | * Connectivity matrix 7 | 8 | * Consensus matrix 9 | 10 | * Entropy of the fitted NMF model [Park2007]_ 11 | 12 | * Dominant basis components computation 13 | 14 | * Explained variance 15 | 16 | * Feature score computation representing its specificity to basis vectors [Park2007]_ 17 | 18 | * Computation of most basis specific features for basis vectors [Park2007]_ 19 | 20 | * Purity [Park2007]_ 21 | 22 | * Residual sum of squares (rank estimation) [Hutchins2008]_, [Frigyesi2008]_ 23 | 24 | * Sparseness [Hoyer2004]_ 25 | 26 | * Cophenetic correlation coefficient of consensus matrix (rank estimation) [Brunet2004]_ 27 | 28 | * Dispersion [Park2007]_ 29 | 30 | * Factorization rank estimation 31 | 32 | * Selected matrix factorization method specific 33 | -------------------------------------------------------------------------------- /JMLR.txt: -------------------------------------------------------------------------------- 1 | JMLR Warranty 2 | ------------- 3 | 4 | THIS SOURCE CODE IS SUPPLIED "AS IS" WITHOUT WARRANTY OF ANY KIND, AND ITS AUTHOR AND THE JOURNAL OF MACHINE LEARNING RESEARCH (JMLR) 5 | AND JMLR'S PUBLISHERS AND DISTRIBUTORS, DISCLAIM ANY AND ALL WARRANTIES, INCLUDING BUT NOT LIMITED TO ANY IMPLIED WARRANTIES OF 6 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, AND ANY WARRANTIES OR NON INFRINGEMENT. THE USER ASSUMES ALL LIABILITY 7 | AND RESPONSIBILITY FOR USE OF THIS SOURCE CODE, AND NEITHER THE AUTHOR NOR JMLR, NOR JMLR'S PUBLISHERS AND DISTRIBUTORS, WILL BE 8 | LIABLE FOR DAMAGES OF ANY KIND RESULTING FROM ITS USE. 9 | 10 | Without limiting the generality of the foregoing, neither the author, nor JMLR, nor JMLR's publishers and distributors, warrant that 11 | the Source Code will be error-free, will operate without interruption, or will meet the needs of the user. 12 | -------------------------------------------------------------------------------- /nimfa/methods/factorization/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | """ 3 | This package contains implementations of matrix factorization algorithms. 4 | """ 5 | 6 | from .bd import * 7 | from .icm import * 8 | from .lfnmf import * 9 | from .lsnmf import * 10 | from .nmf import * 11 | from .nsnmf import * 12 | from .pmf import * 13 | from .psmf import * 14 | from .snmf import * 15 | from .bmf import * 16 | from .snmnmf import * 17 | from .pmfcc import * 18 | from .sepnmf import * 19 | 20 | methods = {"bd": Bd, 21 | "icm": Icm, 22 | "lfnmf": Lfnmf, 23 | "lsnmf": Lsnmf, 24 | "nmf": Nmf, 25 | "nsnmf": Nsnmf, 26 | "pmf": Pmf, 27 | "psmf": Psmf, 28 | "snmf": Snmf, 29 | "bmf": Bmf, 30 | "snmnmf": Snmnmf, 31 | "pmfcc": Pmfcc, 32 | "sepnmf": SepNmf, 33 | "none": None} 34 | -------------------------------------------------------------------------------- /nimfa/datasets/S_cerevisiae_FC/README.md: -------------------------------------------------------------------------------- 1 | # S. Cerevisiae MIPS's molecular functions 2 | 3 | Dataset is at: http://dtai.cs.kuleuven.be/clus/hmc-ens. 4 | 5 | Directory structure should look like: 6 | 7 | datasets/ 8 | S_cerevisiae_FC/ 9 | hom_yeast_FUN/ 10 | hom_yeast_FUN.test.arff 11 | hom_yeast_FUN.train.arff 12 | hom_yeast_FUN.valid.arff 13 | pheno_yeast_FUN/ 14 | pheno_yeast_FUN.test.arff 15 | pheno_yeast_FUN.valid.arff 16 | pheno_yeast_FUN.train.arff 17 | seq_yeast_FUN/ 18 | seq_yeast_FUN.train.arff 19 | seq_yeast_FUN.test.arff 20 | seq_yeast_FUN.valid.arff 21 | struc_yeast_FUN/ 22 | struc_yeast_FUN.train.arff 23 | struc_yeast_FUN.test.arff 24 | struc_yeast_FUn.valid.arff 25 | [...] 26 | [...] 27 | -------------------------------------------------------------------------------- /docs/code/usage4.py: -------------------------------------------------------------------------------- 1 | import nimfa 2 | 3 | import numpy as np 4 | 5 | V = np.array([[1, 2, 3], [4, 5, 6], [6, 7, 8]]) 6 | print('Target:\n%s' % V) 7 | 8 | # Initialization callback function 9 | def init_info(model): 10 | print('Initialized basis matrix:\n%s' % model.basis()) 11 | print('Initialized mixture matrix:\n%s' % model.coef()) 12 | 13 | # Callback is called after initialization and prior to factorization in each run 14 | icm = nimfa.Icm(V, seed='random_c', max_iter=10, rank=3, callback_init=init_info) 15 | icm_fit = icm() 16 | 17 | W = icm_fit.basis() 18 | print('Basis matrix:\n%s' % W) 19 | print(W) 20 | 21 | H = icm_fit.coef() 22 | print('Mixture matrix:\n%s' % H) 23 | 24 | sm = icm_fit.summary() 25 | print('Rss: %5.3f' % sm['rss']) 26 | print('Evar: %5.3f' % sm['evar']) 27 | print('Iterations: %d' % sm['n_iter']) 28 | print('KL divergence: %5.3f' % sm['kl']) 29 | print('Euclidean distance: %5.3f' % sm['euclidean']) 30 | -------------------------------------------------------------------------------- /docs/nimfa.methods.factorization.rst: -------------------------------------------------------------------------------- 1 | ######################################### 2 | Factorization (``methods.factorization``) 3 | ######################################### 4 | 5 | .. automodule:: nimfa.methods.factorization 6 | :members: 7 | :undoc-members: 8 | :inherited-members: 9 | :show-inheritance: 10 | 11 | 12 | .. toctree:: 13 | :maxdepth: 2 14 | 15 | nimfa.methods.factorization.bd 16 | 17 | nimfa.methods.factorization.bmf 18 | 19 | nimfa.methods.factorization.icm 20 | 21 | nimfa.methods.factorization.lfnmf 22 | 23 | nimfa.methods.factorization.lsnmf 24 | 25 | nimfa.methods.factorization.nmf 26 | 27 | nimfa.methods.factorization.nsnmf 28 | 29 | nimfa.methods.factorization.pmf 30 | 31 | nimfa.methods.factorization.psmf 32 | 33 | nimfa.methods.factorization.snmf 34 | 35 | nimfa.methods.factorization.snmnmf 36 | 37 | nimfa.methods.factorization.pmfcc 38 | 39 | nimfa.methods.factorization.sepnmf 40 | -------------------------------------------------------------------------------- /nimfa/models/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | """ 3 | This package contains factorization models used in the library nimfa. Specifically, it contains the following: 4 | 5 | #. Generic factorization model for handling common computations and assessing quality and performance 6 | measures in NMF. 7 | #. Generic factorization model for handling standard MF. 8 | #. Implementation of the standard model to manage factorizations that follow standard NMF model. 9 | #. Implementation of the alternative nonsmooth model to manage factorizations that follow nonstandard NMF model 10 | (e.g. nsnmf). 11 | #. Implementation of the alternative multiple model to manage factorizations that follow NMF nonstandard model 12 | (e.g. snmnmf). 13 | #. Tracker of MF fitted model across multiple runs of the factorizations and tracker of 14 | the residuals error across iterations of single/multiple runs. 15 | #. Implementation for storing MF fitted model and MF results. 16 | """ 17 | 18 | from . import nmf 19 | from . import nmf_std 20 | from . import nmf_ns 21 | from . import nmf_mm 22 | from . import smf 23 | from . import mf_track 24 | from . import mf_fit 25 | -------------------------------------------------------------------------------- /nimfa/examples/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | """ 3 | This package contains nimfa library examples of usage. It demonstrates the following: 4 | 5 | #. Single run of the specified factorization algorithm. 6 | #. Multiple runs of the specified factorization algorithm. 7 | #. Tracking fitted results across multiple runs and tracking residuals error across single / multiple runs. 8 | #. Quality and performance measures of executed factorizations. 9 | #. Running factorization algorithms with algorithm specific settings and initializations. 10 | 11 | Applications of factorization methods on both synthetic and real world data sets are provided. 12 | 13 | Example using synthetic data set is intended as demonstration of the nimfa library since all currently implemented 14 | factorization algorithms with different initialization methods and specific settings are ran. Others include 15 | applications on real world data sets in: 16 | 17 | * bioinformatics, 18 | * functional genomics, 19 | * text analysis, 20 | * image processing, 21 | * recommendation systems. 22 | """ 23 | 24 | from . import synthetic 25 | from . import all_aml 26 | from . import medulloblastoma 27 | from . import cbcl_images 28 | from . import documents 29 | from . import orl_images 30 | from . import recommendations 31 | from . import gene_func_prediction 32 | -------------------------------------------------------------------------------- /docs/content-factorization.rst: -------------------------------------------------------------------------------- 1 | 2 | * **BD** - Bayesian nonnegative matrix factorization Gibbs sampler [Schmidt2009]_ 3 | 4 | * **BMF** - Binary matrix factorization [Zhang2007]_ 5 | 6 | * **ICM** - Iterated conditional modes nonnegative matrix factorization [Schmidt2009]_ 7 | 8 | * **LFNMF** - Fisher nonnegative matrix factorization for learning local features [Wang2004]_, [Li2001]_ 9 | 10 | * **LSNMF** - Alternating nonnegative least squares matrix factorization using projected gradient method for subproblems [Lin2007]_ 11 | 12 | * **NMF** - Standard nonnegative matrix factorization with Euclidean / Kullback-Leibler update equations and Frobenius / divergence / connectivity cost functions [Lee2001]_, [Brunet2004]_ 13 | 14 | * **NSNMF** - Nonsmooth nonnegative matrix factorization [Montano2006]_ 15 | 16 | * **PMF** - Probabilistic nonnegative matrix factorization [Laurberg2008]_, [Hansen2008]_ 17 | 18 | * **PSMF** - Probabilistic sparse matrix factorization [Dueck2005]_, [Dueck2004]_, [Srebro2001]_, [Li2007]_ 19 | 20 | * **SNMF** - Sparse nonnegative matrix factorization based on alternating nonnegativity constrained least squares [Park2007]_ 21 | 22 | * **SNMNMF** - Sparse network-regularized multiple nonnegative matrix factorization [Zhang2011]_ 23 | 24 | * **PMFCC** - Penalized matrix factorization for constrained clustering [FWang2008]_ 25 | 26 | * **SepNMF** - Separable nonnegative matrix factorization [Gillis2014]_, [Kumar2013]_, [Tepper2015]_, [Kapralov2016]_ 27 | -------------------------------------------------------------------------------- /COPYING.txt: -------------------------------------------------------------------------------- 1 | New BSD License 2 | 3 | Copyright (c) 2016 The Nimfa developers. 4 | All rights reserved. 5 | 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | a. Redistributions of source code must retain the above copyright notice, 11 | this list of conditions and the following disclaimer. 12 | b. Redistributions in binary form must reproduce the above copyright 13 | notice, this list of conditions and the following disclaimer in the 14 | documentation and/or other materials provided with the distribution. 15 | c. Neither the name of the Nimfa Developers nor the names of 16 | its contributors may be used to endorse or promote products 17 | derived from this software without specific prior written 18 | permission. 19 | 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24 | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR 25 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 31 | DAMAGE. 32 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | # vim ft=yaml 2 | # travis-ci.org definition for Nimfa tests 3 | language: python 4 | 5 | sudo: false 6 | 7 | addons: 8 | apt: 9 | packages: 10 | - libatlas-dev 11 | - libatlas-base-dev 12 | - liblapack-dev 13 | 14 | python: 15 | - "2.7" 16 | # - "3.4" 17 | 18 | before_install: 19 | - wget http://repo.continuum.io/miniconda/Miniconda-latest-Linux-x86_64.sh -O miniconda.sh 20 | - bash miniconda.sh -b -p $HOME/miniconda 21 | - export PATH="$HOME/miniconda/bin:$PATH" 22 | - conda update --yes conda 23 | - sudo apt-get update 24 | 25 | install: 26 | - conda install --yes python=$TRAVIS_PYTHON_VERSION pip numpy scipy pytest matplotlib Pillow 27 | - pip install pep8 python-coveralls pytest-cov 28 | - pip install -e . 29 | 30 | services: 31 | - xvfb 32 | 33 | before_script: 34 | - wget http://files.grouplens.org/datasets/movielens/ml-100k.zip -P nimfa/datasets/MovieLens/ 35 | - unzip -j nimfa/datasets/MovieLens/ml-100k.zip -d nimfa/datasets/MovieLens/ 36 | - wget http://www.ai.mit.edu/courses/6.899/lectures/faces.tar.gz -P nimfa/datasets/CBCL_faces/ 37 | - tar zxvf nimfa/datasets/CBCL_faces/faces.tar.gz -C nimfa/datasets/CBCL_faces/ 38 | - tar zxvf nimfa/datasets/CBCL_faces/face.train.tar.gz -C nimfa/datasets/CBCL_faces/ 39 | - mv nimfa/datasets/CBCL_faces/train/face/ nimfa/datasets/CBCL_faces/ 40 | 41 | script: 42 | - py.test --cov=nimfa 43 | 44 | after_success: 45 | - coveralls 46 | 47 | # TODO Later if you decide to upload tagged releases to pypi automagically 48 | # see https://docs.travis-ci.com/user/deployment/pypi/ for details 49 | #deploy: 50 | # provider: pypi 51 | # distributions: sdist 52 | # user: YOURUSERNAME 53 | # password: 54 | # secure: YOUR_ENCRYPTED_WITH_TRAVISTOOLS_PASSWORD_FOR_PYPI 55 | # on: 56 | # tags: true 57 | # branch: master 58 | # repo: YOURGITHUBLOGIN/nimfa 59 | # condition: "$TRAVIS_PYTHON_VERSION == 2.7 && $TRAVIS_TAG =~ ^v[0-9]*[.][.0-9]*" 60 | -------------------------------------------------------------------------------- /nimfa/datasets/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | """ 3 | This module lists data sets needed to run Nimfa's use cases. 4 | 5 | .. note:: Relevant code for data processing is provided within each example. To run an example download the relevant data and put it in ``nimfa/datasets`` directory. 6 | 7 | Data sets: 8 | 9 | #. Leukemia data set; `leukemia gene expressions`_, `leukemia samples`_, `leukemia genes`_. 10 | #. Medulloblastoma data set; `medulloblastoma gene expressions`_, `medulloblastoma samples`_, `medulloblastoma genes`_. 11 | #. `CBCL face images`_ database. 12 | #. `ORL face images`_ database. 13 | #. `MovieLens 100k`_ data set. 14 | #. `Medlars`_ data set. 15 | #. `S. cerevisiae`_ MIPS Functional Catalogue data set. 16 | 17 | .. _leukemia gene expressions: http://portals.broadinstitute.org/cgi-bin/cancer/publications/pub_paper.cgi?mode=view&paper_id=89 18 | .. _leukemia samples: http://portals.broadinstitute.org/cgi-bin/cancer/publications/pub_paper.cgi?mode=view&paper_id=89 19 | .. _leukemia genes: http://portals.broadinstitute.org/cgi-bin/cancer/publications/pub_paper.cgi?mode=view&paper_id=89 20 | .. _medulloblastoma gene expressions: http://portals.broadinstitute.org/cgi-bin/cancer/publications/pub_paper.cgi?mode=view&paper_id=89 21 | .. _medulloblastoma samples: http://portals.broadinstitute.org/cgi-bin/cancer/publications/pub_paper.cgi?mode=view&paper_id=89 22 | .. _medulloblastoma genes: http://portals.broadinstitute.org/cgi-bin/cancer/publications/pub_paper.cgi?mode=view&paper_id=89 23 | .. _CBCL face images: http://cbcl.mit.edu/cbcl/software-datasets/FaceData2.html 24 | .. _ORL face images: http://www.cl.cam.ac.uk/research/dtg/attarchive/facedatabase.html 25 | .. _MovieLens 100k: http://www.grouplens.org/node/12 26 | .. _Medlars: http://web.eecs.utk.edu/research/lsi/ 27 | .. _S. cerevisiae: http://dtai.cs.kuleuven.be/clus/hmc-ens/ 28 | 29 | """ 30 | -------------------------------------------------------------------------------- /nimfa/tests/test_examples.py: -------------------------------------------------------------------------------- 1 | """Test examples provided by nimfa""" 2 | 3 | import numpy as np 4 | 5 | from nimfa.examples import synthetic 6 | from nimfa.examples import orl_images 7 | from nimfa.examples import all_aml 8 | from nimfa.examples import medulloblastoma 9 | from nimfa.examples import recommendations 10 | from nimfa.examples import cbcl_images 11 | 12 | import pytest 13 | 14 | synthetic_runs = [getattr(synthetic, f) for f in dir(synthetic) if f.startswith('run_')] 15 | 16 | @pytest.mark.medium 17 | @pytest.mark.parametrize('synth_run', synthetic_runs) 18 | def test_synthetic(synth_run, monkeypatch): 19 | ran_funcs = [] 20 | def check_synthetic_result(fit, idx=None): 21 | """Basic checks that synthetic results are 'Ok'""" 22 | ran_funcs.append(1) 23 | # typically tests pass with > .75 but because of still present inherent 24 | # randomizations results vary. So to be on a safe side for now set a very 25 | # liberal threshold 26 | # TODO: make runs deterministic 27 | assert fit.summary(idx)['evar'] > 0.62 28 | 29 | # Setup data exactly the same way as in synthetic example 30 | prng = np.random.RandomState(42) 31 | # construct target matrices 32 | V = prng.rand(20, 30) 33 | V1 = prng.rand(20, 25) 34 | 35 | monkeypatch.setattr(synthetic, 'print_info', check_synthetic_result) 36 | if synth_run is getattr(synthetic, 'run_snmnmf'): 37 | synth_run(V, V1) 38 | else: 39 | synth_run(V) 40 | # for paranoid monkeypatching people, to make sure that the patch worked 41 | assert ran_funcs != [], "we must have ran our check" 42 | 43 | #Check if the example datasets run 44 | @pytest.mark.slow 45 | def test_orl(): 46 | orl_images.run() 47 | 48 | @pytest.mark.slow 49 | def test_aml(): 50 | all_aml.run() 51 | 52 | @pytest.mark.slow 53 | def test_medulloblastoma(): 54 | medulloblastoma.run() 55 | 56 | #@pytest.mark.slow 57 | #def test_recommendations(): 58 | # recommendations.run() 59 | 60 | @pytest.mark.slow 61 | def test_cbcl(): 62 | cbcl_images.run() 63 | -------------------------------------------------------------------------------- /nimfa/methods/seeding/fixed.py: -------------------------------------------------------------------------------- 1 | 2 | """ 3 | ################################# 4 | Fixed (``methods.seeding.fixed``) 5 | ################################# 6 | 7 | Fixed factorization. This is the option to completely specify the initial 8 | factorization by passing values for matrix factors. 9 | """ 10 | 11 | from nimfa.utils.linalg import * 12 | 13 | __all__ = ['Fixed'] 14 | 15 | 16 | class Fixed(object): 17 | 18 | def __init__(self): 19 | self.name = "fixed" 20 | 21 | def _set_fixed(self, **factors): 22 | """Set initial factorization.""" 23 | for k in list(factors.keys()): 24 | if factors[k] is not None: 25 | factors[k] = np.matrix(factors[k]) if not sp.isspmatrix( 26 | factors[k]) else factors[k].copy() 27 | else: 28 | factors.pop(k) 29 | self.__dict__.update(factors) 30 | 31 | def initialize(self, V, rank, options): 32 | """ 33 | Return fixed initialized matrix factors. 34 | 35 | :param V: Target matrix, the matrix for MF method to estimate. 36 | :type V: One of the :class:`scipy.sparse` sparse matrices types or 37 | :class:`numpy.matrix` 38 | :param rank: Factorization rank. 39 | :type rank: `int` 40 | :param options: Specify the algorithm and model specific options (e.g. initialization of 41 | extra matrix factor, seeding parameters). 42 | 43 | Option ``idx`` represents the index of the coefficient matrix. The index is by default 0 44 | and corresponds to a factorization model with one mixture matrix (e.g. standard, nonsmooth 45 | model). 46 | :type options: `dict` 47 | """ 48 | self.idx = options.get('idx', 0) 49 | if self.idx == 0: 50 | return self.W, self.H 51 | else: 52 | return self.W, getattr(self, 'H' + str(self.idx)) 53 | 54 | def __repr__(self): 55 | return "fixed.Fixed()" 56 | 57 | def __str__(self): 58 | return self.name 59 | -------------------------------------------------------------------------------- /nimfa/methods/seeding/random_vcol.py: -------------------------------------------------------------------------------- 1 | 2 | """ 3 | ############################################# 4 | Random_vcol (``methods.seeding.random_vcol``) 5 | ############################################# 6 | 7 | Random Vcol [Albright2006]_ is inexpensive initialization method for nonnegative 8 | matrix factorization. Random Vcol forms an initialization of each column of the 9 | basis matrix (W) by averaging p random columns of target matrix (V). Similarly, 10 | Random Vcol forms an initialization of each row of the mixture matrix (H) by 11 | averaging p random rows of target matrix (V). It makes more sense to build the 12 | basis vectors from the given data than to form completely random basis vectors, 13 | as random initialization does. Sparse matrices are built from the original 14 | sparse data. 15 | 16 | Method's performance lies between random initialization and centroid 17 | initialization, which is built from the centroid decomposition. 18 | """ 19 | 20 | from nimfa.utils.linalg import * 21 | 22 | __all__ = ['Random_vcol'] 23 | 24 | 25 | class Random_vcol(object): 26 | 27 | def __init__(self): 28 | self.name = "random_vcol" 29 | 30 | def initialize(self, V, rank, options): 31 | """ 32 | Return initialized basis and mixture matrix. Initialized matrices are of 33 | the same type as passed target matrix. 34 | 35 | :param V: Target matrix, the matrix for MF method to estimate. 36 | :type V: One of the :class:`scipy.sparse` sparse matrices types or or 37 | :class:`numpy.matrix` 38 | :param rank: Factorization rank. 39 | :type rank: `int` 40 | :param options: Specify the algorithm and model specific options (e.g. initialization of 41 | extra matrix factor, seeding parameters). 42 | 43 | Option ``p_c`` represents the number of columns of target matrix used 44 | to average the column of basis matrix. Default value for ``p_c`` is 45 | 1/5 * (target.shape[1]). 46 | 47 | Option ``p_r`` represent the number of rows of target matrix used to 48 | average the row of basis matrix. Default value for ``p_r`` is 1/5 * (target.shape[0]). 49 | :type options: `dict` 50 | """ 51 | self.rank = rank 52 | self.p_c = options.get('p_c', int(ceil(1. / 5 * V.shape[1]))) 53 | self.p_r = options.get('p_r', int(ceil(1. / 5 * V.shape[0]))) 54 | self.prng = np.random.RandomState() 55 | if sp.isspmatrix(V): 56 | self.W = sp.lil_matrix((V.shape[0], self.rank)) 57 | self.H = sp.lil_matrix((self.rank, V.shape[1])) 58 | else: 59 | self.W = np.mat(np.zeros((V.shape[0], self.rank))) 60 | self.H = np.mat(np.zeros((self.rank, V.shape[1]))) 61 | for i in range(self.rank): 62 | self.W[:, i] = V[:, self.prng.randint( 63 | low=0, high=V.shape[1], size=self.p_c)].mean(axis=1) 64 | self.H[i, :] = V[ 65 | self.prng.randint(low=0, high=V.shape[0], size=self.p_r), :].mean(axis=0) 66 | # return sparse or dense initialization 67 | if sp.isspmatrix(V): 68 | return self.W.tocsr(), self.H.tocsr() 69 | else: 70 | return self.W, self.H 71 | 72 | def __repr__(self): 73 | return "random_vcol.Random_vcol()" 74 | 75 | def __str__(self): 76 | return self.name 77 | -------------------------------------------------------------------------------- /nimfa/models/mf_track.py: -------------------------------------------------------------------------------- 1 | 2 | """ 3 | ############################## 4 | Mf_track (``models.mf_track``) 5 | ############################## 6 | """ 7 | 8 | 9 | class Mf_track(): 10 | """ 11 | Base class for tracking MF fitted model across multiple runs of the factorizations or tracking 12 | the residuals error across iterations of single/multiple runs. 13 | 14 | The purpose of this class is to store matrix factors from multiple runs of the algorithm which can then be used 15 | for performing quality and performance measures. Because of additional space consumption for storing multiple 16 | matrix factors, tracking is used only if explicitly specified by user through runtime option. In summary, when 17 | tracking factors, the following is retained from each run: 18 | 19 | #. fitted factorization model depending on the factorization method; 20 | #. final value of objective function; 21 | #. performed number of iterations. 22 | 23 | Instead of tracking fitted factorization model, callback function can be set, which will be called after each 24 | factorization run. For more details see :mod:`mf_run`. 25 | 26 | The purpose of this class is to store residuals across iterations which can then be used for plotting the trajectory 27 | of the residuals track or estimating proper number of iterations. 28 | """ 29 | def __init__(self): 30 | """ 31 | Construct model for tracking fitted factorization model across multiple runs or tracking the residuals error across iterations. 32 | """ 33 | self._factors = {} 34 | self._residuals = {} 35 | 36 | def track_error(self, run, residuals): 37 | """ 38 | Add residuals error after one iteration. 39 | 40 | :param run: Specify the run to which ``residuals`` belongs. Error tracking can be 41 | also used if multiple runs are enabled. 42 | :type run: `int` 43 | 44 | :param residuals: Residuals between the target matrix and its MF estimate. 45 | :type residuals: `float` 46 | """ 47 | self._residuals.setdefault(run, []) 48 | self._residuals[run].append(residuals) 49 | 50 | def track_factor(self, run, **track_model): 51 | """ 52 | Add matrix factorization factors (and method specific model data) after one factorization run. 53 | 54 | :param run: Specify the run to which ``track_model`` belongs. 55 | :type run: 'int' 56 | :param track_model: Matrix factorization factors. 57 | :type track_model: algorithm specific 58 | """ 59 | self._factors[run] = t_model(track_model) 60 | 61 | def get_factor(self, run=0): 62 | """ 63 | Return matrix factorization factors from run :param:`run`. 64 | 65 | :param run: Saved factorization factors (and method specific model data) of 66 | ``run``'th run are returned. 67 | :type run: `int` 68 | """ 69 | return self._factors[run] 70 | 71 | def get_error(self, run=0): 72 | """ 73 | Return residuals track from one run of the factorization. 74 | 75 | :param run: Specify the run of which error track is desired. By default ``run`` is 1. 76 | :type run: `int` 77 | """ 78 | return self._residuals[run] 79 | 80 | 81 | class t_model: 82 | 83 | """ 84 | Tracking factors model. 85 | """ 86 | 87 | def __init__(self, td): 88 | self.__dict__.update(td) 89 | -------------------------------------------------------------------------------- /nimfa/datasets/ALL_AML/ALL_AML_samples.txt: -------------------------------------------------------------------------------- 1 | ALL_19769_B-cell 2 | ALL_23953_B-cell 3 | ALL_28373_B-cell 4 | ALL_9335_B-cell 5 | ALL_9692_B-cell 6 | ALL_14749_B-cell 7 | ALL_17281_B-cell 8 | ALL_19183_B-cell 9 | ALL_20414_B-cell 10 | ALL_21302_B-cell 11 | ALL_549_B-cell 12 | ALL_17929_B-cell 13 | ALL_20185_B-cell 14 | ALL_11103_B-cell 15 | ALL_18239_B-cell 16 | ALL_5982_B-cell 17 | ALL_7092_B-cell 18 | ALL_R11_B-cell 19 | ALL_R23_B-cell 20 | ALL_16415_T-cell 21 | ALL_19881_T-cell 22 | ALL_9186_T-cell 23 | ALL_9723_T-cell 24 | ALL_17269_T-cell 25 | ALL_14402_T-cell 26 | ALL_17638_T-cell 27 | ALL_22474_T-cell 28 | AML_12 29 | AML_13 30 | AML_14 31 | AML_16 32 | AML_20 33 | AML_1 34 | AML_2 35 | AML_3 36 | AML_5 37 | AML_6 38 | AML_7 39 | -------------------------------------------------------------------------------- /nimfa/methods/seeding/random.py: -------------------------------------------------------------------------------- 1 | 2 | """ 3 | ################################### 4 | Random (``methods.seeding.random``) 5 | ################################### 6 | 7 | Random is the simplest MF initialization method. 8 | 9 | The entries of factors are drawn from a uniform distribution over 10 | [0, max(target matrix)). Generated matrix factors are sparse matrices with the 11 | default density parameter of 0.01. 12 | """ 13 | 14 | from nimfa.utils.linalg import * 15 | 16 | __all__ = ['Random'] 17 | 18 | class Random(object): 19 | 20 | def __init__(self): 21 | self.name = "random" 22 | 23 | def initialize(self, V, rank, options): 24 | """ 25 | Return initialized basis and mixture matrix (and additional factors if 26 | specified in :param:`Sn`, n = 1, 2, ..., k). 27 | Initialized matrices are of the same type as passed target matrix. 28 | 29 | :param V: Target matrix, the matrix for MF method to estimate. 30 | :type V: One of the :class:`scipy.sparse` sparse matrices types or 31 | :class:`numpy.matrix` 32 | :param rank: Factorization rank. 33 | :type rank: `int` 34 | :param options: Specify the algorithm and model specific options (e.g. initialization of 35 | extra matrix factor, seeding parameters). 36 | 37 | Option ``Sn``, n = 1, 2, 3, ..., k specifies additional k matrix factors which 38 | need to be initialized. The value of each option Sn is a tuple denoting matrix 39 | shape. Matrix factors are returned in the same order as their descriptions in input. 40 | 41 | Option ``density`` represents density of generated matrices. Density of 1 means a 42 | full matrix, density of 0 means a matrix with no nonzero items. Default value is 0.7. 43 | Density parameter is applied only if passed target ``V`` is an instance of one :class:`scipy.sparse` sparse types. 44 | :type options: `dict` 45 | """ 46 | self.rank = rank 47 | self.density = options.get('density', 0.7) 48 | if sp.isspmatrix(V): 49 | self.max = V.data.max() 50 | self._format = V.getformat() 51 | gen = self.gen_sparse 52 | else: 53 | self.max = V.max() 54 | self.prng = np.random.RandomState() 55 | gen = self.gen_dense 56 | self.W = gen(V.shape[0], self.rank) 57 | self.H = gen(self.rank, V.shape[1]) 58 | mfs = [self.W, self.H] 59 | for sn in options: 60 | if sn[0] is 'S' and sn[1:].isdigit(): 61 | mfs.append(gen(options[sn][0], options[sn][1])) 62 | return mfs 63 | 64 | def gen_sparse(self, dim1, dim2): 65 | """ 66 | Return randomly initialized sparse matrix of specified dimensions. 67 | 68 | :param dim1: Dimension along first axis. 69 | :type dim1: `int` 70 | :param dim2: Dimension along second axis. 71 | :type dim2: `int` 72 | """ 73 | rnd = sp.rand(dim1, dim2, density=self.density, format=self._format) 74 | return abs(self.max * rnd) 75 | 76 | def gen_dense(self, dim1, dim2): 77 | """ 78 | Return randomly initialized :class:`numpy.matrix` matrix of specified 79 | dimensions. 80 | 81 | :param dim1: Dimension along first axis. 82 | :type dim1: `int` 83 | :param dim2: Dimension along second axis. 84 | :type dim2: `int` 85 | """ 86 | return np.mat(self.prng.uniform(0, self.max, (dim1, dim2))) 87 | 88 | def __repr__(self): 89 | return "random.Random()" 90 | 91 | def __str__(self): 92 | return self.name 93 | -------------------------------------------------------------------------------- /nimfa/models/nmf_std.py: -------------------------------------------------------------------------------- 1 | 2 | """ 3 | ############################ 4 | Nmf_std (``models.nmf_std``) 5 | ############################ 6 | """ 7 | 8 | from .nmf import * 9 | 10 | 11 | class Nmf_std(Nmf): 12 | """ 13 | Implementation of the standard model to manage factorizations that follow standard NMF model. 14 | 15 | It is the underlying model of matrix factorization and provides a general structure 16 | of standard NMF model. 17 | 18 | .. attribute:: W 19 | 20 | Basis matrix -- the first matrix factor in standard factorization 21 | 22 | .. attribute:: H 23 | 24 | Mixture matrix -- the second matrix factor in standard factorization 25 | """ 26 | def __init__(self, params): 27 | """ 28 | Construct factorization model that manages standard NMF models. 29 | 30 | :param params: MF runtime and algorithm parameters and options. For detailed 31 | explanation of the general model parameters see :mod:`mf_run`. For 32 | algorithm specific model options see documentation of chosen factorization method. 33 | :type params: `dict` 34 | """ 35 | self.model_name = "std" 36 | self.V1 = None 37 | self.H1 = None 38 | Nmf.__init__(self, params) 39 | if sp.isspmatrix(self.V) and (self.V.data < 0).any() or not sp.isspmatrix(self.V) and (self.V < 0).any(): 40 | raise utils.MFError("The input matrix contains negative elements.") 41 | 42 | def basis(self): 43 | """Return the matrix of basis vectors.""" 44 | return self.W 45 | 46 | def target(self, idx=None): 47 | """ 48 | Return the target matrix to estimate. 49 | 50 | :param idx: Used in the multiple NMF model. In standard NMF ``idx`` is always None. 51 | :type idx: None 52 | """ 53 | return self.V 54 | 55 | def coef(self, idx=None): 56 | """ 57 | Return the matrix of mixture coefficients. 58 | 59 | :param idx: Used in the multiple NMF model. In standard NMF ``idx`` is always None. 60 | :type idx: None 61 | """ 62 | return self.H 63 | 64 | def fitted(self, idx=None): 65 | """ 66 | Compute the estimated target matrix according to the NMF algorithm model. 67 | 68 | :param idx: Used in the multiple NMF model. In standard NMF ``idx`` is always None. 69 | :type idx: None 70 | """ 71 | return dot(self.W, self.H) 72 | 73 | def distance(self, metric='euclidean', idx=None): 74 | """ 75 | Return the loss function value. 76 | 77 | :param distance: Specify distance metric to be used. Possible are Euclidean and 78 | Kullback-Leibler (KL) divergence. Strictly, KL is not a metric. 79 | :type distance: `str` with values 'euclidean' or 'kl' 80 | 81 | :param idx: Used in the multiple NMF model. In standard NMF ``idx`` is always None. 82 | :type idx: None 83 | """ 84 | if metric.lower() == 'euclidean': 85 | R = self.V - dot(self.W, self.H) 86 | return (power(R, 2)).sum() 87 | elif metric.lower() == 'kl': 88 | Va = dot(self.W, self.H) 89 | return (multiply(self.V, sop(elop(self.V, Va, div), op=np.log)) - self.V + Va).sum() 90 | else: 91 | raise utils.MFError("Unknown distance metric.") 92 | 93 | def residuals(self, idx=None): 94 | """ 95 | Return residuals matrix between the target matrix and its NMF estimate. 96 | 97 | :param idx: Used in the multiple NMF model. In standard NMF ``idx`` is always None. 98 | :type idx: None 99 | """ 100 | return self.V - dot(self.W, self.H) 101 | -------------------------------------------------------------------------------- /nimfa/methods/seeding/random_c.py: -------------------------------------------------------------------------------- 1 | 2 | """ 3 | ####################################### 4 | Random_c (``methods.seeding.random_c``) 5 | ####################################### 6 | 7 | Random C [Albright2006]_ is inexpensive initialization method for nonnegative 8 | matrix factorization. It is inspired by the C matrix in of the CUR decomposition. 9 | The Random C initialization is similar to the Random Vcol method (see 10 | mod:`methods.seeding.random_vcol`) except it chooses p columns at random from 11 | the longest (in 2-norm) columns in target matrix (V), which generally means the 12 | most dense columns of target matrix. 13 | 14 | Initialization of each column of basis matrix is done by averaging p random 15 | columns of l longest columns of target matrix. Initialization 16 | of mixture matrix is similar except for row operations. 17 | """ 18 | 19 | from nimfa.utils.linalg import * 20 | 21 | __all__ = ['Random_c'] 22 | 23 | 24 | class Random_c(object): 25 | 26 | def __init__(self): 27 | self.name = "random_c" 28 | 29 | def initialize(self, V, rank, options): 30 | """ 31 | Return initialized basis and mixture matrix. Initialized matrices are 32 | of the same type as passed target matrix. 33 | 34 | :param V: Target matrix, the matrix for MF method to estimate. 35 | :type V: One of the :class:`scipy.sparse` sparse matrices types or or 36 | :class:`numpy.matrix` 37 | :param rank: Factorization rank. 38 | :type rank: `int` 39 | :param options: Specify the algorithm and model specific options (e.g. initialization of 40 | extra matrix factor, seeding parameters). 41 | 42 | Option ``p_c`` represents the number of columns of target matrix 43 | used to average the column of basis matrix. Default 44 | value for ``p_c`` is 1/5 * (target.shape[1]). 45 | 46 | Option ``p_r`` represents the number of rows of target matrix used 47 | to average the row of basis matrix. Default value for 48 | ``p_r`` is 1/5 * (target.shape[0]). 49 | 50 | Option ``l_c`` represents the first l_c columns of target matrix sorted 51 | descending by length (2-norm). Default value for ``l_c`` is 1/2 * (target.shape[1]). 52 | 53 | Option ``l_r`` represent first l_r rows of target matrix sorted 54 | descending by length (2-norm). Default value for 55 | ``l_r`` is 1/2 * (target.shape[0]). 56 | :type options: `dict` 57 | """ 58 | self.rank = rank 59 | self.p_c = options.get('p_c', int(ceil(1. / 5 * V.shape[1]))) 60 | self.p_r = options.get('p_r', int(ceil(1. / 5 * V.shape[0]))) 61 | self.l_c = options.get('l_c', int(ceil(1. / 2 * V.shape[1]))) 62 | self.l_r = options.get('l_r', int(ceil(1. / 2 * V.shape[0]))) 63 | self.prng = np.random.RandomState() 64 | if sp.isspmatrix(V): 65 | self.W = sp.lil_matrix((V.shape[0], self.rank)) 66 | self.H = sp.lil_matrix((self.rank, V.shape[1])) 67 | top_c = sorted(enumerate([norm(V[:, i], 2) 68 | for i in range(V.shape[1])]), key=itemgetter(1), reverse=True)[:self.l_c] 69 | top_r = sorted( 70 | enumerate([norm(V[i, :], 2) for i in range(V.shape[0])]), key=itemgetter(1), reverse=True)[:self.l_r] 71 | else: 72 | self.W = np.mat(np.zeros((V.shape[0], self.rank))) 73 | self.H = np.mat(np.zeros((self.rank, V.shape[1]))) 74 | top_c = sorted(enumerate([norm(V[:, i], 2) 75 | for i in range(V.shape[1])]), key=itemgetter(1), reverse=True)[:self.l_c] 76 | top_r = sorted( 77 | enumerate([norm(V[i, :], 2) for i in range(V.shape[0])]), key=itemgetter(1), reverse=True)[:self.l_r] 78 | top_c = np.mat(list(zip(*top_c))[0]) 79 | top_r = np.mat(list(zip(*top_r))[0]) 80 | for i in range(self.rank): 81 | self.W[:, i] = V[ 82 | :, top_c[0, self.prng.randint(low=0, high=self.l_c, size=self.p_c)].tolist()[0]].mean(axis=1) 83 | self.H[i, :] = V[ 84 | top_r[0, self.prng.randint(low=0, high=self.l_r, size=self.p_r)].tolist()[0], :].mean(axis=0) 85 | # return sparse or dense initialization 86 | if sp.isspmatrix(V): 87 | return self.W.tocsr(), self.H.tocsr() 88 | else: 89 | return self.W, self.H 90 | 91 | def __repr__(self): 92 | return "random_c.Random_c()" 93 | 94 | def __str__(self): 95 | return self.name 96 | -------------------------------------------------------------------------------- /nimfa/models/nmf_ns.py: -------------------------------------------------------------------------------- 1 | 2 | """ 3 | ########################## 4 | Nmf_ns (``models.nmf_ns``) 5 | ########################## 6 | """ 7 | 8 | from .nmf import * 9 | 10 | 11 | class Nmf_ns(Nmf): 12 | """ 13 | Implementation of the alternative model to manage factorizations that follow 14 | nonstandard NMF model. This modification is required by the Nonsmooth NMF 15 | algorithm (NSNMF) [Montano2006]_. The Nonsmooth NMF algorithm is a modification 16 | of the standard divergence based NMF methods. By introducing a smoothing matrix 17 | it is aimed to achieve global sparseness. 18 | 19 | It is the underlying model of matrix factorization and provides structure of 20 | modified standard NMF model. 21 | 22 | .. attribute:: W 23 | 24 | Basis matrix -- the first matrix factor in the nonsmooth NMF model 25 | 26 | .. attribute:: H 27 | 28 | Mixture matrix -- the third matrix factor in the nonsmooth NMF model 29 | 30 | .. attribute:: S 31 | 32 | Smoothing matrix -- the middle matrix factor (V = WSH) in the nonsmooth NMF model 33 | 34 | The interpretation of the basis and mixture matrix is such as in the standard NMF model. 35 | The smoothing matrix is an extra square matrix whose entries depends on smoothing 36 | parameter theta which can be specified as algorithm specific model option. For detailed 37 | explanation of the NSNMF algorithm see :mod:`methods.factorization.nsnmf`. 38 | """ 39 | def __init__(self, params): 40 | """ 41 | Construct factorization model that manages nonsmooth NMF models. 42 | 43 | :param params: MF runtime and algorithm parameters and options. For detailed 44 | explanation of the general model parameters see :mod:`mf_run`. For 45 | algorithm specific model options see documentation of chosen 46 | factorization method. 47 | :type params: `dict` 48 | """ 49 | self.model_name = "ns" 50 | self.V1 = None 51 | self.H1 = None 52 | Nmf.__init__(self, params) 53 | if sp.isspmatrix(self.V) and (self.V.data < 0).any() or not sp.isspmatrix(self.V) and (self.V < 0).any(): 54 | raise utils.MFError("The input matrix contains negative elements.") 55 | 56 | def basis(self): 57 | """Return the matrix of basis vectors.""" 58 | return self.W 59 | 60 | def target(self, idx=None): 61 | """ 62 | Return the target matrix to estimate. 63 | 64 | :param idx: Used in the multiple NMF model. In nonsmooth NMF ``idx`` is always None. 65 | :type idx: None 66 | """ 67 | return self.V 68 | 69 | def coef(self, idx=None): 70 | """ 71 | Return the matrix of mixture coefficients. 72 | 73 | :param idx: Used in the multiple NMF model. In nonsmooth NMF ``idx`` is always None. 74 | :type idx: None 75 | """ 76 | return self.H 77 | 78 | def smoothing(self): 79 | """Return the smoothing matrix.""" 80 | return self.S 81 | 82 | def fitted(self, idx=None): 83 | """ 84 | Compute the estimated target matrix according to the nonsmooth NMF algorithm model. 85 | 86 | :param idx: Used in the multiple NMF model. In nonsmooth NMF ``idx`` is always None. 87 | :type idx: None 88 | """ 89 | return dot(dot(self.W, self.S), self.H) 90 | 91 | def distance(self, metric='euclidean', idx=None): 92 | """ 93 | Return the loss function value. 94 | 95 | :param distance: Specify distance metric to be used. Possible are Euclidean and 96 | Kullback-Leibler (KL) divergence. Strictly, KL is not a metric. 97 | :type distance: `str` with values 'euclidean' or 'kl' 98 | 99 | :param idx: Used in the multiple NMF model. In nonsmooth NMF ``idx`` is always None. 100 | :type idx: None 101 | """ 102 | if metric.lower() == 'euclidean': 103 | R = self.V - dot(dot(self.W, self.S), self.H) 104 | return power(R, 2).sum() 105 | elif metric.lower() == 'kl': 106 | Va = dot(dot(self.W, self.S), self.H) 107 | return (multiply(self.V, sop(elop(self.V, Va, div), op=np.log)) - self.V + Va).sum() 108 | else: 109 | raise utils.MFError("Unknown distance metric.") 110 | 111 | def residuals(self, idx=None): 112 | """ 113 | Return residuals matrix between the target matrix and its nonsmooth NMF estimate. 114 | 115 | :param idx: Used in the multiple NMF model. In nonsmooth NMF ``idx`` is always None. 116 | :type idx: None 117 | """ 118 | return self.V - dot(dot(self.W, self.S), self.H) 119 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | import os 2 | from glob import glob 3 | from setuptools import setup, find_packages 4 | import subprocess 5 | import imp 6 | 7 | 8 | DISTNAME = 'nimfa' 9 | MAINTAINER = 'Marinka Zitnik' 10 | MAINTAINER_EMAIL = 'marinka@cs.stanford.edu' 11 | DESCRIPTION = 'A Python module for nonnegative matrix factorization' 12 | LONG_DESCRIPTION = open('README.md').read() 13 | URL = 'http://nimfa.biolab.si' 14 | DOWNLOAD_URL = 'http://github.com/marinkaz/nimfa' 15 | KEYWORDS = ['matrix factorization', 'nonnegative matrix factorization', 16 | 'bioinformatics', 'data mining', 'machine learning'] 17 | LICENSE = 'BSD' 18 | VERSION = '1.4.0' 19 | ISRELEASED = True 20 | 21 | INSTALL_REQUIRES = ( 22 | 'numpy>=1.7.0', 23 | 'scipy>=0.12.0', 24 | ) 25 | 26 | 27 | def get_package_data(topdir, excluded=set()): 28 | retval = [] 29 | for dirname, subdirs, files in os.walk(os.path.join(DISTNAME, topdir)): 30 | for x in excluded: 31 | if x in subdirs: 32 | subdirs.remove(x) 33 | retval.append(os.path.join(dirname[len(DISTNAME)+1:], '*.*')) 34 | return retval 35 | 36 | 37 | def get_data_files(dest, source): 38 | retval = [] 39 | for dirname, subdirs, files in os.walk(source): 40 | retval.append( 41 | (os.path.join(dest, dirname[len(source)+1:]), glob(os.pathjoin(dirname, '*.*'))) 42 | ) 43 | return retval 44 | 45 | 46 | # Return the git revision as a string 47 | def git_version(): 48 | """Return the git revision as a string. 49 | 50 | Copied from numpy setup.py 51 | """ 52 | def _minimal_ext_cmd(cmd): 53 | # construct minimal environment 54 | env = {} 55 | for k in ['SYSTEMROOT', 'PATH']: 56 | v = os.environ.get(k) 57 | if v is not None: 58 | env[k] = v 59 | # LANGUAGE is used on win32 60 | env['LANGUAGE'] = 'C' 61 | env['LANG'] = 'C' 62 | env['LC_ALL'] = 'C' 63 | out = subprocess.Popen(cmd, stdout = subprocess.PIPE, env=env).communicate()[0] 64 | return out 65 | 66 | try: 67 | out = _minimal_ext_cmd(['git', 'rev-parse', 'HEAD']) 68 | GIT_REVISION = out.strip().decode('ascii') 69 | except OSError: 70 | GIT_REVISION = "Unknown" 71 | return GIT_REVISION 72 | 73 | 74 | def write_version_py(filename='nimfa/version.py'): 75 | # Copied from numpy setup.py 76 | cnt = """ 77 | # THIS FILE IS GENERATED FROM NIMFA SETUP.PY 78 | short_version = '%(version)s' 79 | version = '%(version)s' 80 | full_version = '%(full_version)s' 81 | git_revision = '%(git_revision)s' 82 | release = %(isrelease)s 83 | 84 | if not release: 85 | version = full_version 86 | short_version += ".dev" 87 | """ 88 | FULLVERSION = VERSION 89 | if os.path.exists('.git'): 90 | GIT_REVISION = git_version() 91 | elif os.path.exists('nimfa/version.py'): 92 | # must be a source distribution, use existing version file 93 | version = imp.load_source('nimfa.version', 'nimfa/version.py') 94 | GIT_REVISION = version.git_revision 95 | else: 96 | GIT_REVISION = 'Unknown' 97 | 98 | if not ISRELEASED: 99 | FULLVERSION += '.dev0+' + GIT_REVISION[:7] 100 | 101 | a = open(filename, 'w') 102 | try: 103 | a.write(cnt % {'version': VERSION, 104 | 'full_version': FULLVERSION, 105 | 'git_revision': GIT_REVISION, 106 | 'isrelease': str(ISRELEASED)}) 107 | finally: 108 | a.close() 109 | 110 | 111 | 112 | def setup_package(): 113 | write_version_py() 114 | setup( 115 | name=DISTNAME, 116 | version=VERSION, 117 | author=MAINTAINER, 118 | author_email=MAINTAINER_EMAIL, 119 | maintainer=MAINTAINER, 120 | maintainer_email=MAINTAINER_EMAIL, 121 | description=DESCRIPTION, 122 | url=URL, 123 | download_url=DOWNLOAD_URL, 124 | keywords=KEYWORDS, 125 | install_requires=INSTALL_REQUIRES, 126 | packages=find_packages(), 127 | package_dir={DISTNAME: './nimfa'}, 128 | package_data={DISTNAME: get_package_data('datasets')}, 129 | license=LICENSE, 130 | long_description_content_type='text/markdown', 131 | long_description=LONG_DESCRIPTION, 132 | classifiers=['Intended Audience :: Science/Research', 133 | 'Intended Audience :: Developers', 134 | 'License :: OSI Approved', 135 | 'Programming Language :: Python', 136 | 'Topic :: Software Development', 137 | 'Topic :: Scientific/Engineering', 138 | 'Topic :: Scientific/Engineering :: Artificial Intelligence', 139 | 'Topic :: Scientific/Engineering :: Bio-Informatics', 140 | 'Programming Language :: Python :: 2', 141 | 'Programming Language :: Python :: 3',], 142 | ) 143 | 144 | 145 | if __name__ == "__main__": 146 | setup_package() 147 | -------------------------------------------------------------------------------- /nimfa/models/smf.py: -------------------------------------------------------------------------------- 1 | """ 2 | ##################### 3 | Smf (``models.smf``) 4 | ##################### 5 | """ 6 | 7 | import nimfa.utils.utils as utils 8 | from nimfa.utils.linalg import * 9 | from nimfa.methods import seeding 10 | 11 | 12 | class Smf(object): 13 | """ 14 | This class defines a common interface / model to handle standard MF models in 15 | a generic way. 16 | 17 | It contains definitions of the minimum set of generic methods that are used in 18 | common computations and matrix factorizations. Besides it contains some quality 19 | and performance measures about factorizations. 20 | """ 21 | def __init__(self, params): 22 | self.model_name = "smf" 23 | self.__dict__.update(params) 24 | self.V1 = None 25 | self.H1 = None 26 | # do not copy target and factor matrices into the program 27 | if sp.isspmatrix(self.V): 28 | self.V = self.V.tocsr().astype('d') 29 | else: 30 | self.V = np.asmatrix(self.V) if self.V.dtype == np.dtype( 31 | float) else np.asmatrix(self.V, dtype='d') 32 | if self.W is not None or self.H is not None or self.H1 is not None: 33 | raise utils.MFError("Fixed initialized is not supported by SMF model.") 34 | self._compatibility() 35 | 36 | def __call__(self): 37 | """Run the specified MF algorithm.""" 38 | return self.factorize() 39 | 40 | def basis(self): 41 | """Return the matrix of basis vectors (factor 1 matrix).""" 42 | return self.W 43 | 44 | def target(self, idx=None): 45 | """ 46 | Return the target matrix to estimate. 47 | 48 | :param idx: Used in the multiple MF model. In standard MF ``idx`` is always None. 49 | :type idx: None 50 | """ 51 | return self.V 52 | 53 | def coef(self, idx=None): 54 | """ 55 | Return the matrix of mixture coefficients (factor 2 matrix). 56 | 57 | :param idx: Used in the multiple MF model. In standard MF ``idx`` is always None. 58 | :type idx: None 59 | """ 60 | return self.H 61 | 62 | def fitted(self, idx=None): 63 | """ 64 | Compute the estimated target matrix according to the MF algorithm model. 65 | 66 | :param idx: Used in the multiple MF model. In standard MF ``idx`` is always None. 67 | :type idx: None 68 | """ 69 | return dot(self.W, self.H) 70 | 71 | def distance(self, metric='euclidean', idx=None): 72 | """ 73 | Return the loss function value. 74 | 75 | :param distance: Specify distance metric to be used. Possible are Euclidean and 76 | Kullback-Leibler (KL) divergence. Strictly, KL is not a metric. 77 | :type distance: `str` with values 'euclidean' or 'kl' 78 | 79 | :param idx: Used in the multiple MF model. In standard MF ``idx`` is always None. 80 | :type idx: None 81 | """ 82 | if metric.lower() == 'euclidean': 83 | R = self.V - dot(self.W, self.H) 84 | return power(R, 2).sum() 85 | elif metric.lower() == 'kl': 86 | Va = dot(self.W, self.H) 87 | return (multiply(self.V, sop(elop(self.V, Va, div), op=log)) - self.V + Va).sum() 88 | else: 89 | raise utils.MFError("Unknown distance metric.") 90 | 91 | def residuals(self, idx=None): 92 | """ 93 | Return residuals matrix between the target matrix and its MF estimate. 94 | 95 | :param idx: Used in the multiple MF model. In standard MF ``idx`` is always None. 96 | :type idx: None 97 | """ 98 | return self.V - dot(self.W, self.H) 99 | 100 | def _compatibility(self): 101 | """ 102 | Check if chosen seeding method is compatible with chosen factorization 103 | method or fixed initialization is passed. 104 | 105 | :param mf_model: The underlying initialized model of matrix factorization. 106 | :type mf_model: Class inheriting :class:`models.nmf.Nmf` 107 | """ 108 | W = self.basis() 109 | H = self.coef(0) 110 | H1 = self.coef(1) if self.model_name == 'mm' else None 111 | if self.seed is None and W is None and H is None and H1 is None: 112 | self.seed = None if "none" in self.aseeds else "random" 113 | if W is not None and H is not None: 114 | if self.seed is not None and self.seed is not "fixed": 115 | raise utils.MFError("Initial factorization is fixed.") 116 | else: 117 | self.seed = seeding.fixed.Fixed() 118 | self.seed._set_fixed(W=W, H=H, H1=H1) 119 | self.__is_smdefined() 120 | self.__compatibility() 121 | 122 | def __is_smdefined(self): 123 | """Check if MF and seeding methods are well defined.""" 124 | if isinstance(self.seed, str): 125 | if self.seed in seeding.methods: 126 | self.seed = seeding.methods[self.seed]() 127 | else: 128 | raise utils.MFError("Unrecognized seeding method.") 129 | else: 130 | if not str(self.seed).lower() in seeding.methods: 131 | raise utils.MFError("Unrecognized seeding method.") 132 | 133 | def __compatibility(self): 134 | """Check if MF model is compatible with the seeding method.""" 135 | if not str(self.seed).lower() in self.aseeds: 136 | raise utils.MFError("MF model is incompatible with the seeding method.") 137 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Nimfa 2 | ----- 3 | 4 | [![build: passing](https://img.shields.io/travis/marinkaz/nimfa.svg)](https://travis-ci.org/marinkaz/nimfa) 5 | [![build: passing](https://coveralls.io/repos/marinkaz/nimfa/badge.svg)](https://coveralls.io/github/marinkaz/nimfa?branch=master) 6 | [![GitHub release](https://img.shields.io/github/release/marinkaz/nimfa.svg)](https://GitHub.com/marinkaz/nimfa/releases/) 7 | [![BSD license](https://img.shields.io/badge/License-BSD-blue.svg)](https://opensource.org/licenses/BSD-3-Clause) 8 | [![Conda Version](https://img.shields.io/conda/v/conda-forge/nimfa.svg)](https://anaconda.org/conda-forge/nimfa) 9 | 10 | Nimfa is a Python module that implements many algorithms for nonnegative matrix factorization. Nimfa is distributed under the BSD license. 11 | 12 | The project was started in 2011 by Marinka Zitnik as a Google Summer of Code project, and since 13 | then many volunteers have contributed. See AUTHORS file for a complete list of contributors. 14 | 15 | It is currently maintained by a team of volunteers. 16 | 17 | [**[News:]**](https://github.com/marinkaz/scikit-fusion) [Scikit-fusion](https://github.com/marinkaz/scikit-fusion), collective latent factor models, matrix factorization for data fusion and learning over heterogeneous data. 18 | 19 | [**[News:]**](https://github.com/mims-harvard/fastGNMF) [fastGNMF](https://github.com/mims-harvard/fastGNMF), fast implementation of graph-regularized non-negative matrix factorization using [Facebook FAISS](https://github.com/facebookresearch/faiss). 20 | 21 | Important links 22 | --------------- 23 | 24 | - Official source code repo: https://github.com/marinkaz/nimfa 25 | - HTML documentation (stable release): http://ai.stanford.edu/~marinka/nimfa 26 | - Download releases: http://github.com/marinkaz/nimfa/releases 27 | - Issue tracker: http://github.com/marinkaz/nimfa/issues 28 | 29 | Dependencies 30 | ------------ 31 | 32 | Nimfa is tested to work under Python 2.7 and Python 3.4. 33 | 34 | The required dependencies to build the software are NumPy >= 1.7.0, 35 | SciPy >= 0.12.0. 36 | 37 | For running the examples Matplotlib >= 1.1.1 is required. 38 | 39 | Install 40 | ------- 41 | 42 | This package uses setuptools, which is a common way of installing 43 | python modules. To install in your home directory, use: 44 | 45 | python setup.py install --user 46 | 47 | To install for all users on Unix/Linux: 48 | 49 | sudo python setup.py install 50 | 51 | For more detailed installation instructions, 52 | see the web page http://ai.stanford.edu/~marinka/nimfa. 53 | 54 | Alternatively, you may also install this package using conda: 55 | 56 | conda install -c conda-forge nimfa 57 | 58 | Use 59 | --- 60 | 61 | Run alternating least squares nonnegative matrix factorization with projected gradients and Random Vcol initialization algorithm on medulloblastoma gene expression data: 62 | 63 | >>> import nimfa 64 | >>> V = nimfa.examples.medulloblastoma.read(normalize=True) 65 | >>> lsnmf = nimfa.Lsnmf(V, seed='random_vcol', rank=50, max_iter=100) 66 | >>> lsnmf_fit = lsnmf() 67 | >>> print('Rss: %5.4f' % lsnmf_fit.fit.rss()) 68 | Rss: 0.2668 69 | >>> print('Evar: %5.4f' % lsnmf_fit.fit.evar()) 70 | Evar: 0.9997 71 | >>> print('K-L divergence: %5.4f' % lsnmf_fit.distance(metric='kl')) 72 | K-L divergence: 38.8744 73 | >>> print('Sparseness, W: %5.4f, H: %5.4f' % lsnmf_fit.fit.sparseness()) 74 | Sparseness, W: 0.7297, H: 0.8796 75 | 76 | 77 | Cite 78 | ---- 79 | 80 | @article{Zitnik2012, 81 | title = {Nimfa: A Python Library for Nonnegative Matrix Factorization}, 82 | author = {Zitnik, Marinka and Zupan, Blaz}, 83 | journal = {Journal of Machine Learning Research}, 84 | volume = {13}, 85 | pages = {849-853}, 86 | year = {2012} 87 | } 88 | 89 | Selected publications (Methods) 90 | ------------------------------ 91 | 92 | - Data fusion by matrix factorization: http://dx.doi.org/10.1109/TPAMI.2014.2343973 93 | - Jumping across biomedical contexts using compressive data fusion: https://academic.oup.com/bioinformatics/article/32/12/i90/2240593 94 | - Survival regression by data fusion: http://www.tandfonline.com/doi/abs/10.1080/21628130.2015.1016702 95 | - Gene network inference by fusing data from diverse distributions: https://academic.oup.com/bioinformatics/article/31/12/i230/216398 96 | - Fast optimization of non-negative matrix tri-factorization: https://doi.org/10.1371/journal.pone.0217994 97 | 98 | Selected publications (Applications) 99 | ------------------------------------ 100 | 101 | - A comprehensive structural, biochemical and biological profiling of the human NUDIX hydrolase family: https://www.nature.com/articles/s41467-017-01642-w 102 | - Gene prioritization by compressive data fusion and chaining: http://dx.doi.org/10.1371/journal.pcbi.1004552 103 | - Discovering disease-disease associations by fusing systems-level molecular data: http://www.nature.com/srep/2013/131115/srep03202/full/srep03202.html 104 | - Matrix factorization-based data fusion for gene function prediction in baker's yeast and slime mold: http://www.worldscientific.com/doi/pdf/10.1142/9789814583220_0038 105 | - Matrix factorization-based data fusion for drug-induced liver injury prediction: http://www.tandfonline.com/doi/abs/10.4161/sysb.29072 106 | - Collective pairwise classification for multi-way analysis of disease and drug data: https://doi.org/10.1142/9789814749411_0008 107 | 108 | Tutorials 109 | --------- 110 | 111 | - Hidden Genes: Understanding cancer data with matrix factorization, ACM XRDS: Crossroads: https://dl.acm.org/citation.cfm?id=2809623.2788526 [[Jupyter Notebook]](https://nbviewer.jupyter.org/github/marinkaz/nimfa-ipynb/blob/master/ICGC%20and%20Nimfa.ipynb) 112 | 113 |

114 | 115 |

116 | -------------------------------------------------------------------------------- /nimfa/examples/recommendations.py: -------------------------------------------------------------------------------- 1 | 2 | """ 3 | ############################################## 4 | Recommendations (``examples.recommendations``) 5 | ############################################## 6 | 7 | In this examples of collaborative filtering we consider movie recommendation using common MovieLens data set. It 8 | represents typical cold start problem. A recommender system compares the user's profile to reference 9 | characteristics from the user's social environment. In the collaborative filtering approach, the recommender 10 | system identify users who share the same preference with the active user and propose items which the like-minded 11 | users favoured (and the active user has not yet seen). 12 | 13 | We used the MovieLens 100k data set in this example. This data set consists of 100 000 ratings (1-5) from 943 14 | users on 1682 movies. Each user has rated at least 20 movies. Simple demographic info for the users is included. 15 | Factorization is performed on a split data set as provided by the collector of the data. The data is split into 16 | two disjoint sets each consisting of training set and a test set with exactly 10 ratings per user. 17 | 18 | It is common that matrices in the field of recommendation systems are very sparse (ordinary user rates only a small 19 | fraction of items from the large items' set), therefore ``scipy.sparse`` matrix formats are used in this example. 20 | 21 | The configuration of this example is SNMF/R factorization method using Random Vcol algorithm for initialization. 22 | 23 | .. note:: MovieLens movies' rating data set used in this example is not included in the `datasets` and need to be 24 | downloaded. Download links are listed in the ``datasets``. Download compressed version of the MovieLens 100k. 25 | To run the example, the extracted data set must exist in the ``MovieLens`` directory under ``datasets``. 26 | 27 | .. note:: No additional knowledge in terms of ratings' timestamps, information about items and their 28 | genres or demographic information about users is used in this example. 29 | 30 | To run the example simply type:: 31 | 32 | python recommendations.py 33 | 34 | or call the module's function:: 35 | 36 | import nimfa.examples 37 | nimfa.examples.recommendations.run() 38 | 39 | .. note:: This example uses ``matplotlib`` library for producing visual interpretation of the RMSE error measure. 40 | 41 | """ 42 | 43 | from os.path import dirname, abspath 44 | from os.path import join 45 | from warnings import warn 46 | 47 | import numpy as np 48 | 49 | import nimfa 50 | 51 | 52 | try: 53 | import matplotlib.pylab as plb 54 | except ImportError as exc: 55 | warn("Matplotlib must be installed to run Recommendations example.") 56 | 57 | 58 | def run(): 59 | """ 60 | Run SNMF/R on the MovieLens data set. 61 | 62 | Factorization is run on `ua.base`, `ua.test` and `ub.base`, `ub.test` data set. This is MovieLens's data set split 63 | of the data into training and test set. Both test data sets are disjoint and with exactly 10 ratings per user 64 | in the test set. 65 | """ 66 | for data_set in ['ua', 'ub']: 67 | V = read(data_set) 68 | W, H = factorize(V) 69 | rmse(W, H, data_set) 70 | 71 | 72 | def factorize(V): 73 | """ 74 | Perform SNMF/R factorization on the sparse MovieLens data matrix. 75 | 76 | Return basis and mixture matrices of the fitted factorization model. 77 | 78 | :param V: The MovieLens data matrix. 79 | :type V: `numpy.matrix` 80 | """ 81 | snmf = nimfa.Snmf(V, seed="random_vcol", rank=30, max_iter=30, version='r', eta=1., 82 | beta=1e-4, i_conv=10, w_min_change=0) 83 | print("Algorithm: %s\nInitialization: %s\nRank: %d" % (snmf, snmf.seed, snmf.rank)) 84 | fit = snmf() 85 | sparse_w, sparse_h = fit.fit.sparseness() 86 | print("""Stats: 87 | - iterations: %d 88 | - Euclidean distance: %5.3f 89 | - Sparseness basis: %5.3f, mixture: %5.3f""" % (fit.fit.n_iter, 90 | fit.distance(metric='euclidean'), 91 | sparse_w, sparse_h)) 92 | return fit.basis(), fit.coef() 93 | 94 | 95 | def read(data_set): 96 | """ 97 | Read movies' ratings data from MovieLens data set. 98 | 99 | :param data_set: Name of the split data set to be read. 100 | :type data_set: `str` 101 | """ 102 | print("Read MovieLens data set") 103 | fname = join(dirname(dirname(abspath(__file__))), "datasets", "MovieLens", "%s.base" % data_set) 104 | V = np.ones((943, 1682)) * 2.5 105 | for line in open(fname): 106 | u, i, r, _ = list(map(int, line.split())) 107 | V[u - 1, i - 1] = r 108 | return V 109 | 110 | 111 | def rmse(W, H, data_set): 112 | """ 113 | Compute the RMSE error rate on MovieLens data set. 114 | 115 | :param W: Basis matrix of the fitted factorization model. 116 | :type W: `numpy.matrix` 117 | :param H: Mixture matrix of the fitted factorization model. 118 | :type H: `numpy.matrix` 119 | :param data_set: Name of the split data set to be read. 120 | :type data_set: `str` 121 | """ 122 | fname = join(dirname(dirname(abspath(__file__))), "datasets", "MovieLens", "%s.test" % data_set) 123 | rmse = [] 124 | for line in open(fname): 125 | u, i, r, _ = list(map(int, line.split())) 126 | sc = max(min((W[u - 1, :] * H[:, i - 1])[0, 0], 5), 1) 127 | rmse.append((sc - r) ** 2) 128 | print("RMSE: %5.3f" % np.sqrt(np.mean(rmse))) 129 | 130 | 131 | if __name__ == "__main__": 132 | """Run the Recommendations example.""" 133 | run() 134 | -------------------------------------------------------------------------------- /nimfa/models/mf_fit.py: -------------------------------------------------------------------------------- 1 | 2 | """ 3 | ########################## 4 | Mf_fit (``models.mf_fit``) 5 | ########################## 6 | """ 7 | 8 | 9 | class Mf_fit(): 10 | """ 11 | Base class for storing MF results. 12 | 13 | It contains generic functions and structure for handling the results of MF algorithms. 14 | It contains a slot with the fitted MF model and data about parameters and methods used for 15 | factorization. 16 | 17 | The purpose of this class is to handle in a generic way the results of MF algorithms and acts as a wrapper for the 18 | fitted model. Its attribute attribute:: fit contains the fitted model and its configuration 19 | can therefore be used directly in following calls to factorization. 20 | 21 | .. attribute:: fit 22 | 23 | The fitted NMF model 24 | 25 | .. attribute:: algorithm 26 | 27 | NMF method of factorization. 28 | 29 | .. attribute:: n_iter 30 | 31 | The number of iterations performed. 32 | 33 | .. attribute:: n_run 34 | 35 | The number of NMF runs performed. 36 | 37 | .. attribute:: seeding 38 | 39 | The seeding method used to seed the algorithm that fitted NMF model. 40 | 41 | .. attribute:: options 42 | 43 | Extra parameters specific to the algorithm used to fit the model. 44 | """ 45 | def __init__(self, fit): 46 | """ 47 | Construct fitted factorization model. 48 | 49 | :param fit: Matrix factorization algorithm model. 50 | :type fit: class from methods.mf package 51 | """ 52 | self.fit = fit 53 | self.algorithm = str(self.fit) 54 | self.n_iter = self.fit.n_iter 55 | self.n_run = self.fit.n_run 56 | self.seeding = str(self.fit.seed) 57 | self.options = self.fit.options 58 | 59 | def basis(self): 60 | """Return the matrix of basis vectors.""" 61 | return self.fit.basis() 62 | 63 | def coef(self, idx=None): 64 | """ 65 | Return the matrix of mixture coefficients. 66 | 67 | :param idx: Name of the matrix (coefficient) matrix. Used only in the multiple NMF model. 68 | :type idx: `str` with values 'coef' or 'coef1' (`int` value of 0 or 1, respectively) 69 | """ 70 | return self.fit.coef(idx) 71 | 72 | def distance(self, metric=None, idx=None): 73 | """ 74 | Return the loss function value. If metric is not supplied, final objective function value associated to the MF algorithm is returned. 75 | 76 | :param metric: Measure of distance between a target matrix and a MF estimate. Metric 'kl' and 'euclidean' 77 | are defined. 78 | :type metric: 'str' 79 | 80 | :param idx: Name of the matrix (coefficient) matrix. Used only in the multiple NMF model. 81 | :type idx: `str` with values 'coef' or 'coef1' (`int` value of 0 or 1, respectively) 82 | """ 83 | if metric == None: 84 | return self.fit.final_obj 85 | else: 86 | return self.fit.distance(metric, idx) 87 | 88 | def fitted(self, idx=None): 89 | """ 90 | Compute the estimated target matrix according to the MF algorithm model. 91 | 92 | :param idx: Name of the matrix (coefficient) matrix. Used only in the multiple NMF model. 93 | :type idx: `str` with values 'coef' or 'coef1' (`int` value of 0 or 1, respectively) 94 | """ 95 | return self.fit.fitted(idx) 96 | 97 | def fit(self): 98 | """Return the MF algorithm model.""" 99 | return self.fit 100 | 101 | def summary(self, idx=None): 102 | """ 103 | Return generic set of measures to evaluate the quality of the factorization. 104 | 105 | :param idx: Name of the matrix (coefficient) matrix. Used only in the multiple NMF model. 106 | :type idx: `str` with values 'coef' or 'coef1' (`int` value of 0 or 1, respectively) 107 | """ 108 | if idx == 'coef': 109 | idx = 0 110 | if idx == 'coef1': 111 | idx = 1 112 | if hasattr(self, 'summary_data'): 113 | if idx not in self.summary_data: 114 | self.summary_data[idx] = self._compute_summary(idx) 115 | return self.summary_data[idx] 116 | else: 117 | self.summary_data = {} 118 | self.summary_data[idx] = self._compute_summary(idx) 119 | return self.summary_data[idx] 120 | 121 | def _compute_summary(self, idx=None): 122 | """ 123 | Compute generic set of measures to evaluate the quality of the factorization. 124 | 125 | :param idx: Name of the matrix (coefficient) matrix. Used only in the multiple NMF model. 126 | :type idx: `str` with values 'coef' or 'coef1' (`int` value of 0 or 1, respectively) 127 | """ 128 | return { 129 | 'rank': self.fit.rank, 130 | 'sparseness': self.fit.sparseness(idx=idx), 131 | 'rss': self.fit.rss(idx=idx), 132 | 'evar': self.fit.evar(idx=idx), 133 | 'residuals': self.fit.residuals(idx=idx), 134 | 'connectivity': self.fit.connectivity(idx=idx), 135 | 'predict_samples': self.fit.predict(what='samples', prob=True, idx=idx), 136 | 'predict_features': self.fit.predict(what='features', prob=True, idx=idx), 137 | 'score_features': self.fit.score_features(idx=idx), 138 | 'select_features': self.fit.select_features(idx=idx), 139 | 'dispersion': self.fit.dispersion(idx=idx), 140 | 'cophenetic': self.fit.coph_cor(idx=idx), 141 | 'consensus': self.fit.consensus(idx=idx), 142 | 'euclidean': self.fit.distance(metric='euclidean', idx=idx), 143 | 'kl': self.fit.distance(metric='kl', idx=idx), 144 | 'n_iter': self.fit.n_iter, 145 | 'n_run': self.fit.n_run 146 | } 147 | --------------------------------------------------------------------------------