如何在 golearn 中使用经过训练的二进制文件

Joe*_*Joe 7 go

我在 csv 中有这个训练数据:

RoomType, HasWater
bathroom, true
living_room, false
storage, false
kitchen, true
...
Run Code Online (Sandbox Code Playgroud)

使用 golearn 训练数据。决策树(不确定决策树是否正确?)

func TrainData() {
...
    //Do a training-test split
    trainData, testData := base.InstancesTrainTestSplit(rawData, 0.50)
    tree := trees.NewID3DecisionTree(0.6)
...
    tree.Save('decissiontree.h')
}
Run Code Online (Sandbox Code Playgroud)

所以我将结果保存到这个二进制文件中。

我希望能够使用房间有水或没有水的概率的标签(房间类型)查询我的文件。

func HasWater(roomType: string):float64 {
    tree := trees.NewID3DecisionTree(0.6)
    tree.Load("model.h");
   // What next??
}
Run Code Online (Sandbox Code Playgroud)

我在 golearn 中没有找到任何示例,说明您如何实际使用经过训练的二进制文件。我想我应该加载文件。但是然后呢?

对不起,基本问题。对 ML(和 GO)来说是全新的。

joe*_*zar 0

一种可能的方法是创建一个包含值的 csv 文件,您要对这些值进行预测并运行Predict这些值:

    testData, err = base.ParseCSVToInstances("test.csv", false)
    if err != nil {
        panic(err)
    }

    _, testDataInstance = base.InstancesTrainTestSplit(testData, 1.0)

    preds = tree.Predict(testDataInstance)

    fmt.Println(preds.RowString(0))
Run Code Online (Sandbox Code Playgroud)

以下内容在哪里test.csv

bathroom, false
Run Code Online (Sandbox Code Playgroud)