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); numInput = Convert.ToInt32(textBox2.Text); numHidden = Convert.ToInt32(textBox_C.Text); countIter = Convert.ToInt32(textBox1.Text); //чтение входных данных 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]; } //Инициализация центроид centroids = ReaderWriter.ReadMatrixC(countRow, numInput, numHidden, d, x); rn = new NeuralNetwork(countRow, numInput, numHidden, numOutput, x, centroids, n, temp, er); rn.countIter = countIter; //Инициализация весов rn.SetWeight(); double[] res = new double[countRow]; // Обучение сети rn.TrainNetwork(x, centroids, countRow, numInput, numHidden, numOutput, D, out res); if (chart2.Series.Count != 2) { chart2.Series.Add(""); } chart2.Series[0].Points.Clear(); chart2.Series[1].Points.Clear(); // chart2.ChartAreas[0].AxisX.Minimum = 30; // chart2.ChartAreas[0].AxisX.Maximum = 50; // chart2.ChartAreas[0].AxisX.Interval = 1; if (checkBox1.Checked == true) { chart2.ChartAreas[0].AxisY.Minimum = 30; chart2.ChartAreas[0].AxisY.Maximum = 100; } else { chart2.ChartAreas[0].AxisY.Minimum = -100; chart2.ChartAreas[0].AxisY.Maximum = 1000; } // chart2.ChartAreas[0].AxisY.Interval = 10; chart2.Legends[0].Docking = System.Windows.Forms.DataVisualization.Charting.Docking.Bottom; chart2.Series[0].Name = "Received value"; chart2.Series[1].Name = "Original value"; chart2.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline; chart2.Series[1].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline; for (int i = 1; i < countRow - 1; i++) { chart2.Series[0].Points.AddXY(i, res[i + 1]); chart2.Series[1].Points.AddXY(i, d[i]); } er = rn.errTrain; label_err.Text = "Learning error: " + er; temp = rn.temp; // button_Sample.Enabled = false; button_test.Enabled = true; }
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); } }