【问题标题】:Getting <nil> while using .Predict() function in golearn在 golearn 中使用 .Predict() 函数时获取 <nil>
【发布时间】: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


    【解决方案1】:

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

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

    变成

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-21
      • 1970-01-01
      • 2021-11-21
      • 1970-01-01
      • 2014-07-25
      • 2019-09-19
      • 1970-01-01
      相关资源
      最近更新 更多