br.usp.ime.mac5855.knn.validacaocruzada
Class ValidacaoCruzada<E>

java.lang.Object
  extended by br.usp.ime.mac5855.knn.validacaocruzada.ValidacaoCruzada<E>
Type Parameters:
E - O tipo de objeto a ser avaliado no algoritmo Knn.

public class ValidacaoCruzada<E>
extends java.lang.Object

Esta classe implementa a validação cruzada para o algoritmo Knn. Para utilizá-la, basta criar uma instância informando as estratégias adequada para dividir os dados nos conjuntos de teste e de treinamento e para computar o erro acumulado. Após criada a instância, basta usar o método validar(Map, int, KnnStrategy).

Author:
Victor Williams Stafusa da Silva
See Also:
KnnPonderado, KnnStrategy, Particionador, AvaliadorErro

Constructor Summary
ValidacaoCruzada(Particionador<E> particionador, AvaliadorErro avaliador)
          Construtor único.
 
Method Summary
 double validar(java.util.Map<E,java.lang.Double> populacao, int tentativas, KnnStrategy<E> knnStrategy)
          Faz a validação cruzada do algoritmo Knn.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ValidacaoCruzada

public ValidacaoCruzada(Particionador<E> particionador,
                        AvaliadorErro avaliador)
Construtor único.

Parameters:
particionador - A estatégia a ser usada para particionar os dados nos conjuntos de treinamento e de teste.
avaliador - A estatégia a ser usada para contabilizar os erros.
Method Detail

validar

public double validar(java.util.Map<E,java.lang.Double> populacao,
                      int tentativas,
                      KnnStrategy<E> knnStrategy)
Faz a validação cruzada do algoritmo Knn.

Parameters:
populacao - Os dados a serem usados para popular o algoritmo Knn, a serem particionados de forma diferente a cada tentativa.
tentativas - O número de iterações a serem feitas. A cada iteração, os dados são particionados de uma forma diferente por meio do método Particionador.particionar(Set) do Particionador informado no construtor.
knnStrategy - A estratégia a ser usada pela classe KnnPonderado.
Returns:
Os erros acumulados.
Throws:
java.lang.IllegalArgumentException - Se a população ou a estratégia informada for null ou se o número de tentativas for zero ou negativo.