[Resolvido] NÃO RECONHECE DADOS DO VETOR
Olá FÓRUM, boa noite.
Estou tentando desenvolver um pequeno código de KNN, para minha aula de IA, mas estou com um pequeno problema na hora de exibir o sexo da pessoa.
No comando IF, ele não reconhece o valor do 2° item dentro do código.
if(valores[ i ] < **valores[ j ]**)
o vetor com o i, ele consegue trazer os dados corretos, mas o com j, ele não traz o valor correto, traz o valor de 0.
Mas, quando o i, dando um incremento, passando a assumir o valor de j da rodada passada, aí ele consegue trazer o valor que está naquela casa correto. E o j continua trazendo valor 0.
Já tentei também com i+1 lá dentro e não resolve.
O que estaria acontecendo ?
Segue abaixo o meu código:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace bispoKNN
{
class Program
{
static void Main(string[] args)
{
List<Pessoa> pessoas = new List<Pessoa>();
pessoas.Add(new Pessoa("Mulher", 1.56, 48, 20));
pessoas.Add(new Pessoa("Mulher", 1.50, 45, 22));
pessoas.Add(new Pessoa("Mulher", 1.65, 55, 16));
pessoas.Add(new Pessoa("Homem", 1.75, 65, 7));
pessoas.Add(new Pessoa("Homem", 1.80, 75, 8));
pessoas.Add(new Pessoa("Homem", 1.90, 80, 5));
double[] desconhecido = {1.60, 60, 13};
Classifier(pessoas, desconhecido);
Console.ReadKey();
}
private static void Classifier(List<Pessoa> pessoas, double[] features)
{
int i = 0;
int j = i+1;
double[] valores = new double[10];
string genero = pessoas*.Nome;
*
*
**
while (i < pessoas.Count)*
*
{*
*
valores = Distance(pessoas.Features, features);*
*
Console.WriteLine("Distância {0} do Gênero {1}", valores, pessoas.Nome);*
*
if (i < (pessoas.Count - 1))*
*
{*
*
if (valores** < valores[j])*
*
{*
*
genero = pessoas**.Nome;*
*
}*
*
else*
*
{*
*
genero = pessoas[j].Nome;*
*
}*
*
}*
*
else*
*
{*
*
j = i - 1;*
*
if (valores** < valores[j])*
*
{*
*
genero = pessoas**.Nome;*
*
}*
*
else*
*
{*
*
genero = pessoas[j].Nome;*
*
}*
*
}*
*
*
*
i++;*
*
}*
*
Console.WriteLine("");*
*
Console.WriteLine("É do Sexo "+ genero +".");*
*
}
*
*
**
private static double Distance(double[] a, double[]b)*
*
{*
*
double sum = 0.0;
*
*
**
int i = 0;
*
*
**
while (i < a.Length)*
*
{*
*
sum += Math.Pow(a - b, 2);*
*
i++;*
*
}
*
*
**
return Math.Sqrt(sum);*
*
}*
*
}
*
*
**
public class Pessoa*
*
{*
*
public double[] Features;*
*
public string Nome;*
*
public Pessoa(string nome, double altura, double peso, double tamcabelo)*
*
{*
*
Features = new double[3];*
*
this.Nome = nome;*
*
Features[0] = altura;*
*
Features[1] = peso;*
*
Features[2] = tamcabelo;*
*
}*
*
}*
*
}
*
Discussão (2)
Carregando comentários...