Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Various distance and similarity measures for machine learning.
Ruby
Tag: v0.0.4

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
spec
.gitignore
.rspec
Gemfile
Gemfile.lock
LICENSE
README.md
Rakefile
measurable.gemspec

README.md

Measurable

This gem encompasses various distance measures. Besides the Array class, I also want to support NMatrix's NVector.

My objective is to be able to compare different metrics just by changing which method is called. Also, to show how to use NMatrix's C API. I'll create most of the things in pure Ruby first, then the most used operations (or the slowest ones) will be rewritten in C.

This is a fork of the gem Distance Measure, which has a similar objective, but isn't actively maintained and doesn't support NMatrix. Thank you, reddavis. :)

Install

gem install measurable

It only works with Ruby MRI 1.9.3 or 2.0.0. I still want to test it on JRuby, but as its still pure Ruby, it should work correctly there.

Distance measures that I want to support for the moment

These still need to be implemented:

  • Cityblock distance
  • Chebyshev distance
  • Minkowski distance
  • Hamming distance
  • Correlation distance
  • Chi-square distance
  • Kullback-Leibler divergence
  • Jensen-Shannon divergence
  • Mahalanobis distance
  • Squared Mahalanobis distance

How to use

This list will be updated as I have time. I'll refactor the existing measures and add some that I'll need in a project.

The API I intend to support is something like this:

require "measurable"

u = NVector.ones(2)
v = NVector.zeros(2)
w = [1, 0]
x = [2, 2]

Measurable::euclidean(u, v) # => 1.41421
Measurable::euclidean(w, v) # => 1.00000
Measurable::euclidean(w, w) # => 0.00000
Measurable::

Maybe add support for (some of) NMatrix's dtypes, like :float32, :float64, :complex64, :complex128, etc. This will have to way until Measurable supports NMatrix C API.

License

See LICENSE for details.

The original Distance Measure gem is copyrighted by @reddavis.

Something went wrong with that request. Please try again.