func runRandomForest() { oobStatsFile := OOBStatsFile perfFile := PerfFile statFile := StatFile trainset, testset := getSamples() if MaxFeature < 0 { MaxFeature = trainset.GetNColumn() } for nfeature := MinFeature; nfeature < MaxFeature; nfeature++ { // Add prefix to OOB stats file. oobStatsFile = fmt.Sprintf("N%d.%s", nfeature, OOBStatsFile) // Add prefix to performance file. perfFile = fmt.Sprintf("N%d.%s", nfeature, PerfFile) // Add prefix to stat file. statFile = fmt.Sprintf("N%d.%s", nfeature, StatFile) // Create and build random forest. forest := rf.Runtime{ Runtime: classifier.Runtime{ RunOOB: RunOOB, OOBStatsFile: oobStatsFile, PerfFile: perfFile, StatFile: statFile, }, NTree: NTree, NRandomFeature: nfeature, PercentBoot: NBootstrap, } e := forest.Build(trainset) if e != nil { log.Fatal(e) } if DoTest { predicts, _, probs := forest.ClassifySet(testset, nil) forest.Performance(testset, predicts, probs) e = forest.WritePerformance() if e != nil { log.Fatal(e) } } } }