func readMnist() (*base.DenseInstances, *base.DenseInstances) { // Create the class Attribute classAttrs := make(map[int]base.Attribute) classAttrs[0] = base.NewCategoricalAttribute() classAttrs[0].SetName("label") // Setup the class Attribute to be in its own group classAttrGroups := make(map[string]string) classAttrGroups["label"] = "ClassGroup" // The rest can go in a default group attrGroups := make(map[string]string) inst1, err := base.ParseCSVToInstancesWithAttributeGroups( "../examples/datasets/mnist_train.csv", attrGroups, classAttrGroups, classAttrs, true, ) if err != nil { panic(err) } inst2, err := base.ParseCSVToTemplatedInstances( "../examples/datasets/mnist_test.csv", true, inst1, ) if err != nil { panic(err) } return inst1, inst2 }
func TestKnnClassifierWithTemplatedInstances1Subset(t *testing.T) { Convey("Given two basically identical files...", t, func() { trainingData, err := base.ParseCSVToInstances("knn_train_2.csv", true) So(err, ShouldBeNil) testingData, err := base.ParseCSVToTemplatedInstances("knn_test_2_subset.csv", true, trainingData) So(err, ShouldBeNil) cls := NewKnnClassifier("euclidean", 2) cls.Fit(trainingData) predictions := cls.Predict(testingData) So(predictions, ShouldNotBeNil) }) }