public void BuildTree(string fileName, string outputDirectory = "Output")
        {
            var data             = LoadDataFromfCSV(fileName);
            var decisionTreeName = Path.GetFileNameWithoutExtension(fileName);

            var algorithm = new C45Algorithm();
            var fixedData = TableFixedData.FromTableData(data);

            if (!Directory.Exists(outputDirectory))
            {
                Directory.CreateDirectory(outputDirectory);
            }

            var decisionalTree = algorithm.BuildConditionalTree(fixedData, new TreeOptions());

            var decisionTreeRenderer = new DecisionTreeRenderer();
            var bitmap = decisionTreeRenderer.RenderTree(decisionalTree, new Size(100, 50));
            var decisionTreeFileName = Path.Combine(outputDirectory, string.Format("{0}.jpg", decisionTreeName));

            bitmap.Save(decisionTreeFileName, ImageFormat.Jpeg);

            var img = new BitmapImage(new Uri(decisionTreeFileName, UriKind.RelativeOrAbsolute));

            img.Freeze();
            //img.EndInit();
            //mainGrid.Children.Remove(tree);
            tree.Source = img;
            tree.UpdateLayout();

            //tree = new Image {Source = img};
            //mainGrid.Children.Add(tree);
            //Grid.SetRow(tree,1);
            //Grid.SetColumn(tree, 1);
            txtMessage.Text = decisionalTree.ToPseudocode();
        }
