kmeans

package module
v0.0.0-...-bf06fda Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 31, 2014 License: BSD-2-Clause Imports: 2 Imported by: 6

README

Testing Image Issues

K-Means

kmeans is BSD licensed fast k-means implementation(with better initialization, known as k-means++) written in Go. It supports various distance functions out of the box for convenience and experimentation. It has large coverage for tests. The algorithm is tested on Iris dataset and distance functions have full test coverage.

Documentation

Godoc

License

BSD License

Distance Functions

It supports various distance functions:

  • LP norms (manhattan, euclidean distances including)
  • SquaredEuclideanDistance
  • Minkowski Distance
  • Weighted Minkowski Distance
  • Chebyshev Distance
  • Hamming Distance
  • Bray Curtis Distance
  • CanberraDistance

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BrayCurtisDistance

func BrayCurtisDistance(firstVector, secondVector []float64) (float64, error)

func CanberraDistance

func CanberraDistance(firstVector, secondVector []float64) (float64, error)

func ChebyshevDistance

func ChebyshevDistance(firstVector, secondVector []float64) (float64, error)

infinity norm distance (l_inf distance)

func EuclideanDistance

func EuclideanDistance(firstVector, secondVector []float64) (float64, error)

2-norm distance (l_2 distance)

func HammingDistance

func HammingDistance(firstVector, secondVector []float64) (float64, error)

func Kmeans

func Kmeans(rawData [][]float64, k int, distanceFunction DistanceFunction, threshold int) ([]int, error)

K-Means Algorithm with smart seeds as known as K-Means ++

func LPNorm

func LPNorm(vector []float64, p float64) (float64, error)

Lp Norm of an array, given p >= 1

func ManhattanDistance

func ManhattanDistance(firstVector, secondVector []float64) (float64, error)

1-norm distance (l_1 distance)

func MinkowskiDistance

func MinkowskiDistance(firstVector, secondVector []float64, p float64) (float64, error)

p-norm distance (l_p distance)

func SquaredEuclideanDistance

func SquaredEuclideanDistance(firstVector, secondVector []float64) (float64, error)

Higher weight for the points that are far apart Not a real metric as it does not obey triangle inequality

func WeightedMinkowskiDistance

func WeightedMinkowskiDistance(firstVector, secondVector, weightVector []float64, p float64) (float64, error)

p-norm distance with weights (weighted l_p distance)

Types

type ClusteredObservation

type ClusteredObservation struct {
	ClusterNumber int
	Observation
}

Abstracts the Observation with a cluster number Update and computeation becomes more efficient

type DistanceFunction

type DistanceFunction func(first, second []float64) (float64, error)

Distance Function: To compute the distanfe between observations

type Observation

type Observation []float64

Observation: Data Abstraction for an N-dimensional observation

func (Observation) Add

func (observation Observation) Add(otherObservation Observation)

Summation of two vectors

func (Observation) InnerProduct

func (observation Observation) InnerProduct(otherObservation Observation)

Dot Product of Two vectors

func (Observation) Mul

func (observation Observation) Mul(scalar float64)

Multiplication of a vector with a scalar

func (Observation) OuterProduct

func (observation Observation) OuterProduct(otherObservation Observation) [][]float64

Outer Product of two arrays TODO: Need to be tested

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL