mirror of
https://github.com/sjwhitworth/golearn.git
synced 2025-04-26 13:49:14 +08:00
35 lines
828 B
Go
35 lines
828 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
base "github.com/sjwhitworth/golearn/base"
|
|
evaluation "github.com/sjwhitworth/golearn/evaluation"
|
|
perceptron "github.com/sjwhitworth/golearn/perceptron"
|
|
"math/rand"
|
|
)
|
|
|
|
func main() {
|
|
|
|
rand.Seed(4402201)
|
|
|
|
rawData, err := base.ParseCSVToInstances("../datasets/house-votes-84.csv", true)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
//Initialises a new AveragePerceptron classifier
|
|
cls := perceptron.NewAveragePerceptron(10, 1.2, 0.5, 0.3)
|
|
|
|
//Do a training-test split
|
|
trainData, testData := base.InstancesTrainTestSplit(rawData, 0.50)
|
|
fmt.Println(trainData)
|
|
fmt.Println(testData)
|
|
cls.Fit(trainData)
|
|
|
|
predictions := cls.Predict(testData)
|
|
|
|
// Prints precision/recall metrics
|
|
confusionMat, _ := evaluation.GetConfusionMatrix(testData, predictions)
|
|
fmt.Println(evaluation.GetSummary(confusionMat))
|
|
}
|