예제 #1
0
        private void button_test_Click(object sender, EventArgs e)
        {
            label_Test.Text = "Testing error: ";

            // button_Sample.Enabled = true;
            //  button_test.Enabled = false;

            countRow = 30;

            // чтение входных данных
            x = ReaderWriter.ReadMatrix("iris_test.txt", countRow, numInput);

            double[] d = ReaderWriter.ReadVector("iris_test.txt", countRow, numInput);
            D = new double[countRow, numOutput];
            RecD(d);

            // Тестирование сети
            errTest = rn.TestNetwork(x, D, countRow, numInput, numOutput, numHidden);

            Matrix result = rn.result;

            listBox1.Items.Clear();
            for (int i = 0; i < result.Row; i++)
            {
                String resultD = "";
                String resultY = "";
                for (int j = 0; j < result.Column; j++)
                {
                    resultY += result.Get(i, j).ToString() + " ";
                    resultD += D[i, j].ToString() + " ";
                }
                listBox1.Items.Add(resultD + " -----------------------------------------------------------------------------------> " + resultY);
            }
            label_Test.Text = "Testing error: " + errTest;
        }
예제 #2
0
        private void button1_Click(object sender, EventArgs e)
        {
            double dou = 0;

            listBox1.Items.Clear();
            for (int i = 0; i < 10; i++)
            {
                //Коэффициент обучение сети
                n = Convert.ToDouble(textBox_n.Text);

                //Объем обучающей выборки
                countRow  = Convert.ToInt32(textBox_X.Text);
                numHidden = Convert.ToInt32(textBox_C.Text);
                countIter = Convert.ToInt32(textBox1.Text);
                // чтение входных данных
                x = ReaderWriter.ReadMatrix(filename, countRow, numInput);
                double[] d = ReaderWriter.ReadVector(filename, countRow, numInput);
                D = new double[countRow, numOutput];
                RecD(d);

                //Инициализация центроид
                centroids = ReaderWriter.ReadMatrixC(filename, countRow, numInput, numHidden, d);

                rn           = new RBFNetwork(countRow, numInput, numHidden, numOutput, x, centroids, n, temp, er);
                rn.countIter = countIter;
                //Инициализация весов
                rn.SetWeight();

                // Обучение сети
                rn.TrainNetwork(x, centroids, countRow, numInput, numHidden, numOutput, D);

                er = rn.errTrain;


                countRow = 30;
                // чтение входных данных
                x = ReaderWriter.ReadMatrix("iris_test.txt", countRow, numInput);
                d = ReaderWriter.ReadVector("iris_test.txt", countRow, numInput);
                D = new double[countRow, numOutput];
                RecD(d);

                // Тестирование сети
                errTest = rn.TestNetwork(x, D, countRow, numInput, numOutput, numHidden);
                dou    += errTest;
                listBox1.Items.Add(errTest);
            }
            listBox1.Items.Add("Result: " + dou / 10);
        }
예제 #3
0
        private void button_Sample_Click(object sender, EventArgs e)
        {
            label_err.Text = "Learning error: ";

            label_Test.Text = "Testing error: ";


            n = Convert.ToDouble(textBox_n.Text);

            //Объем обучающей выборки
            countRow  = Convert.ToInt32(textBox_X.Text);
            numHidden = Convert.ToInt32(textBox_C.Text);
            countIter = Convert.ToInt32(textBox1.Text);

            x = ReaderWriter.ReadMatrix(filename, countRow, numInput);
            double[] d = ReaderWriter.ReadVector(filename, countRow, numInput);
            D = new double[countRow, numOutput];
            RecD(d);

            //Ин центроид
            centroids = ReaderWriter.ReadMatrixC(filename, countRow, numInput, numHidden, d);
            Console.WriteLine(centroids);
            rn = new RBFNetwork(countRow, numInput, numHidden, numOutput, x, centroids, n, temp, er);
            // Console.WriteLine(rn);
            rn.countIter = countIter;
            //Ин весов
            rn.SetWeight();

            rn.TrainNetwork(x, centroids, countRow, numInput, numHidden, numOutput, D);
            // Console.WriteLine(rn);
            er             = rn.errTrain;
            label_err.Text = "Learning error: " + er;
            temp           = rn.temp;


            //  button_Sample.Enabled = false;
            button_test.Enabled = true;
        }
