コード例 #1
0
 private void interfaceOfDBToolStripMenuItem_Click(object sender, EventArgs e)
 {
     try
     {
         DataBaseND db = new DataBaseND()
         {
             nameDB = "BDUsersND.db"
         };
         db.ConnectionBD();
         if (db.FindUserStatus() != 0)
         {
             InterfaceAdminBDND interfaceAdminDB = new InterfaceAdminBDND(options);
             interfaceAdminDB.Show();
         }
         else
         {
             if (options.language)
             {
                 MessageBox.Show("Вы не авторизовались.");
             }
             else
             {
                 MessageBox.Show("You are not authorization.");
             }
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
コード例 #2
0
        public static void CalculareFrociniCriterion(List <KeyValuePair <DateTime, double> > data, double standartDeviation, double expectedValue, out double criterion, out double criticalCriterion, string signLevel)
        {
            standartDeviation = Math.Sqrt(data.Sum(item => Math.Pow(item.Value - expectedValue, 2)) / (data.Count));
            var z = (from item in data
                     select(item.Value - expectedValue) / standartDeviation);
            DataBaseND db = new DataBaseND()
            {
                nameDB = "DBCriterionND.db"
            };

            db.ConnectionBD();
            int id_laplas = 2;
            Dictionary <double, double> laplasValues = db.CriterionValue("0", id_laplas);

            db.CloseConnectionDB();
            var f = (from item in z
                     select(0.5 + FindLaplFunctionValue(laplasValues, item))).ToList();
            double sum = 0;

            for (int index = 1; index <= f.Count(); index++)
            {
                sum += Math.Abs(f[index - 1] - (Convert.ToDouble(index) - 0.5) / Convert.ToDouble(f.Count()));
            }
            if (f.Count() < 5)
            {
                throw new Exception("Данных слишком мало. Необходимо хотя бы больше 5.");
            }
            int count;

            if (f.Count() > 21)
            {
                count = 21;
            }
            else
            {
                count = f.Count();
            }
            int id_criterion = 4;

            criticalCriterion = FindCriticalK(count, id_criterion, signLevel);
            double sqrt_countData = Math.Sqrt(f.Count());

            criterion = (1 / sqrt_countData) * sum;
        }
コード例 #3
0
ファイル: Data.cs プロジェクト: MTETERIN/DataMiningOffLine
        public Data()
        {
            if (!string.IsNullOrEmpty(Properties.Settings.Default.Languages))
            {
                System.Threading.Thread.CurrentThread.CurrentUICulture =
                    System.Globalization.CultureInfo.GetCultureInfo(Properties.Settings.Default.Languages);
                System.Threading.Thread.CurrentThread.CurrentCulture =
                    System.Globalization.CultureInfo.GetCultureInfo(Properties.Settings.Default.Languages);
            }
            //костыль с базой данных для статистического анализа
            DataBaseND db = new DataBaseND()
            {
                nameDB = "Resources\\BDUsersND.db"
            };

            db.UpdateUserStatus();
            db.CloseConnectionDB();
            InitializeComponent();
        }
コード例 #4
0
        public static void CalculateKolmogorovSmirnovCriterion(List <KeyValuePair <DateTime, double> > data, double standartDeviation, double expectedValue, out double criterion, out double criticalCriterion, string signLevel)
        {
            standartDeviation = Math.Sqrt(data.Sum(item => Math.Pow(item.Value - expectedValue, 2)) / (data.Count));
            var z = (from item in data
                     select(item.Value - expectedValue) / standartDeviation);
            DataBaseND db = new DataBaseND()
            {
                nameDB = "DBCriterionND.db"
            };

            db.ConnectionBD();
            int id_laplas = 2;
            Dictionary <double, double> laplasValues = db.CriterionValue("0", id_laplas);

            db.CloseConnectionDB();
            var f = (from item in z
                     select(0.5 + FindLaplFunctionValue(laplasValues, item))).ToList();
            List <double> d_plus  = new List <double>();
            List <double> d_minus = new List <double>();

            for (int index = 1; index <= f.Count(); index++)
            {
                d_plus.Add(Convert.ToDouble(index) / Convert.ToDouble(f.Count()) - f[index - 1]);
                d_minus.Add(f[index - 1] - Convert.ToDouble((index - 1)) / Convert.ToDouble(f.Count()));
            }
            double d_n;

            if (d_plus.Max() > d_minus.Max())
            {
                d_n = d_plus.Max();
            }
            else
            {
                d_n = d_minus.Max();
            }
            int id_criterion = 3;

            criticalCriterion = FindCriticalK(0, id_criterion, signLevel);
            double sqrt_countData = Math.Sqrt(f.Count());

            criterion = d_n * (sqrt_countData - 0.01 + (0.85 / sqrt_countData));
        }
コード例 #5
0
        public static void CalculatePirsonCriteria(List <KeyValuePair <DateTime, double> > data, List <KeyValuePair <string, double> > columns,
                                                   double standartDeviation, double expectedValue, double delta, out double criterion, out double criticalCriterion, string signLevel)
        {
            DataBaseND db = new DataBaseND()
            {
                nameDB = "DBCriterionND.db"
            };

            db.ConnectionBD();
            Dictionary <double, double> laplasValues = db.CriterionValue("0", 2);

            db.CloseConnectionDB();

            /*var tmp = manager.GetString("lapl").Split(new string[] { Environment.NewLine },
             *  StringSplitOptions.RemoveEmptyEntries).Select(item => item.Replace(".", ","));*/
            // var tmp = File.ReadAllLines("lapl.txt").Select(item => item.Replace('.', ','));

            /* foreach (var item in tmp)
             *   laplasValues.Add(double.Parse(item.Split(' ')[0], new CultureInfo("ru-RU")), double.Parse(item.Split(' ')[1], new CultureInfo("ru-RU")));*/
            /*var xAvg = (from item in columns
             *          let xLeft = double.Parse(item.Key.Split(new string[] { " - " }, StringSplitOptions.RemoveEmptyEntries)[0])
             *          let xRight = double.Parse(item.Key.Split(new string[] { " - " }, StringSplitOptions.RemoveEmptyEntries)[1])
             *          let xCenter = (xRight + xLeft) / 2
             *          select xCenter * item.Value * data.Count).Sum() / data.Count;*/
            var x1 = (from item in columns
                      let xi = double.Parse(item.Key.Split(new string[] { " - " }, StringSplitOptions.RemoveEmptyEntries)[0])
                               select(xi - expectedValue) / standartDeviation);
            var x2 = (from item in columns
                      let xi = double.Parse(item.Key.Split(new string[] { " - " }, StringSplitOptions.RemoveEmptyEntries)[1])
                               select(xi - expectedValue) / standartDeviation);
            var p = (from item in x1.Zip(x2, (first, second) => new { item1 = first, item2 = second })
                     select(FindLaplFunctionValue(laplasValues, item.item2) - FindLaplFunctionValue(laplasValues, item.item1)) * data.Count);
            var k = (from item in columns.Zip(p, (first, second) => new { item1 = first, item2 = second })
                     select Math.Pow((item.item1.Value * data.Count * delta) - item.item2, 2) / item.item2);
            double sumK  = k.Sum();
            double critK = FindCriticalK(columns.Count - 2 - 1, 1, signLevel);

            criterion         = sumK;
            criticalCriterion = critK;
            var c = (from item in columns
                     select(item.Value * delta * data.Count));
        }
コード例 #6
0
        static double FindCriticalK(int freedomDegree, int ID, string signLevel)
        {
            DataBaseND db = new DataBaseND()
            {
                nameDB = "DBCriterionND.db"
            };

            db.ConnectionBD();
            Dictionary <double, double> criticalValues = db.CriterionValue(signLevel, ID);

            /* var tmp = manager.GetString("xiSQR").Split(new string[] { Environment.NewLine },
             *  StringSplitOptions.RemoveEmptyEntries);
             * tmp = tmp.Select(item => item.Replace(".", ",")).ToArray();*/
            /*Dictionary<int, double> criticalValues = new Dictionary<int, double>();
             * foreach (var item in tmp)
             *  criticalValues.Add(int.Parse(item.Split(' ')[0]), double.Parse(item.Split(' ')[1], new CultureInfo("ru-RU")));*/
            if (freedomDegree < 0 || !criticalValues.ContainsKey(Convert.ToDouble(freedomDegree)))
            {
                return(double.NegativeInfinity);
            }
            return(criticalValues[freedomDegree]);
        }