Data Mining Algorithms in GoLang.
$ go get github.com/ozzie80/go-miner
Description From Wikipedia:
k-means clustering aims to partition n observations into k clusters in which each observation belongs to the cluster with the nearest mean, serving as a prototype of the cluster. This results in a partitioning of the data space into Voronoi cells.
The k-means implementation of go-miner uses the k-means++ algorithm for choosing the initial cluster centroids. The implementation provides internal quality indexes, Dunn Index and Davies-Bouldin Index, for evaluating clustering results.
Usage Example
// Create points or read from a .csv file
points := []dt.Vector{{1.0, 2.0, 3.0}, {5.1, 6.2, 7.3}, {2.0, 3.5, 5.0}}
// Specify Parameters: K, Points, MaxIter (optional)
params := kmeans.Params{2, points, math.MaxInt64}
// Run k-means
clusters, err := kmeans.Run(params)
// Get quality index score
index := kmeans.DunnIndex{} // DaviesBouldinIndex{}
score := index.GetScore(clusters)
To Do
- Concurrent version
- Cuda/GPU version
- Apriori
- KNN
- Naive Bayes
- PageRank
- SVM
- ...
go-miner is MIT License.