Mudanças entre as edições de "Experimentos para o artigo WITCC'08"
 (→Experimentos Pré-liminares com WNN_CORE)  | 
				 (→Experimentos Pré-liminares com WNN_CORE)  | 
				||
| Linha 138: | Linha 138: | ||
As métricas de desempenho para cada iteração foram:  | As métricas de desempenho para cada iteração foram:  | ||
<br />  | <br />  | ||
| + | |||
{| border=1     | {| border=1     | ||
| '''Synpases'''  | | '''Synpases'''  | ||
| Linha 157: | Linha 158: | ||
| 512  | | 512  | ||
| 2  | | 2  | ||
| − | |   | + | | 39,44  | 
| − | | 0,  | + | | 0,60  | 
| − | | 0,  | + | | 0,20  | 
| − | | 0,  | + | | 0,30  | 
|}  | |}  | ||
Edição das 10h17min de 4 de abril de 2008
Experimentos para o artigo WITCC'08
-  Questões a serem discutidas
-  Schapire (2000) que propôs o Boostexter, adota 3-fold cross validation. Será que não seria o caso de fazermos o mesmo por questões de tempo? O problema de adotarmos 3-fold cross validation (ao invés de 10-fold) é que teríamos apenas 3 avaliações de cada método de categorização para um teste estatístico de comparação dos métodos
- Claudine irá ler o livro Machine Learning de Tom Michell para verificar se existe apoio literário para usar diferentes valores de k nas fases de validação e teste
 
 -  Parece que o Boostexter exige um número imenso de rounds para atingir o ponto de convergência (a partir do qual um aumento no número de rounds não produz melhoras de desempenho). 
- Precisamos fazer uma estimativa de tempo e qualidade dos resultados das métricas com 1.000, 5.000 e 10.000 rounds, por exemplo, a fim de avaliarmos a viabilidade do uso de Boostexter sobre a coleção do SCAE no nível de subclasses
 
 
 -  Schapire (2000) que propôs o Boostexter, adota 3-fold cross validation. Será que não seria o caso de fazermos o mesmo por questões de tempo? O problema de adotarmos 3-fold cross validation (ao invés de 10-fold) é que teríamos apenas 3 avaliações de cada método de categorização para um teste estatístico de comparação dos métodos
 
1. Coleção
-  Conjuntos de treino e teste
- Conjunto CNAE: Tabela CNAE_110_SUBCLASSE, campo DESCRICAO_SUB, linhas 0 a 1182
 - Conjunto VIX: Tabela DADOS_VITORIA_SUB_110, campo OBJETO_SOCIAL, linhas 0 a 3280
 
 
-  Pré-processamento
- Usar o dicionário completo corrigido
 - Remover do vocabulário as 6 seguintes categorias gramaticais: artigo, conjunção, contração, interjeição, preposição e pronome
 - Computar pesos dos termos usando tfidf
 
 
2. Configuração dos Experimentos
-  Testar os seguintes métodos de categorização
-  WNN e WNN_COR
- Parâmetros a serem ajustados: número de neurônios e número de sinapses
 - Nos experimentos de validação, experimentar redes com 8x8, 8x16, 16x16, e 32x16 neurônios e 256 e 512, 1024 sinapses
 
 -  VS
- Não tem parâmetros (que maravilha!!! :-))
 
 -  ML-KNN
- Parâmetros: número de vizinhos mais próximos. Deixar os outros parâmetros com o valor padrão (smooth=1)
 - Nos experimentos de validação, experimentar 6, 8, 10, 12 e 14 vizinhos mais próximos
 
 -  Boostexter
- Parâmetros: número de rounds
 - Nos experimentos de validação, experimentar ? rounds
 
 
 -  WNN e WNN_COR
 
-  Usar a abordagem k-fold cross validation, com k=10, para testar cada um dos métodos de categorização
- O conjunto VIX deverá ser particionado em k subconjuntos. Dos k subconjuntos, um único subconjunto deverá ser retido para testar o modelo, e os k-1 subconjuntos restantes deverão ser usados como dado de treino. O processo de cross-validation deverá ser repetido k vezes (folds F1, F2, ..., Fk), com cada um dos k subconjuntos usados exatamente uma vez como dado de teste. Os k resultados dos folds serão então combinados para produzir uma única estimativa, ou seja, serão reportadas as médias dos k valores produzidos para cada uma das métricas.
 - Usar o conjunto CNAE como dado de treino em cada fold Fi
 - Salvar os valores de todas as métricas para cada fold Fi de teste num arquivo de texto com o seguinte formato: cada linha corresponde a um fold Fi de teste; e cada coluna corresponde a uma métrica de avaliação
 - As médias dos k valores produzidos (pelos k folds) para cada uma das métricas serão calculadas a partir desse arquivo.
 
 
-  Usar a abordagem k-fold cross validation, com k=10, para validar cada um dos métodos de categorização. A validação consiste em encontrar, para cada um dos métodos de categorização, os parâmetros que produzem os melhores resultados 
- O fold F1 deverá ser particionado em k subconjuntos. Dos k subconjuntos, um único subconjunto deverá ser retido para validar o modelo, e os k-1 subconjuntos restantes deverão ser usados como dado de treino. O processo de cross-validation para validação deverá ser repetido k vezes (F11, F12, ..., F1k), com cada um dos subconjuntos F1j, 1<=j<=k, usados exatamente uma vez como dado de teste.
 - Usar o conjunto CNAE como dado de treino em cada fold F1j
 - Suponha que o método tenha dois parâmetros x e y, que podem assumir variados valores x_i e y_j. Os experimentos de k-fold cross validation deverão ser repetidos várias vezes, para variadas combinações de x_i e y_j (x_1, y_1; x_1, y_2; x_2 y_1; x_2, y_2). A combinação x_i e y_j que produzir os melhores resultados será escolhida para os experimentos de teste
 - Para cada combinação de parâmetros, salvar os valores de todas as métricas para cada fold F1i de validação num arquivo de texto com o seguinte formato: cada linha corresponde a um fold F1i de teste; e cada coluna corresponde a uma métrica de avaliação
 - Para cada combinação de parâmetros, as médias dos k valores produzidos (pelos k folds) para cada uma das métricas serão calculadas a partir desse arquivo
 
 
Experimentos Pré-liminares com WNN_CORE
O objetivo deste experimento é verificar o tempo de execução para realizar a otimização dos parâmetros número de sinapses e número de neurônios do WNN_CORE.
Os experimentos foram realizados com as bases CNAE_110_SUBCLASSE e DADOS_VITORIA_SUB_110 utilizando a técnica k-fold cross validation onmde k = 10. Foram realizados apenas 2 iterações do k-fold para verificar se a base CNAE_110_SUBCLASSE gera algum ruído para o classificador. O procedimento para realização desses experimentos foram:
- A base DADOS_VITORIA_SUB_110 foi dividida em 10 partes, onde 9 partes foi para a base de treino e 1 parte foi para a parte de teste;
 -  Geração do Lexicon com a seguinte configuração:
- Remoção das classes gramáticais: artigo, conjução, contração, interjeição, preposição e pronome;
 - Utilizando as bases: CNAE_110_SUBCLASSE:0:1182 e DADOS_VITORIA_SUB_110:0:2952;
 
 -  Para realizar a otimização dos parâmetros do CORE, a 9 partes de treino foi novamente dividida novamente em 10 partes, onde dessa divisão 9 partes foi para treino e 1 parte para validação. Então, a configuração dos limites para as duas iterações foram:
-  Iteração 1: 
- Treino: CNAE_110_SUBCLASSE:0:1182 DADOS_VITORIA_SUB_110:0:2657;
 - Validação: DADOS_VITORIA_SUB_110:2658:2952;
 
 -  Iteração 2:
- Treino: CNAE_110_SUBCLASSE:0:1182 DADOS_VITORIA_SUB_110:295:2952;
 - Validação: DADOS_VITORIA_SUB_110:0:294;
 
 
 -  Iteração 1: 
 -  O WNN_CORE foi experimentado com os seguintes parâmetros:
- 16x16 neurônios;
 - 256 e 512 synapses;
 
 
O tempo de execução para cada fase foram:
-  Interação 1:
-  256:
- Treino: 4m52s
 - Teste: 2m12s
 
 -  512: 
- Treino: 4m34s
 - Teste: 3m54s
 
 
 -  256:
 -  Interação 2:
-  256:
- Treino: 4m30s
 - Teste: m31s
 
 -  512: 
- Treino: 4m45s
 - Teste: 3m55s
 
 
 -  256:
 
As métricas de desempenho para cada iteração foram:
| Synpases | Iteração | Coverage | Average Precision | Ranking Loss | One Error | 
| 256 | 1 | 39,56 | 0,65 | 0,11 | 0,28 | 
| 512 | 1 | 29,42 | 0,72 | 0,09 | 0,19 | 
| 256 | 2 | ||||
| 512 | 2 | 38,59 | 0,67 | 0,12 | 0,25 | 
Para verificar se a base CNAE_110_SUBCLASSE insere algum ruído para o classificador, realizou-se o seguinte procedimento:
- Do experimento anterior, retirou-se a base CNAE_110_SUBCLASSE e manteve a base DADOS_VITORIA_SUB_110 com limites anteriores;
 - Realizou-se os experimentos com 16x16 neurônios e 512 sinapses para as duas iterações.
 
As métricas de desempenho para cada iteração foram:
| Synpases | Iteração | Coverage | Average Precision | Ranking Loss | One Error | 
| 512 | 1 | 34,49 | 0,66 | 0,16 | 0,24 | 
| 512 | 2 | 39,44 | 0,60 | 0,20 | 0,30 |