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); } }
private void button_test_Click(object sender, EventArgs e) { countRow = (int)(countRow * 1.05); label_Test.Text = "Testing error: "; if (checkBox1.Checked == true) { CreateValues("dollar.txt"); } else { CreateValues(); } double[] d = new double[D.GetLength(0)]; for (int i = 0; i < d.Length; i++) { d[i] = D[i, 0]; } // Тестирование сети errTest = rn.TestNetwork(x, D, countRow, numInput, numOutput, numHidden); Matrix result = rn.result; //listBox1.Items.Clear(); if (chart1.Series.Count != 2) { chart1.Series.Add(""); } chart1.Series[0].Points.Clear(); chart1.Series[1].Points.Clear(); if (checkBox1.Checked == true) { chart1.ChartAreas[0].AxisY.Minimum = 30; chart1.ChartAreas[0].AxisY.Maximum = 100; } else { chart1.ChartAreas[0].AxisY.Minimum = 0; chart1.ChartAreas[0].AxisY.Maximum = 1000; } chart1.Legends[0].Docking = System.Windows.Forms.DataVisualization.Charting.Docking.Bottom; chart1.Series[0].Name = "Received value"; chart1.Series[1].Name = "Original value"; chart1.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline; chart1.Series[1].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline; for (int i = 1; i < countRow - 1; i++) { chart1.Series[0].Points.AddXY(i, result.Get(i + 1, 0)); chart1.Series[1].Points.AddXY(i, d[i]); } //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; }