gpt4 book ai didi

go - 在 golearn 中使用 .Predict() 函数时获取

转载 作者:IT王子 更新时间:2023-10-29 01:48:00 25 4
gpt4 key购买 nike

我正在研究 golearn 示例文件夹中的 knnclassifier_iris.go 示例。我用我自己的数据集替换了 iris 数据集,只要我根据我读入的数据的一定百分比来训练我的数据,所有函数都可以正常工作并且我会得到一些输出。但是,当我明确提到训练和测试数据集,然后在拟合训练数据集后对测试数据集运行预测时,当我尝试打印预测时,我得到的结果为零。我不知道为什么我得到一个零值,所以我真的很感激一些帮助。

我的代码:

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))

}

最佳答案

(以防万一有人在 Google 上偶然发现了这个)。当第二个 ParseCSVToInstances 生成的实例与第一个略有不同时,问题往往会出现。为确保这不是问题所在,请使用 ParseCSVToTemplatedInstances , 所以

testData, err := base.ParseCSVToInstances("~/Desktop/churn_test.csv", false)

成为

 testData, err := base.ParseCSVToTemplatedInstances("~/Desktop/churn_test.csv", false, trainData)

关于go - 在 golearn 中使用 .Predict() 函数时获取 <nil>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35005532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com