GitHub Hot Board

GitHub Hot Board · Hồ sơ kho lưu trữ

sjwhitworth/golearn

Machine Learning for Go (Mô tả đến từ chính kho lưu trữ.)

Dữ liệu tại October 27sjwhitworth

Thứ hạng tốt nhất

#478

Mọi thời đại · Go theo ngôn ngữ

9.4K

Tổng sao

1.2K

Tổng fork

0

Số ngày có mặt (30 ngày)

Trạng thái dự ánGiấy phép: MITPush gần nhất: January 15Issue mở (gồm PR): 89

Thu thập từ 2026-10-25; chưa rõ = chưa thu thập được

Gắn huy hiệu vào README của bạn · sjwhitworth/golearn[![Gắn huy hiệu vào README của bạn](https://git.vaiox.xyz/api/badge/sjwhitworth/golearn.svg)](https://git.vaiox.xyz/vi/repo/sjwhitworth/golearn)

Badge · 任何仓库都可以挂 —— 未上榜的仓库显示灰章,上完榜会自动点亮。

<a href="https://git.vaiox.xyz/vi/repo/sjwhitworth/golearn"><img src="https://git.vaiox.xyz/api/badge/sjwhitworth/golearn.svg" alt="Gắn huy hiệu vào README của bạn" height="20"></a>

Tài liệu dự án

GoLearn


GoDoc Build Status
Code Coverage

Support via Gittip

GoLearn is a 'batteries included' machine learning library for Go. Simplicity, paired with customisability, is the goal. We are in active development, and would love comments from users out in the wild. Drop us a line on Twitter.

twitter: @golearn_ml

Install

See here for installation instructions.

Getting Started

Data are loaded in as Instances. You can then perform matrix like operations on them, and pass them to estimators. GoLearn implements the scikit-learn interface of Fit/Predict, so you can easily swap out estimators for trial and error. GoLearn also includes helper functions for data, like cross validation, and train and test splitting.

package main

import (
	"fmt"

	"github.com/sjwhitworth/golearn/base"
	"github.com/sjwhitworth/golearn/evaluation"
	"github.com/sjwhitworth/golearn/knn"
)

func main() {
	// Load in a dataset, with headers. Header attributes will be stored.
	// Think of instances as a Data Frame structure in R or Pandas.
	// You can also create instances from scratch.
	rawData, err := base.ParseCSVToInstances("datasets/iris.csv", true)
	if err != nil {
		panic(err)
	}

	// Print a pleasant summary of your data.
	fmt.Println(rawData)

	//Initialises a new KNN classifier
	cls := knn.NewKnnClassifier("euclidean", "linear", 2)

	//Do a training-test split
	trainData, testData := base.InstancesTrainTestSplit(rawData, 0.50)
	cls.Fit(trainData)

	//Calculates the Euclidean distance and returns the most popular label
	predictions, err := cls.Predict(testData)
	if err != nil {
		panic(err)
	}

	// Prints precision/recall metrics
	confusionMat, err := evaluation.GetConfusionMatrix(testData, predictions)
	if err != nil {
		panic(fmt.Sprintf("Unable to get confusion matrix: %s", err.Error()))
	}
	fmt.Println(evaluation.GetSummary(confusionMat))
}
Iris-virginica	28	2	  56	0.9333	0.9333  0.9333
Iris-setosa	    29	0	  59	1.0000  1.0000	1.0000
Iris-versicolor	27	2	  57	0.9310	0.9310  0.9310
Overall accuracy: 0.9545

Examples

GoLearn comes with practical examples. Dive in and see what is going on.

cd $GOPATH/src/github.com/sjwhitworth/golearn/examples/knnclassifier
go run knnclassifier_iris.go
cd $GOPATH/src/github.com/sjwhitworth/golearn/examples/instances
go run instances.go
cd $GOPATH/src/github.com/sjwhitworth/golearn/examples/trees
go run trees.go

Docs

Join the team

Please send me a mail at stephenjameswhitworth@gmail.com

Thứ hạng hiện tại

Diễn biến 30 ngày

Không có bản ghi nào trong 30 ngày qua.

← Về bảng xếp hạng

GitHub Hot BoardCỗ Máy Thời GianKhám phá联系我们 · Contact