예제 #4
0
        private void button1_Click(object sender, EventArgs e)
        {
            double dou = 0;

            //listBox1.Items.Clear();
            for (double q = 0.0001; q < 0.1; q = q + 0.005)
            {
                n   = q;
                dou = 0;
                //Объем обучающей выборки
                countRow  = Convert.ToInt32(textBox_X.Text);
                numHidden = Convert.ToInt32(textBox_C.Text);
                countIter = Convert.ToInt32(textBox1.Text);
                // чтение входных данных
                x = ReaderWriter.ReadMatrix(filename, countRow, numInput);
                double[] d = ReaderWriter.ReadVector(filename, countRow, numInput);
                D = new double[countRow, numOutput];
                RecountD(d);
                for (int i = 0; i < 10; i++)
                {
                    //Коэффициент обучение сети
                    // n = Convert.ToDouble(textBox_n.Text);
                    countRow  = Convert.ToInt32(textBox_X.Text);
                    numHidden = Convert.ToInt32(textBox_C.Text);
                    countIter = Convert.ToInt32(textBox1.Text);
                    // чтение входных данных
                    x = ReaderWriter.ReadMatrix(filename, countRow, numInput);
                    d = ReaderWriter.ReadVector(filename, countRow, numInput);
                    D = new double[countRow, numOutput];
                    RecountD(d);

                    //Инициализация центроид
                    // centroids = ReaderWriter.ReadMatrixC(filename, countRow, numInput, numHidden, d);

                    rn           = new NeuralNetwork(countRow, numInput, numHidden, numOutput, x, centroids, n, temp, er);
                    rn.countIter = countIter;
                    //Инициализация весов
                    rn.SetWeight();

                    // Обучение сети
                    //     rn.TrainNetwork(x, centroids, countRow, numInput, numHidden, numOutput, D);

                    er = rn.errTrain;


                    countRow = 30;
                    // чтение входных данных
                    x = ReaderWriter.ReadMatrix("iris_test.txt", countRow, numInput);
                    d = ReaderWriter.ReadVector("iris_test.txt", countRow, numInput);
                    D = new double[countRow, numOutput];
                    RecountD(d);

                    // Тестирование сети
                    errTest = rn.TestNetwork(x, D, countRow, numInput, numOutput, numHidden);
                    dou    += errTest;
                    // listBox1.Items.Add(errTest);
                }

                Console.WriteLine("(" + q + ";" + dou / 10 + ")");
                //   Console.WriteLine("(" + q +";" + dou / 10 + ")");
                //listBox1.Items.Add("Итого: " + dou / 10);
            }

            for (double q = 0.1; q < 1; q = q + 0.02)
            {
                n   = q;
                dou = 0;
                //Объем обучающей выборки
                countRow  = Convert.ToInt32(textBox_X.Text);
                numHidden = Convert.ToInt32(textBox_C.Text);
                countIter = Convert.ToInt32(textBox1.Text);
                // чтение входных данных
                x = ReaderWriter.ReadMatrix(filename, countRow, numInput);
                double[] d = ReaderWriter.ReadVector(filename, countRow, numInput);
                D = new double[countRow, numOutput];
                RecountD(d);
                for (int i = 0; i < 10; i++)
                {
                    //Коэффициент обучение сети
                    // n = Convert.ToDouble(textBox_n.Text);
                    countRow  = Convert.ToInt32(textBox_X.Text);
                    numHidden = Convert.ToInt32(textBox_C.Text);
                    countIter = Convert.ToInt32(textBox1.Text);
                    // чтение входных данных
                    x = ReaderWriter.ReadMatrix(filename, countRow, numInput);
                    d = ReaderWriter.ReadVector(filename, countRow, numInput);
                    D = new double[countRow, numOutput];
                    RecountD(d);

                    //Инициализация центроид
                    //  centroids = ReaderWriter.ReadMatrixC(filename, countRow, numInput, numHidden, d);

                    rn           = new NeuralNetwork(countRow, numInput, numHidden, numOutput, x, centroids, n, temp, er);
                    rn.countIter = countIter;
                    //Инициализация весов
                    rn.SetWeight();

                    // Обучение сети
                    //   rn.TrainNetwork(x, centroids, countRow, numInput, numHidden, numOutput, D);

                    er = rn.errTrain;


                    countRow = 30;
                    // чтение входных данных
                    x = ReaderWriter.ReadMatrix("iris_test.txt", countRow, numInput);
                    d = ReaderWriter.ReadVector("iris_test.txt", countRow, numInput);
                    D = new double[countRow, numOutput];
                    RecountD(d);

                    // Тестирование сети
                    errTest = rn.TestNetwork(x, D, countRow, numInput, numOutput, numHidden);
                    dou    += errTest;
                    // listBox1.Items.Add(errTest);
                }

                Console.WriteLine("(" + q + ";" + dou / 10 + ")");
                //   Console.WriteLine("(" + q +";" + dou / 10 + ")");
                // listBox1.Items.Add("Итого: " + dou / 10);
            }
        }