Пример #1
0
        static void Main(string[] args)
        {
            try
            {
                // Get the data for initial
                var datasetColumns = new DataSetColumns();
                PopulateDataSet(datasetColumns);

                // Learn about your data
                UnderstandData(datasetColumns);

                // Find Correlations
                //FindCorrelations(datasetColumns);

                //Do Binary Classification
                //var predictor = ModelAndTrain();

                // Evaluate Results
                //EvaluateModel(predictor);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
            Console.WriteLine("Execution Complete -- Press Enter");
            Console.ReadLine();
        }
Пример #2
0
        public static void FindCorrelations(DataSetColumns dataSetColumns)
        {
            var pcc = PearsonCoefficientCalculator.ComputeCoefficient(dataSetColumns.AvgTotalBytes, dataSetColumns.AvgTotalPackets);

            Console.WriteLine("Pearson coefficient between AvgTotalBytes and AvgTotalPackets");
            Console.WriteLine(pcc);

            pcc = PearsonCoefficientCalculator.ComputeCoefficient(dataSetColumns.AvgOutPercentUtil, dataSetColumns.AvgInPercentUtil);
            Console.WriteLine("Pearson coefficient between AvgOutPercentUtil and AvgInPercentUtil");
            Console.WriteLine(pcc);
        }
Пример #3
0
        public static void PopulateDataSet(DataSetColumns dataSetColumns)
        {
            var AvgTotalBytes     = new List <double>();
            var AvgTotalPackets   = new List <double>();
            var AvgAveragebps     = new List <double>();
            var AvgOutPercentUtil = new List <double>();
            var AvgInPercentUtil  = new List <double>();
            var AvgPercentUtil    = new List <double>();
            var MinTotalBytes     = new List <double>();
            var MinTotalPackets   = new List <double>();
            var MinAveragebps     = new List <double>();
            var MinOutPercentUtil = new List <double>();
            var MinInPercentUtil  = new List <double>();
            var MinPercentUtil    = new List <double>();
            var MaxTotalBytes     = new List <double>();
            var MaxTotalPackets   = new List <double>();
            var MaxAveragebps     = new List <double>();
            var MaxOutPercentUtil = new List <double>();
            var MaxInPercentUtil  = new List <double>();
            var MaxPercentUtil    = new List <double>();
            var NextHourAlert     = new List <int>();

            using (var reader = new StreamReader(_datapath))
            {
                reader.ReadLine(); // headers
                while (!reader.EndOfStream)
                {
                    var line   = reader.ReadLine();
                    var values = line.Split(',');
                    AvgTotalBytes.Add(double.Parse(values[2]));
                    AvgTotalPackets.Add(double.Parse(values[3]));
                    AvgAveragebps.Add(double.Parse(values[4]));
                    AvgOutPercentUtil.Add(double.Parse(values[5]));
                    AvgInPercentUtil.Add(double.Parse(values[6]));
                    AvgPercentUtil.Add(double.Parse(values[7]));
                    MinTotalBytes.Add(double.Parse(values[8]));
                    MinTotalPackets.Add(double.Parse(values[9]));
                    MinAveragebps.Add(double.Parse(values[10]));
                    MinOutPercentUtil.Add(double.Parse(values[11]));
                    MinInPercentUtil.Add(double.Parse(values[12]));
                    MinPercentUtil.Add(double.Parse(values[13]));
                    MaxTotalBytes.Add(double.Parse(values[14]));
                    MaxTotalPackets.Add(double.Parse(values[15]));
                    MaxAveragebps.Add(double.Parse(values[16]));
                    MaxOutPercentUtil.Add(double.Parse(values[17]));
                    MaxInPercentUtil.Add(double.Parse(values[18]));
                    MaxPercentUtil.Add(double.Parse(values[19]));
                    NextHourAlert.Add(int.Parse(values[20]));
                }
            }
            dataSetColumns.AvgTotalBytes     = AvgTotalBytes.ToArray();
            dataSetColumns.AvgTotalPackets   = AvgTotalPackets.ToArray();
            dataSetColumns.AvgAveragebps     = AvgAveragebps.ToArray();
            dataSetColumns.AvgOutPercentUtil = AvgOutPercentUtil.ToArray();
            dataSetColumns.AvgInPercentUtil  = AvgInPercentUtil.ToArray();
            dataSetColumns.AvgPercentUtil    = AvgPercentUtil.ToArray();
            dataSetColumns.MinTotalBytes     = MinTotalBytes.ToArray();
            dataSetColumns.MinTotalPackets   = MinTotalPackets.ToArray();
            dataSetColumns.MinAveragebps     = MinAveragebps.ToArray();
            dataSetColumns.MinOutPercentUtil = MinOutPercentUtil.ToArray();
            dataSetColumns.MinInPercentUtil  = MinInPercentUtil.ToArray();
            dataSetColumns.MinPercentUtil    = MinPercentUtil.ToArray();
            dataSetColumns.MaxTotalBytes     = MaxTotalBytes.ToArray();
            dataSetColumns.MaxTotalPackets   = MaxTotalPackets.ToArray();
            dataSetColumns.MaxAveragebps     = MaxAveragebps.ToArray();
            dataSetColumns.MaxOutPercentUtil = MaxOutPercentUtil.ToArray();
            dataSetColumns.MaxInPercentUtil  = MaxInPercentUtil.ToArray();
            dataSetColumns.MaxPercentUtil    = MaxPercentUtil.ToArray();
            dataSetColumns.NextHourAlert     = NextHourAlert.ToArray();
        }
Пример #4
0
        /// <summary>
        /// This method reads the training data and calculates a variety of statistical data about each column.
        /// </summary>
        public static void UnderstandData(DataSetColumns dataSetColumns)
        {
            //Calculate and output the statistics for your pleasure
            var stats = MetricStatistics.CalculateMetricStatisticsAsync(dataSetColumns.AvgTotalBytes, DateTime.Now, TimeSpan.FromSeconds(1)).Result;

            Console.WriteLine("AvgTotalBytes Statistics:");
            Console.WriteLine(stats.ToString());
            stats = MetricStatistics.CalculateMetricStatisticsAsync(dataSetColumns.AvgTotalPackets, DateTime.Now, TimeSpan.FromSeconds(1)).Result;
            Console.WriteLine("AvgTotalPackets Statistics:");
            Console.WriteLine(stats.ToString());
            stats = MetricStatistics.CalculateMetricStatisticsAsync(dataSetColumns.AvgAveragebps, DateTime.Now, TimeSpan.FromSeconds(1)).Result;
            Console.WriteLine("AvgAveragebps Statistics:");
            Console.WriteLine(stats.ToString());
            stats = MetricStatistics.CalculateMetricStatisticsAsync(dataSetColumns.AvgOutPercentUtil, DateTime.Now, TimeSpan.FromSeconds(1)).Result;
            Console.WriteLine("AvgOutPercentUtil Statistics:");
            Console.WriteLine(stats.ToString());
            stats = MetricStatistics.CalculateMetricStatisticsAsync(dataSetColumns.AvgInPercentUtil, DateTime.Now, TimeSpan.FromSeconds(1)).Result;
            Console.WriteLine("AvgInPercentUtil Statistics:");
            Console.WriteLine(stats.ToString());
            stats = MetricStatistics.CalculateMetricStatisticsAsync(dataSetColumns.AvgPercentUtil, DateTime.Now, TimeSpan.FromSeconds(1)).Result;
            Console.WriteLine("AvgPercentUtil Statistics:");
            Console.WriteLine(stats.ToString());
            stats = MetricStatistics.CalculateMetricStatisticsAsync(dataSetColumns.MinTotalBytes, DateTime.Now, TimeSpan.FromSeconds(1)).Result;
            Console.WriteLine("MinTotalBytes Statistics:");
            Console.WriteLine(stats.ToString());
            stats = MetricStatistics.CalculateMetricStatisticsAsync(dataSetColumns.MinTotalPackets, DateTime.Now, TimeSpan.FromSeconds(1)).Result;
            Console.WriteLine("MinTotalPackets Statistics:");
            Console.WriteLine(stats.ToString());
            stats = MetricStatistics.CalculateMetricStatisticsAsync(dataSetColumns.MinAveragebps, DateTime.Now, TimeSpan.FromSeconds(1)).Result;
            Console.WriteLine("MinAveragebps Statistics:");
            Console.WriteLine(stats.ToString());
            stats = MetricStatistics.CalculateMetricStatisticsAsync(dataSetColumns.MinOutPercentUtil, DateTime.Now, TimeSpan.FromSeconds(1)).Result;
            Console.WriteLine("MinOutPercentUtil Statistics:");
            Console.WriteLine(stats.ToString());
            stats = MetricStatistics.CalculateMetricStatisticsAsync(dataSetColumns.MinInPercentUtil, DateTime.Now, TimeSpan.FromSeconds(1)).Result;
            Console.WriteLine("MinInPercentUtil Statistics:");
            Console.WriteLine(stats.ToString());
            stats = MetricStatistics.CalculateMetricStatisticsAsync(dataSetColumns.MinPercentUtil, DateTime.Now, TimeSpan.FromSeconds(1)).Result;
            Console.WriteLine("MinPercentUtil Statistics:");
            Console.WriteLine(stats.ToString());
            stats = MetricStatistics.CalculateMetricStatisticsAsync(dataSetColumns.MaxTotalBytes, DateTime.Now, TimeSpan.FromSeconds(1)).Result;
            Console.WriteLine("MaxTotalBytes Statistics:");
            Console.WriteLine(stats.ToString());
            stats = MetricStatistics.CalculateMetricStatisticsAsync(dataSetColumns.MaxTotalPackets, DateTime.Now, TimeSpan.FromSeconds(1)).Result;
            Console.WriteLine("MaxTotalPackets Statistics:");
            Console.WriteLine(stats.ToString());
            stats = MetricStatistics.CalculateMetricStatisticsAsync(dataSetColumns.MaxAveragebps, DateTime.Now, TimeSpan.FromSeconds(1)).Result;
            Console.WriteLine("MaxAveragebps Statistics:");
            Console.WriteLine(stats.ToString());
            stats = MetricStatistics.CalculateMetricStatisticsAsync(dataSetColumns.MaxOutPercentUtil, DateTime.Now, TimeSpan.FromSeconds(1)).Result;
            Console.WriteLine("MaxOutPercentUtil Statistics:");
            Console.WriteLine(stats.ToString());
            stats = MetricStatistics.CalculateMetricStatisticsAsync(dataSetColumns.MaxInPercentUtil, DateTime.Now, TimeSpan.FromSeconds(1)).Result;
            Console.WriteLine("MaxInPercentUtil Statistics:");
            Console.WriteLine(stats.ToString());
            stats = MetricStatistics.CalculateMetricStatisticsAsync(dataSetColumns.MaxPercentUtil, DateTime.Now, TimeSpan.FromSeconds(1)).Result;
            Console.WriteLine("MaxPercentUtil Statistics:");
            Console.WriteLine(stats.ToString());
            stats = MetricStatistics.CalculateMetricStatisticsAsync(dataSetColumns.NextHourAlert, DateTime.Now, TimeSpan.FromSeconds(1)).Result;
            Console.WriteLine("NextHourAlert Statistics:");
            Console.WriteLine(stats.ToString());
        }