public void TestXGBoostNaiveEvaluate() { var filename = @"../../../../datasets/xgboost/model_xbg_trees.txt"; var treesString = File.ReadAllText(filename); var model = XGBoostNaive.Create(treesString); var filename2 = @"../../../../datasets/xgboost/xgboost_test_cases_no_feature_names.txt"; var samplesString = File.ReadLines(filename2); var samples = new Dictionary <string, double[]>(); foreach (var line in samplesString.Skip(1)) { var parts = line.Split(','); var sample = parts[0]; var featureIndex = int.Parse(parts[1]); var value = float.Parse(parts[2]); if (!samples.ContainsKey(sample)) { samples.Add(sample, new double[1000]); } samples[sample][featureIndex] = value; } const int probablity_feature_index = 840; var timer = Stopwatch.StartNew(); foreach (var sample in samples) { var actual = model.EvaluateProbability(sample.Value); var expected = sample.Value[probablity_feature_index]; Assert.InRange(actual, expected - 1e-06, expected + 1e-06); } timer.Stop(); output.WriteLine($"Time taken for {samples.Count} evaluations: {timer.Elapsed.TotalMilliseconds} ms"); }
public void TestXGBoostNaiveTiming() { var filename = @"../../../../datasets/xgboost/model_xbg_trees.txt"; var treesString = File.ReadAllText(filename); var model = XGBoostNaive.Create(treesString); var filename2 = @"../../../../datasets/xgboost/xgboost_test_cases_no_feature_names.txt"; var samplesString = File.ReadLines(filename2); var samples = new Dictionary <string, double[]>(); foreach (var line in samplesString.Skip(1)) { var parts = line.Split(','); var sample = parts[0]; var featureIndex = int.Parse(parts[1]); var value = float.Parse(parts[2]); if (!samples.ContainsKey(sample)) { samples.Add(sample, new double[1000]); } samples[sample][featureIndex] = value; } var inputs = samples.Select(m => m.Value).ToArray(); var timer = Stopwatch.StartNew(); foreach (var sample in inputs) { model.EvaluateProbability(sample); } timer.Stop(); output.WriteLine($"{nameof(TestXGBoostNaiveTiming)} - Time taken for {samples.Count} evaluations: {timer.Elapsed.TotalMilliseconds} ms"); }
public void TestXGBoostNaiveCreate() { var filename = @"../../../../datasets/xgboost/model_xbg_trees.txt"; var treesString = File.ReadAllText(filename); var model = XGBoostNaive.Create(treesString); // TODO: ensure correctness of each tree }