Mudanças entre as edições de "Experimentos para o artigo WITCC'08"
Linha 50: | Linha 50: | ||
** 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, 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 | ** 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; | ||
+ | * 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 | ||
+ | * Interação 2: | ||
+ | ** 256: | ||
+ | *** Treino: 5m5s | ||
+ | *** Teste: 3m31s | ||
+ | ** 512: | ||
+ | *** Treino: 4m59s | ||
+ | *** Teste: 3m55s | ||
+ | |||
+ | As métricas de desempenho para cada experimento foram: | ||
+ | {| border=0 width="100%" | ||
+ | | '''Synpases''' | ||
+ | | '''Iteração''' | ||
+ | | '''Coverage''' | ||
+ | | '''Average Precision''' | ||
+ | | '''Ranking Loss''' | ||
+ | | '''One Error''' | ||
+ | | '''Microaveraging Precision''' | ||
+ | | '''Macroaveraging Precision''' | ||
+ | | '''Microaveraging Recall''' | ||
+ | | '''Macroaveraging Recall''' | ||
+ | | '''Microaveraging F1''' | ||
+ | | '''Macroaveraging F1''' | ||
+ | |||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |} |
Edição das 08h08min 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: 5m5s
- Teste: 3m31s
- 512:
- Treino: 4m59s
- Teste: 3m55s
- 256:
As métricas de desempenho para cada experimento foram:
Synpases | Iteração | Coverage | Average Precision | Ranking Loss | One Error | Microaveraging Precision | Macroaveraging Precision | Microaveraging Recall | Macroaveraging Recall | Microaveraging F1 | Macroaveraging F1 |