public void Export(TreeGenerative tree, string path) { FileInfo fi = new FileInfo(path); if (fi.Exists) { fi.Delete(); } _featureNames = tree.Root.Set.GetFeatureNames(); _resolutionFeatureName = tree.ResolutionFeatureName; using (OfficeOpenXml.ExcelPackage xls = new OfficeOpenXml.ExcelPackage(fi)) { OfficeOpenXml.ExcelWorksheet sheet = xls.Workbook.Worksheets.Add("Classified"); for (int j = 0; j < _featureNames.Count; j++) { sheet.Cells[1, j + 1].Value = _featureNames[j]; } sheet.Cells[1, _featureNames.Count + 1].Value = "Category"; sheet.Cells[1, _featureNames.Count + 2].Value = string.Format("Delta({0})", _resolutionFeatureName); ExportRecursion(tree.Root, sheet); xls.Save(); } var exportCompleted = ExportCompleted; if (exportCompleted != null) { exportCompleted(this, fi.Name); } }
public void Build_ExcelParser_RSS() { // arrange FillItemSet_ExcelParser(); ISplitter splitter = new SplitterRss(); TreeBuilder builder = new TreeBuilder("Z", 10, new NameGenerator(), splitter); // act TreeGenerative tree = builder.Build(_set); // assert Assert.IsNotNull(tree); Assert.IsTrue(tree.FeatureNames.Count > 0); }
public void Build_Gini() { // arrange FillItemSet_Features4_Items15(); ISplitter splitter = new SplitterGini(); TreeBuilder builder = new TreeBuilder("F1", 5, new NameGenerator(), splitter); // act TreeGenerative tree = builder.Build(_set); // assert Assert.IsNotNull(tree); Assert.IsTrue(tree.FeatureNames.Count > 0); Assert.AreEqual(4, tree.FeatureNames.Count); }
public int GenerateTrees(int count, string resolutionFeatureName, int maxItemCountInCategory, float itemSubsetCountRatio) { _trees.Clear(); var nameGenerator = new NameGenerator(); _treeBulder = new TreeBuilder(resolutionFeatureName, maxItemCountInCategory, nameGenerator, _splitter); for (int i = 0; i < count; i++) { ItemNumericalSet subset = _set.GetRandomSubset(itemSubsetCountRatio, true); TreeGenerative tg = _treeBulder.Build(subset); _trees.Add(tg.ToTree()); nameGenerator.Reset(); } return(TreeCount()); }
public void Export_ExportToTxt() { // arrange ISplitter splitter = new SplitterRss(); ItemNumericalSet set = ExcelParser.ParseItemNumericalSet(@"data\test-4x15.xlsx"); TreeBuilder builder = new TreeBuilder("F1", 5, new Lib.NameGenerator(), splitter); TreeGenerative tree = builder.Build(set); tree.ExportStrategy = new ExportToTxt(); DirectoryInfo di = new DirectoryInfo("temp"); if (!di.Exists) { di.Create(); } // act tree.Export(@"temp\test-4x15.txt"); // assert }
public void Export_ExportToJson() { // arrange string name = "test-2x90-sin"; ISplitter splitter = new SplitterRss(); ItemNumericalSet set = ExcelParser.ParseItemNumericalSet(string.Format(@"data\{0}.xlsx", name)); TreeBuilder builder = new TreeBuilder("Y", 5, new Lib.NameGenerator(), splitter); TreeGenerative tree = builder.Build(set); tree.ExportStrategy = new ExportToJson(); DirectoryInfo di = new DirectoryInfo("temp"); if (!di.Exists) { di.Create(); } // act tree.Export(string.Format(@"temp\{0}.json", name)); // assert }
public void Export(TreeGenerative tree, string path) { FileInfo fi = new FileInfo(path); if (fi.Exists) { fi.Delete(); } using (StreamWriter sw = new StreamWriter(fi.FullName)) { sw.WriteLine(string.Format("[{0}]", tree.Root.Set.Count())); ExportRecursion(sw, tree.Root, 1); sw.Close(); } var exportCompleted = ExportCompleted; if (exportCompleted != null) { exportCompleted(this, fi.Name); } }
public void Export(TreeGenerative tree, string path) { FileInfo fi = new FileInfo(path); if (fi.Exists) { fi.Delete(); } string json = JsonConvert.SerializeObject(tree.ToTree(), Formatting.Indented); using (StreamWriter sw = new StreamWriter(fi.FullName)) { sw.WriteLine(json); sw.Close(); } var exportCompleted = ExportCompleted; if (exportCompleted != null) { exportCompleted(this, fi.Name); } }
public int GenerateTreesTPL(int treeCount, string resolutionFeatureName, int maxItemCountInCategory, float itemSubsetCountRatio) { _trees.Clear(); Parallel.For(0, treeCount, (i) => { NameGenerator nameGenerator = new NameGenerator(); ItemNumericalSet subset = _set.GetRandomSubset(itemSubsetCountRatio, true); _treeBulder = new TreeBuilder(resolutionFeatureName, maxItemCountInCategory, nameGenerator, _splitter); _treeBulder.BuildComplete += OnTreeBuildComplete; TreeGenerative tg = _treeBulder.Build(subset); _treeBulder.BuildComplete -= OnTreeBuildComplete; _trees.Add(tg.ToTree()); }); var forestGrowComplete = ForestGrowComplete; if (forestGrowComplete != null) { forestGrowComplete(this, EventArgs.Empty); } return(TreeCount()); }