2
我在golearn示例文件夾中玩弄了knnclassifier_iris.go示例。我用我自己的一個替換了虹膜數據集,並且只要我根據讀取的某些百分比的數據訓練我的數據,所有函數都可以正常工作,並獲得一些輸出。但是,當我清楚地提到訓練和測試數據集,然後在擬合訓練數據集後對測試數據集進行預測時,當我嘗試打印預測時,我得到的結果爲零。我不知道爲什麼我會得到一個零值,所以我會很感激一些幫助。在golearn中使用.Predict()函數時獲取<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))
}