jfan.fan
Class RedeFAN

java.lang.Object
  extended by jfan.fan.RedeFAN

public class RedeFAN
extends java.lang.Object

A classe RedeFAN faz todo papel de gerenciar o treinamento, teste, validação e classificação. Essa classe mantém a rede atual do treinamento e também a melhor rede treinada, além de manter a taxa de acerto da melhor rede. Esta classe é um singleton.

Version:
0.6.8
Author:
Filipe Pais Lenfers

Method Summary
 void adicionarNeuronio(int classeAssociada, int peso)
          Adiciona um neuronio a rede.
 void adicionarNeuronios(int[] classesAssociadas)
          Adiciona vários neuronio a rede.
 void classificar()
          Classifica o conjunto de classificação.
 long getEpoca()
          Pega a época atual da rede.
 float getMediaHarmonica()
          Pega a atual média hârmonica de acerto da rede.
 int getPesoBase()
          Retorna o peso de base usado na randomização dos pesos.
 int getQuantosPadroes(int classe)
          Retorna quantos padrões existem no conjunto de teste da classe especidicada.
static RedeFAN getRedeFAN()
          Pega a instância de RedeFAN.
 void inicializarTestador()
          Inicializa o testador da rede, sempre que forem alterados os neurônios ou o conjunto de testes deve-se inicializar o testador novamente.
 void inicializarTreinador()
          Inicializa o treinador da rede, sempre que forem alterados os neurônios deve-se inicializar o treinador novamente.
static void main(java.lang.String[] args)
           
static void novaRedeFAN(int raioDifuso, int suporteConjuntosDifusos)
          Cria (ou reinicia) a única instância da RedeFAN, para capturar essa instância use o método getRedeFAN.
 void offRandomizarPesoBaseTreinador()
          Desativa a randomização de pesos.
 void onRandomizarPesoBaseTreinador(int pesoBase)
          Ativa a randomização de pesos.
 void removerTemperaSimulada()
          Faz com que a rede deixe de usar a têmpera simulada.
 void setCadaEpocaEmbaralharPadroes(int i)
          Define de quantas em quantas época se deve embaralhar o conjunto de treinamento.
 void setCadaEpocaRenormalizar(int i)
          Define de quantas em quantas época se deve renormalizar os neurônios.
 void setCadaEpocaStepTempora(int i)
          Define de quantas em quantas época deve-se dar uma passo (step) na têmpora.
 void setChanceRenormalizacao(int i)
          Define a chance de renormalizar os neurônios
 void setConjuntoClassificacao(java.util.ArrayList<IPadrao> c)
          Define o conjunto para classificação que a rede irá usar.
 void setConjuntoTeste(java.util.ArrayList<IPadrao> c)
          Define o conjunto de teste que a rede irá usar.
 void setConjuntoTreinamento(java.util.ArrayList<IPadrao> c)
          Define o conjunto de treinamento que a rede irá usar.
 void setConjuntoValidacao(java.util.ArrayList<IPadrao> c)
          Define o conjunto de validação que a rede irá usar.
 void setNumeroPadroesTreinamento(int i)
          Define o número de padrões que serão usados do conjunto de treinamento.
 void setPesoNeuronio(int classeNeuronio, int peso)
          Define o peso do neurônio.
 void setTemperaSimulada(ITemperaSimulada t)
          Define a tempera que será usada no treinamento.
 void treinar()
          Treina a rede em 1 época.
 void validar()
          Executa a validação em cima do conjunto de validação.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getRedeFAN

public static RedeFAN getRedeFAN()
Pega a instância de RedeFAN.

Returns:
a única instância de RedeFAN que pode existir no programa.

novaRedeFAN

public static void novaRedeFAN(int raioDifuso,
                               int suporteConjuntosDifusos)
Cria (ou reinicia) a única instância da RedeFAN, para capturar essa instância use o método getRedeFAN.

Parameters:
raioDifuso - o raio difuso que será usado pela rede
suporteConjuntosDifusos - o suport de conjuntos difusos (J) que será usado pela rede

adicionarNeuronio

public void adicionarNeuronio(int classeAssociada,
                              int peso)
                       throws java.lang.NullPointerException
Adiciona um neuronio a rede. É preciso ter um conjunto de treinamento já definido.

Parameters:
classeAssociada - a classe a qual o neurônio será associado.
Throws:
java.lang.NullPointerException - é disparada caso o conjunto de treinamento não esteja definido.

adicionarNeuronios

public void adicionarNeuronios(int[] classesAssociadas)
                        throws java.lang.NullPointerException
Adiciona vários neuronio a rede. É preciso ter um conjunto de treinamento já definido.

Parameters:
classeAssociada - as classes a quais os neurônios serão associados.
Throws:
java.lang.NullPointerException - é disparada caso o conjunto de treinamento não esteja definido.

