Giter Club home page Giter Club logo

nonnegative-matrix-factorization's Introduction

Nonnegative Matrix Factorization

NMF is a python program that applies a choice of nonnegative matrix factorization (NMF) algorithms to a dataset for clustering.
Currently, this program supports

  • Multiplicative Updates (MU)1
  • Alternating Least Squares (ALS)2
  • Alternating Nonnegative Least Squares with Active Set (ANLS - AS)3

Results

Experimental results with abcnews-date-test.csv's headline_text
Multiplicative Updates (MU):

Alternating Least Squares (ALS):

How to Run

  • Usage: main.py [-h] -f FILENAME -c COL_NAME -m {sklearn,all,als,anls,mu} [-d DATA_FRAC] [-r RANDOM_SAMPLE] [-n NUM_MAX_FEATURE] [-s CLUSTER_SIZE] [-k NUM_CLUSTERS] [-i NUM_ITERS] [-p PRINT_ENABLED]

  • Required arguments:

    • -f FILENAME, --filename FILENAME
      the input file name
    • -c COL_NAME, --col_name COL_NAME
      the column of the input csv file for nonnegative matrix factorization.
    • -m {sklearn,all,als,anls_as,mu}, --method {sklearn,all,als,anls_as,mu}
      the NMF method to apply
  • Optional arguments:

    • -h, --help
      show this help message and exit
    • -d DATA_FRAC, --data_frac DATA_FRAC
      the amount of the data to be used
    • -r RANDOM_SAMPLE, --random_sample RANDOM_SAMPLE
      if set False, disables random sampling of the data
    • -n NUM_MAX_FEATURE, --num_max_feature NUM_MAX_FEATURE
      the maximum number of features to be discovered in the dataset
    • -s CLUSTER_SIZE, --cluster_size CLUSTER_SIZE
      the number of features in each cluster
    • -k NUM_CLUSTERS, --num_clusters NUM_CLUSTERS
      the number of clusters to be discovered
    • -i NUM_ITERS, --num_iters NUM_ITERS
      the number of iterations to run a NMF algorithm
    • -p PRINT_ENABLED, --print_enabled PRINT_ENABLED
      if ture, output print statements

Citation

Algorithms for Non-negative Matrix Factorizations by D. Lee and H. Seung,
https://papers.nips.cc/paper/1861-algorithms-for-non-negative-matrix-factorization.pdf
Algorithms and applications for approximate nonnegative matrix factorization by M. Berry,
https://www.sciencedirect.com/science/article/pii/S0167947306004191
Non-negative Matrix Factorization Based on Alternating Non-negativity Constrained Least Squares and ActiveSet Method by H. Kim and H. Park,
https://www.cc.gatech.edu/~hpark/papers/simax-nmf.pdf
Fast Nonnegative Matrix Factorization: An Active-Set-Like Method and Comparisons,
https://www.cc.gatech.edu/~hpark/papers/SISC_082117RR_Kim_Park.pdf

nonnegative-matrix-factorization's People

Contributors

huspark avatar wypryzz9gi avatar terrancelaw avatar scinart avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.