Exemple #2
0
        public static void TestC45()
        {
            var data = LoadDataFromfCSV("Data2.csv");


            var algorithm = new C45Algorithm();
            var fixedData = TableFixedData.FromTableData(data);



            var decisionalTree = algorithm.BuildConditionalTree(fixedData, new TreeOptions());

            var decisionTreeRenderer = new DecisionTreeRenderer();
            var bitmap = decisionTreeRenderer.RenderTree(decisionalTree, new Size(100, 50));

            bitmap.Save("test.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);

            var pseudocode = decisionalTree.ToPseudocode();

            using (var textString = new StreamReader(@"C:\Research\Kaggle\Expedia\trainData\train.csv"))
            {
                while (!textString.EndOfStream)
                {
                    var line = textString.ReadLine();
                }
            }
        }
Exemple #3
0
        private static void Main(string[] args)
        {
            ExpediaReader reader = new ExpediaReader();

            var dateTime = DateTime.Parse("9/3/2015  5:09:54 PM");
            TestC45();

            TestSantander.TestData();

            //Tools.Test();

            var data = LoadDataFromfCSV("Data.csv");

               // TestNaiveBayes();
            var algorithm = new C45Algorithm();
            var fixedData = TableFixedData.FromTableData(data);

            // var val = algorithm.ComputeGain(data, "Attribute1");
            double splitValue;
            var delta = 0.0;

            var watch1 = new Stopwatch();
            var watch2 = new Stopwatch();

            var decisionalTree = algorithm.BuildConditionalTree(fixedData, new TreeOptions());
            var randomForestAlgorithm = new RandomForestAlgorithm(70, null);
            var forest = randomForestAlgorithm.BuildForest(fixedData);

            for (int index = 0; index < 50; index++)
            {
                //var className1 = ret1.GetClass(data.ToList()[8]);
                var row = data.ToList()[index];
                var estimatedClassName = decisionalTree.GetClass(row);
                var result = decisionalTree.Compute(row);

                var result2 = forest.Compute(row);
                var classsForest = fixedData.ClassesValue[forest.GetClass(row)];
                if (estimatedClassName != row.Class || classsForest!= row.Class)
                {
                   // missed++;
                }
            }

            for (int index = 0; index < 100; index++)
            {

                watch1.Start();
                var ret = algorithm.BuildConditionalTree(data, new TreeOptions());
                watch1.Stop();

                watch2.Start();
                var ret1 = algorithm.BuildConditionalTree(fixedData, new TreeOptions());
                watch2.Stop();

                //var className = ret.GetClass(data.ToList()[8]);
                var className1 = ret1.GetClass(data.ToList()[8]);

            }
            delta = watch1.Elapsed.Subtract(watch2.Elapsed).TotalMilliseconds;
        }
Exemple #4
0
        public static void TestC45()
        {
            var data = LoadDataFromfCSV("Data2.csv");

            var algorithm = new C45Algorithm();
            var fixedData = TableFixedData.FromTableData(data);

            var decisionalTree = algorithm.BuildConditionalTree(fixedData, new TreeOptions());

            var decisionTreeRenderer = new DecisionTreeRenderer();
            var bitmap = decisionTreeRenderer.RenderTree(decisionalTree, new Size(100, 50));
            bitmap.Save("test.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);

            var pseudocode = decisionalTree.ToPseudocode();

            using (var textString = new StreamReader(@"C:\Research\Kaggle\Expedia\trainData\train.csv"))
            {
                while (!textString.EndOfStream)
                {
                    var line = textString.ReadLine();
                }
            }
        }
        public void BuildTree(string fileName, string outputDirectory = "Output")
        {
            var data = LoadDataFromfCSV(fileName);
            var decisionTreeName = Path.GetFileNameWithoutExtension(fileName);

            var algorithm = new C45Algorithm();
            var fixedData = TableFixedData.FromTableData(data);

            if (!Directory.Exists(outputDirectory))
            {
                Directory.CreateDirectory(outputDirectory);
            }

            var decisionalTree = algorithm.BuildConditionalTree(fixedData, new TreeOptions());

            var decisionTreeRenderer = new DecisionTreeRenderer();
            var bitmap = decisionTreeRenderer.RenderTree(decisionalTree, new Size(100, 50));
            var decisionTreeFileName = Path.Combine(outputDirectory, string.Format("{0}.jpg", decisionTreeName));
            bitmap.Save(decisionTreeFileName, ImageFormat.Jpeg);

            var img = new BitmapImage(new Uri(decisionTreeFileName, UriKind.RelativeOrAbsolute));

            img.Freeze();
            //img.EndInit();
            //mainGrid.Children.Remove(tree);
            tree.Source = img;
            tree.UpdateLayout();

            //tree = new Image {Source = img};
            //mainGrid.Children.Add(tree);
            //Grid.SetRow(tree,1);
            //Grid.SetColumn(tree, 1);
            txtMessage.Text = decisionalTree.ToPseudocode();
        }
Exemple #6
0
        private static void Main(string[] args)
        {
            ExpediaReader reader = new ExpediaReader();

            var dateTime = DateTime.Parse("9/3/2015  5:09:54 PM");

            TestC45();

            TestSantander.TestData();

            //Tools.Test();


            var data = LoadDataFromfCSV("Data.csv");

            // TestNaiveBayes();
            var algorithm = new C45Algorithm();
            var fixedData = TableFixedData.FromTableData(data);


            // var val = algorithm.ComputeGain(data, "Attribute1");
            double splitValue;
            var    delta = 0.0;

            var watch1 = new Stopwatch();
            var watch2 = new Stopwatch();


            var decisionalTree        = algorithm.BuildConditionalTree(fixedData, new TreeOptions());
            var randomForestAlgorithm = new RandomForestAlgorithm(70, null);
            var forest = randomForestAlgorithm.BuildForest(fixedData);

            for (int index = 0; index < 50; index++)
            {
                //var className1 = ret1.GetClass(data.ToList()[8]);
                var row = data.ToList()[index];
                var estimatedClassName = decisionalTree.GetClass(row);
                var result             = decisionalTree.Compute(row);

                var result2      = forest.Compute(row);
                var classsForest = fixedData.ClassesValue[forest.GetClass(row)];
                if (estimatedClassName != row.Class || classsForest != row.Class)
                {
                    // missed++;
                }
            }


            for (int index = 0; index < 100; index++)
            {
                watch1.Start();
                var ret = algorithm.BuildConditionalTree(data, new TreeOptions());
                watch1.Stop();


                watch2.Start();
                var ret1 = algorithm.BuildConditionalTree(fixedData, new TreeOptions());
                watch2.Stop();

                //var className = ret.GetClass(data.ToList()[8]);
                var className1 = ret1.GetClass(data.ToList()[8]);
            }
            delta = watch1.Elapsed.Subtract(watch2.Elapsed).TotalMilliseconds;
        }