setConjuntoTreinamento

public void setConjuntoTreinamento(java.util.ArrayList<IPadrao> c)
Define o conjunto de treinamento que a rede irá usar.

Parameters:
c - o conjunto de treinamento.

setConjuntoTeste

public void setConjuntoTeste(java.util.ArrayList<IPadrao> c)
Define o conjunto de teste que a rede irá usar.

Parameters:
c - o conjunto de teste.

setConjuntoValidacao

public void setConjuntoValidacao(java.util.ArrayList<IPadrao> c)
Define o conjunto de validação que a rede irá usar.

Parameters:
c - o conjunto de validação.

setConjuntoClassificacao

public void setConjuntoClassificacao(java.util.ArrayList<IPadrao> c)
Define o conjunto para classificação que a rede irá usar.

Parameters:
c - o conjunto de classificação.

inicializarTreinador

public void inicializarTreinador()
                          throws PorcentagemException
Inicializa o treinador da rede, sempre que forem alterados os neurônios deve-se inicializar o treinador novamente.

Parameters:
chancePenalizar - a chance de penalizar
Throws:
PorcentagemException - é disparada caso a chancePenalizar não esteja entre 0 e 100

onRandomizarPesoBaseTreinador

public void onRandomizarPesoBaseTreinador(int pesoBase)
Ativa a randomização de pesos. Os novos pesos estarão entre o peso de base e 1000.

Parameters:
pesoBase - O peso que será usado de base.

offRandomizarPesoBaseTreinador

public void offRandomizarPesoBaseTreinador()
Desativa a randomização de pesos.


getQuantosPadroes

public int getQuantosPadroes(int classe)
Retorna quantos padrões existem no conjunto de teste da classe especidicada.

Parameters:
classe - A classe a qual os padrões devem perceber.
Returns:
O número de padrões pertencentes a classe.

getPesoBase

public int getPesoBase()
Retorna o peso de base usado na randomização dos pesos.

Returns:

setChanceRenormalizacao

public void setChanceRenormalizacao(int i)
                             throws PorcentagemException
Define a chance de renormalizar os neurônios

Parameters:
i - A chance de renormalizar os neurônios, entre 0 e 100.
Throws:
PorcentagemException - Caso o parâmetro esteja entre fora dos limites entre 0 e 100.

setCadaEpocaRenormalizar

public void setCadaEpocaRenormalizar(int i)
Define de quantas em quantas época se deve renormalizar os neurônios.

Parameters:
i - O valor de quantas em quantas épocas deve-se renormalizar os nerônios.

setCadaEpocaEmbaralharPadroes

public void setCadaEpocaEmbaralharPadroes(int i)
Define de quantas em quantas época se deve embaralhar o conjunto de treinamento.

Parameters:
i - O valor de quantas em quantas épocas deve-se embaralhar o conjunto de treinamento.

inicializarTestador

public void inicializarTestador()
Inicializa o testador da rede, sempre que forem alterados os neurônios ou o conjunto de testes deve-se inicializar o testador novamente.


treinar

public void treinar()
Treina a rede em 1 época.


setPesoNeuronio

public void setPesoNeuronio(int classeNeuronio,
                            int peso)
Define o peso do neurônio.

Parameters:
classeNeuronio - A classe que o neurônio tem associada.
peso - O novo peso do neurônio.

setTemperaSimulada

public void setTemperaSimulada(ITemperaSimulada t)
Define a tempera que será usada no treinamento. Se passado null como parâmetro a rede para de usar a têmpera.

Parameters:
t - A têmpera que o treinamento usará. Se null a têmpera deixa de ser usada.

removerTemperaSimulada

public void removerTemperaSimulada()
Faz com que a rede deixe de usar a têmpera simulada.


validar

public void validar()
Executa a validação em cima do conjunto de validação.


classificar

public void classificar()
Classifica o conjunto de classificação.


getEpoca

public long getEpoca()
Pega a época atual da rede.

Returns:
A atual época da rede.

getMediaHarmonica

public float getMediaHarmonica()
Pega a atual média hârmonica de acerto da rede.

Returns:
A atual média hârmonica de acerto da rede

setNumeroPadroesTreinamento

public void setNumeroPadroesTreinamento(int i)
Define o número de padrões que serão usados do conjunto de treinamento.

Parameters:
i - O número de padrões que serão usados do conjunto de treinamento. Se 0 serão usados todos os padrões.

setCadaEpocaStepTempora

public void setCadaEpocaStepTempora(int i)
Define de quantas em quantas época deve-se dar uma passo (step) na têmpora.

Parameters:
i - O valor de quantas em quantas épocas deve-se acionar o step da têmpora.

main

public static void main(java.lang.String[] args)