⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 formmain.cs

📁 Computational Intelligence IRIS dataset Classification
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace CIProject
{
    public partial class FormMain : Form
    {
        public FormMain()
        {
            InitializeComponent();

            dataMatrixRowCount = 150;
            dataMatrixColumnCount = 5;

            dataMatrix = new double[dataMatrixRowCount][];
            targetMatrix = new double[dataMatrixRowCount];
            for (int i = 0; i < dataMatrixRowCount; i++)
            {
                dataMatrix[i] = new double[dataMatrixColumnCount];
                dataMatrix[i][3] = -1.0;
            }

            ga = new GA(this);
            nn = new NN();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            System.Windows.Forms.OpenFileDialog openFileDialog = new OpenFileDialog();
            if (openFileDialog.ShowDialog() != DialogResult.OK)
            {
                return;
            }
            DataReader.ReadData(openFileDialog.FileName, dataMatrixRowCount, dataMatrixColumnCount, ref dataMatrix, ref targetMatrix);
            updateDataGridView();
        }

        private void updateDataGridView()
        {
            this.dataGridView1.Columns.Clear();
            this.dataGridView1.Rows.Clear();

            for (int i = 0; i < dataMatrixColumnCount-1; i++)
            {
                this.dataGridView1.Columns.Add(i.ToString(), i.ToString());
            }

            for (int i = 0; i < dataMatrixRowCount; i++)
            {
                this.dataGridView1.Rows.Add();
                for (int j = 0; j < dataMatrixColumnCount - 1; j++)
                {
                    this.dataGridView1.Rows[i].Cells[j].Value = dataMatrix[i][j];
                }
            }
        }

        GA ga;
        private int dataMatrixRowCount;
        private int dataMatrixColumnCount;
        private Double[][] dataMatrix;
        private Double[] targetMatrix;
        private NN nn;

        public int CalculateFitness(double[] c)
        {
            Double[] max = new double[dataMatrixRowCount];
            Double[][] output = new double[dataMatrixRowCount][];
            Double m = 0;
            int fitness = 0;

            nn.assignWeights(c);
            for (int j = 0; j < dataMatrixRowCount; j++)
            {
                output[j] = nn.NeuralOut(dataMatrix[j]);
            }

            for (int x = 0; x < dataMatrixRowCount; x++)
            {
                max[x] = 0;
                m = output[x][0];
                for (int j = 1; j < 3; j++)
                {
                    if (m < output[x][j])
                    {
                        max[x] = j;
                        m = output[x][j];
                    }
                }
                max[x]++;
            }

            for (int x = 0; x < dataMatrixRowCount; x++)
            {
                if ((targetMatrix[x] - max[x]) == 0.0)
                {
                    fitness++;
                }
            }
            return fitness;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            nn.createNetwork(4, 2, 3, 1);
            ga.Initialize();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < 500; i++)
            {
                this.ga.Iteration();
            }
            MessageBox.Show(this.CalculateFitness(this.ga.Best).ToString());
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -