clustering

package
v0.0.0-...-5935107 Latest Latest
Warning

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

Go to latest
Published: Jun 7, 2019 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DENS_KEY = "density"
	DIAM_KEY = "diameter"
	RAD_KEY  = "radius"
	APP_KEY  = "averagePairOfPoints"
	CENT_KEY = "centroid"
	SAT_KEY  = "radiusSat"
	MIN_KEY  = "diamMin"
	MAX_KEY  = "diamMax"
	SIZE_KEY = "size"
)

Variables

This section is empty.

Functions

func CenterVolumeDistance

func CenterVolumeDistance(a, b Cluster, distAlgo PointDistance) (distance float64)

The distance between the centroids combined with distance between cluster size

func CentroidDistance

func CentroidDistance(a, b Cluster, distAlgo PointDistance) (distance float64)

func ClusterSilhouetteCoefficient

func ClusterSilhouetteCoefficient(cluster Cluster, clustering []Cluster, pointDistAlgo PointDistance) (sci float64)
func CompleteLink(a, b Cluster, distAlgo PointDistance) float64

The maximum distance between any two points from each cluster.

func CutOutPointerIndex

func CutOutPointerIndex(cluster *cluster, cutIndex int) (err error)

@testing: successfully

func EuclideanDistance

func EuclideanDistance(p1, p2 Point, data ...interface{}) (distance float64)

func MeanDistance

func MeanDistance(a, b Cluster, distAlgo PointDistance) (distance float64)

The average distance of all pairs of points, one from each cluster

func MeanIn

func MeanIn(xI Point, cluster Cluster, pointDistAlgo PointDistance) (mean float64)

func MeanOutMinIn

func MeanOutMinIn(xI Point, clustering []Cluster, pointDistAlgo PointDistance) (meanOutMin, meanIntern float64)

func NewFloat

func NewFloat(value float64) (coordinate *floatCoordinate)

func PointSilhouetteCoefficient

func PointSilhouetteCoefficient(xI Point, clustering []Cluster, pointDistAlgo PointDistance) (sI float64)

func PoweredDistance

func PoweredDistance(p1, p2 Point, data ...interface{}) (distance float64)
func SingleLink(a, b Cluster, distAlgo PointDistance) float64

The minimum distance between any two points from each cluster.

func VolumeDistance

func VolumeDistance(a, b Cluster, distAlgo PointDistance) (distance float64)

func WeightedEuclideanDistance

func WeightedEuclideanDistance(p1, p2 Point, data ...interface{}) (distance float64)

Types

type Cluster

type Cluster interface {
	DistanceTo(Cluster, DistanceMeasure, PointDistance) (float64, error)
	GetClusterItems() []Point
	GetClusterSize() int
	CombineWithCluster(Cluster, PointDistance) Cluster
	AddItem(Point)
	DeleteItem(Point)
	GetCentroid() Point
	UpdateCentroid()
	GetAveragePairOfPoints(PointDistance) float64
	UpdateAveragePairOfPoints(PointDistance)
	GetDiameter(PointDistance) (float64, Point, Point)
	UpdateDiameter(PointDistance)
	GetDensity(PointDistance) float64
	UpdateDensity(PointDistance)
	GetRadius(PointDistance) (float64, Point)
	UpdateRadius(PointDistance)
	GetClusterProperties(PointDistance) map[string]interface{}
	HasMember(Point) bool
}

func NewCluster

func NewCluster() Cluster

type Coordinate

type Coordinate interface {
	GetValue() interface{}
	SetValue(interface{}) error
	PoweredDistanceTo(Coordinate, float64) float64
	GetAbsoluteDistanceTo(Coordinate) float64
	AddValue(interface{})
	NormalizeValue(float64)
	GetZeroValue() interface{}
}

func NewCoordinate

func NewCoordinate(value interface{}) (c Coordinate)

type DistanceMeasure

type DistanceMeasure func(a, b Cluster, distAlgo PointDistance) float64

type GenericPoint

type GenericPoint []Coordinate

func NewGenericPoint

func NewGenericPoint(dimensions int) (point *GenericPoint)

func (*GenericPoint) Dimensions

func (p *GenericPoint) Dimensions() int

func (*GenericPoint) Equals

func (p *GenericPoint) Equals(other Point) (equal bool)

func (*GenericPoint) EuclideanDistanceTo

func (p *GenericPoint) EuclideanDistanceTo(other Point) (distance float64)

@testing successful distance measure obeys properties of symmetry, triangle inequality, monotony

func (*GenericPoint) GetCoordinate

func (p *GenericPoint) GetCoordinate(dimension int) (c Coordinate)

func (*GenericPoint) GetVector

func (p *GenericPoint) GetVector() []Coordinate

func (*GenericPoint) NormalizeVector

func (p *GenericPoint) NormalizeVector(denominator float64)

func (*GenericPoint) PoweredDistanceTo

func (p *GenericPoint) PoweredDistanceTo(other Point, exponend float64) (distance float64)

func (*GenericPoint) SetCoordinate

func (p *GenericPoint) SetCoordinate(dimension int, value interface{})

func (*GenericPoint) String

func (p *GenericPoint) String() string

func (*GenericPoint) WeightedEuclideanDistanceTo

func (p *GenericPoint) WeightedEuclideanDistanceTo(other Point) (distance float64)

@testing successful distance measure obeys properties of symmetry, triangle inequality, monotony

type Point

type Point interface {
	PoweredDistanceTo(Point, float64) float64
	EuclideanDistanceTo(Point) float64
	WeightedEuclideanDistanceTo(Point) float64
	Dimensions() int
	SetCoordinate(int, interface{})
	GetCoordinate(int) Coordinate
	GetVector() []Coordinate
	Equals(Point) bool
	NormalizeVector(float64)
}

func GetDiam

func GetDiam(points []Point, distAlgo PointDistance) (diam float64, min, max Point)

type PointDistance

type PointDistance func(Point, Point, ...interface{}) float64

Jump to

Keyboard shortcuts

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