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

java.lang.Object
  extended by br.usp.ime.mac5855.knn.validacaocruzada.ParticionadorRandom<E>
Type Parameters:
E - O tipo dos objeto a serem particionados.
All Implemented Interfaces:
Particionador<E>

public final class ParticionadorRandom<E>
extends java.lang.Object
implements Particionador<E>

Especifica uma estratégia de particionamento aleatório para os dados da classe ValidacaoCruzada.

Author:
Victor Williams Stafusa da Silva

Constructor Summary
ParticionadorRandom(double proporcaoTeste)
          Cria um particionador aleatório, especificando qual é a proporção de dados no conjunto de testes, em uma escala de 0.0 a 1.0.
ParticionadorRandom(double proporcaoTeste, long seed)
          Cria um particionador aleatório, especificando qual é a proporção de dados no conjunto de testes, em uma escala de 0.0 a 1.0 e qual é o número a ser usado como semente para criar um gerador de números aleatórios deste objeto.
ParticionadorRandom(double proporcaoTeste, java.util.Random random)
          Cria um particionador aleatório, especificando qual é a proporção de dados no conjunto de testes, em uma escala de 0.0 a 1.0 e um gerador de números aleatórios a ser usado por este objeto.
 
Method Summary
 java.util.Set<E> getConjuntoTeste()
          Obtém o conjunto de testo gerado pela última invocação ao método Particionador.particionar(Set).
 java.util.Set<E> getConjuntoTreinamento()
          Obtém o conjunto de treinamento gerado pela última invocação ao método Particionador.particionar(Set).
 java.util.Random getGerador()
          Obtém o gerador de números aleatórios usado por este objeto.
 double getProporcaoTeste()
          Obtém a proporção da população que será utilizada como dados de teste, em uma escala de 0.0 a 1.0.
 void particionar(java.util.Set<E> populacao)
          Particiona aleatoriamente uma população de dados em conjuntos de treinamento e de teste, a serem obtidos posteriormente pelos métodos getConjuntoTreinamento() e getConjuntoTeste().
 void setGerador(java.util.Random random)
          Define o gerador de números aleatórios a ser usado por este objeto.
 void setProporcaoTeste(double proporcaoTeste)
          Define a proporção da população que será utilizada como dados de teste, em uma escala de 0.0 a 1.0.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ParticionadorRandom

public ParticionadorRandom(double proporcaoTeste)
Cria um particionador aleatório, especificando qual é a proporção de dados no conjunto de testes, em uma escala de 0.0 a 1.0.

Parameters:
proporcaoTeste - A proporção de elementos a serem colocados no conjunto de teste.

ParticionadorRandom

public ParticionadorRandom(double proporcaoTeste,
                           long seed)
Cria um particionador aleatório, especificando qual é a proporção de dados no conjunto de testes, em uma escala de 0.0 a 1.0 e qual é o número a ser usado como semente para criar um gerador de números aleatórios deste objeto.

Parameters:
proporcaoTeste - A proporção de elementos a serem colocados no conjunto de teste.
seed - A semente usada para criar-se o gerador de número aleatórios deste objeto.

ParticionadorRandom

public ParticionadorRandom(double proporcaoTeste,
                           java.util.Random random)
Cria um particionador aleatório, especificando qual é a proporção de dados no conjunto de testes, em uma escala de 0.0 a 1.0 e um gerador de números aleatórios a ser usado por este objeto.

Parameters:
proporcaoTeste - A proporção de elementos a serem colocados no conjunto de teste.
random - O gerador de número aleatórios deste objeto.
Method Detail

getGerador

public java.util.Random getGerador()
Obtém o gerador de números aleatórios usado por este objeto.

Returns:
O gerador de números aleatórios usado.

setGerador

public void setGerador(java.util.Random random)
Define o gerador de números aleatórios a ser usado por este objeto.

Parameters:
random - O gerador de números aleatórios a ser usado.
Throws:
java.lang.IllegalArgumentException - Se o parâmetro informado for null.

getProporcaoTeste

public double getProporcaoTeste()
Obtém a proporção da população que será utilizada como dados de teste, em uma escala de 0.0 a 1.0.

Returns:
A proporção da população a ser usada como dados de teste.

setProporcaoTeste

public void setProporcaoTeste(double proporcaoTeste)
Define a proporção da população que será utilizada como dados de teste, em uma escala de 0.0 a 1.0.

Parameters:
proporcaoTeste - A proporção da população a ser usada como dados de teste.
Throws:
java.lang.IllegalArgumentException - Se o parâmetro informado estiver fora da faixa válida.

particionar

public void particionar(java.util.Set<E> populacao)
Particiona aleatoriamente uma população de dados em conjuntos de treinamento e de teste, a serem obtidos posteriormente pelos métodos getConjuntoTreinamento() e getConjuntoTeste().

Specified by:
particionar in interface Particionador<E>
Parameters:
populacao - A população de dados a ser particionada.
Throws:
java.lang.IllegalArgumentException - Se a população informada for null.

getConjuntoTreinamento

public java.util.Set<E> getConjuntoTreinamento()
Obtém o conjunto de treinamento gerado pela última invocação ao método Particionador.particionar(Set). Tal conjunto é uma relação

Specified by:
getConjuntoTreinamento in interface Particionador<E>
Returns:
O conjunto de treinamento.
Throws:
java.lang.IllegalStateException - Caso o método Particionador.particionar(Set) ainda não tenha sido invocado.

getConjuntoTeste

public java.util.Set<E> getConjuntoTeste()
Obtém o conjunto de testo gerado pela última invocação ao método Particionador.particionar(Set).

Specified by:
getConjuntoTeste in interface Particionador<E>
Returns:
O conjunto de teste.
Throws:
java.lang.IllegalStateException - Caso o método Particionador.particionar(Set) ainda não tenha sido invocado.