【发布时间】:2016-05-02 12:37:01
【问题描述】:
我正在使用 golearn 示例文件夹中的 knnclassifier_iris.go 示例。我用我自己的一个替换了 iris 数据集,只要我用我读入的数据的一定百分比训练我的数据,所有函数都可以正常工作并且我得到一些输出。但是,当我明确提到训练和测试数据集,然后在拟合训练数据集后对测试数据集运行预测时,当我尝试打印预测时得到 nil 结果。我不知道为什么我得到一个零值,所以我真的很感激一些帮助。
我的代码:
package main
import (
"fmt"
"github.com/sjwhitworth/golearn/base"
"github.com/sjwhitworth/golearn/evaluation"
"github.com/sjwhitworth/golearn/knn"
)
func main() {
trainData, err := base.ParseCSVToInstances("~/Desktop/churn_train.csv", true)
if err != nil {
panic(err)
}
fmt.Println(trainData)
testData, err := base.ParseCSVToInstances("~/Desktop/churn_test.csv", false)
if err != nil {
panic(err)
}
fmt.Println(trainData)
fmt.Println(testData)
//Initialises a new KNN classifier
cls := knn.NewKnnClassifier("euclidean", 2)
cls.Fit(trainData)
//Calculates the Euclidean distance and returns the most popular label
predictions := cls.Predict(testData)
fmt.Println(predictions) //GETTING <NIL> AS OUTPUT
// Prints precision/recall metrics
confusionMat, err := evaluation.GetConfusionMatrix(testData, predictions)
if err != nil {
panic(fmt.Sprintf("Unable to get confusion matrix: %s", err.Error())) //ERROR CAUSED HERE DUE TO GETTING <NIL>
}
fmt.Println(evaluation.GetSummary(confusionMat))
}
【问题讨论】:
标签: go machine-learning