private void btnClassify_Click(object sender, EventArgs e) { /* * o K é a quantidade de vizinhos que serão * levados em conta para classificação de um * novo dado, é recomendável que seja ímpar * para que não possa haver empate */ int K = Int32.Parse(txtNumber.Text); // tamanho do conjunto de dados de treinamento int tam_treinamento = Int32.Parse(txtQtdItens.Text); //Total 150 usar no maximo uns 70% para obter um melhor resultado. int acertos = 0; int tam_testes = 150 - tam_treinamento; // processo de classificação for (int i = 0; i < tam_testes; i++) { string classe = individuos[i].classe; string classe_obtida = Processamento.classificarAmostra(individuos, individuos[i], K); if (classe == classe_obtida) { acertos++; } } label3.Text = "Número de acertos: " + acertos; }
private void button1_Click(object sender, EventArgs e) { dataGrid.Rows.Clear(); Individuo ind = new Individuo(textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text, ""); insertRow(ind); int K = Int32.Parse(txtNumber.Text); label10.Text = Processamento.classificarAmostra(individuos, ind, K); }
private void insertRow(Individuo ind) { double[] distanciaAntiga = new double[] { 100, 100, 100 }; Individuo[] proximos = new Individuo[3]; int index = 0; for (int i = 0; i < individuos.Count; i++) { double distanciaAtual = Processamento.obterDistEuclidiana(individuos[i], ind); if (distanciaAtual < distanciaAntiga[0]) { proximos[0] = individuos[i]; distanciaAntiga[0] = distanciaAtual; } if (distanciaAtual < distanciaAntiga[1] && distanciaAtual > distanciaAntiga[0]) { proximos[1] = individuos[i]; distanciaAntiga[1] = distanciaAtual; } if (distanciaAtual < distanciaAntiga[2] && distanciaAtual > distanciaAntiga[1] && distanciaAtual > distanciaAntiga[0]) { proximos[2] = individuos[i]; distanciaAntiga[2] = distanciaAtual; } } for (int cont = 0; cont < proximos.Count(); cont++) { index = index + 1; string[] row = new string[6]; row[0] = index + ""; row[1] = proximos[cont].a.ToString(); row[2] = proximos[cont].b.ToString(); row[3] = proximos[cont].c.ToString(); row[4] = proximos[cont].d.ToString(); row[5] = proximos[cont].classe; dataGrid.Rows.Add(row); } }