Uma implementação simples do algorítimo de classificação K - Nearest Neighbor (K-NN).
Uma simples implementação do classificador K - Nearest Neighbor (K-NN) em Java.
A suposição comum para este tradicional algorítimos de aprendizagem, é que para cada nova entrada, ou valor desconhecido, apenas um rótulo baseado no conjunto de treinamento é o resultado possível.
Isso significa que cada entrada a classe atribuída é única, mesmo que existam dois ou mais classes distintas. (LIU; WU; ZHANG, 2016)
As seguintes regras se aplicam ao K-NN desenvolvido.
Os dados para utilização da implementação são providos pelo arquivo defaults.csv
.
O defaults.csv
contém o valor de K (número de vizinhos), quantidade de linhas e de colunas da matriz de treinamento, os valores da matriz de treinamento (training), valor do grupo (group), e valor da amostra (sample) que será testada. Utilizando o separador “;“, (ponto e vírgula).
Para alterar os valores deve-se seguir o seguinte padrão:
training
;training
em mesma ordem que a as demais.group
;group
;sample
;A resposta do classificador é dado da seguinte maneira:
Sample Group = tipoGrupoA
ou
Sample Group = tipoGrupoB
Onde tipoGrupoA
e tipoGrupoB
são os valores de group
apresentados no defaults.csv
.
Para verificar a eficácia desta implementação, utilizou-se o conjunto de treinamento e realizou-se testes observando os resultados obtidos com está implementação.
O projeto foi desenvolvido na plataforma IntelliJ IDEA 2017.1.
Este projeto foi desenvolvido sob a licença Apache 2, o countéudo integral da licença pode ser encontrado AQUI.
LIU, H.; WU, X.; ZHANG, S. Neighbor selection for multilabel classification. Neurocomputing, v. 182, p. 187 - 196, March 2016.
Disponível em: http://www.sciencedirect.com/science/article/pii/S0925231215019724.