Giter Site home page Giter Site logo

random-projection's Introduction

Random-Projection

A python-based tool to generate random matrices, and do random projection on high dimensional data for feature dimension reduction and binarizaiton.

Usage

Generate Random Matrix

python generate_random_projection_matrix.py <Dim in> <Dim out> <Outfile>

# 9216 -> 256, save to random_mat.npy
python generate_random_projection_matrix.py 9216 256 random_mat.npy

Project data

Data should be in .hkl format, including at least a field "feature". "feature" is a numpy array of shape (#data N, #dim D).

>>> import hickle as hkl
>>> data = hkl.load('data.hkl')
>>> data['feature'].shape  # will be (N x D), N: #data, D: #dim
(1000, 9216)

Do the projection with random_projection.py:

python random_projection.py [--binary] [-M random_mat.npy] [-D dim] in_data.hkl out_data.hkl

# help
python random_proejction.py --help

Example 1: Random projection to 256-D:

python random_proejction.py -D 256 in.hkl out.hkl

Example 2: project with a pre-computed matrix and binarize to (0, 1):

python random_proejction.py --binary -M random_mat.npy in.hkl out.hkl

About

Author: Lee, Tang

random-projection's People

Contributors

weitang114 avatar

Watchers

James Cloos 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.