A library of feature selection algorithms.
Ruby
Switch branches/tags
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
benchmark
lib
spec
.document
.gitignore
LICENSE
README.rdoc
Rakefile
VERSION
feature_selection.gemspec

README.rdoc

Feature Selection

Feature Selection is a library of feature selection algorithms.

en.wikipedia.org/wiki/Feature_selection

Install

gem sources -a http://gemcutter.org
sudo gem install feature_selection

How To Use

There are currently 3 implemented feature collections: Chi-Squared, Mutual Information and Frequency Based.

Each return a hash that looks similar to:

{klass => {term => score, term => score}, klass => {term => score}}

Example:

data = {
        :spam => [['this', 'is', 'some', 'information'], ['this', 'is', 'something', 'that', 'is', 'information']],
        :ham => [['this', 'test', 'some', 'more', 'information'], ['there', 'are', 'some', 'things']],
        }

a = FeatureSelection::ChiSquared.new(data)

# You can also use...
# FeatureSelection::MutualInformation
# FeatureSelection::FrequencyBased

a.rank_features
  #=> {:spam => {term => score, term => score}, :ham => {term => score}}

Logging

There are two ways to log the activity:

# Provide a path of somewhere to log to
log = File.expand_path(File.dirname(__FILE__) + '/log.txt')
FeatureSelection::MutualInformation.new(data, :log_to => log)

# Provide an existing Logger object
log = Logger.new('log.txt')
FeatureSelection::MutualInformation.new(data, :log_to => log)

Copyright

Copyright © 2009 reddavis. See LICENSE for details.