| # 1_data/ - Preparação de Dados | |
| Este diretório contém todos os dados utilizados no projeto, organizados por estágio de processamento e tipo. | |
| ## Estrutura | |
| ``` | |
| 1_data/ | |
| ├── raw/ # Dados originais sem processamento | |
| ├── processed/ # Dados processados e prontos para treino | |
| └── benchmarks/ # Benchmarks para avaliação | |
| ├── nguyen/ # Nguyen benchmarks 1-12 (atual) | |
| ├── feynman/ # Feynman equations (futuro) | |
| └── strogatz/ # Strogatz benchmarks (futuro) | |
| ``` | |
| ## Fontes de Dados | |
| ### Dados de Treinamento | |
| - **Fonte**: HuggingFace Hub (`augustocsc/sintetico_natural`) | |
| - **Tamanho**: 700K expressões matemáticas sintéticas | |
| - **Formato**: JSON estruturado | |
| - **Localização**: `processed/` | |
| ### Benchmarks Disponíveis | |
| #### Nguyen Benchmarks (1-12) | |
| Benchmarks padrão para symbolic regression: | |
| - **Nguyen-1**: x³ + x² + x | |
| - **Nguyen-2**: x⁴ + x³ + x² + x | |
| - **Nguyen-3**: x⁵ + x⁴ + x³ + x² + x | |
| - **Nguyen-4**: x⁶ + x⁵ + x⁴ + x³ + x² + x | |
| - **Nguyen-5**: sin(x²)·cos(x) - 1 | |
| - **Nguyen-6**: sin(x) + sin(x + x²) | |
| - **Nguyen-7**: log(x + 1) + log(x² + 1) | |
| - **Nguyen-8**: √x | |
| - **Nguyen-9**: sin(x) + sin(y²) | |
| - **Nguyen-10**: 2·sin(x)·cos(y) | |
| - **Nguyen-11**: x^y | |
| - **Nguyen-12**: x⁴ - x³ + y²/2 - y | |
| **Localização**: `benchmarks/nguyen/` | |
| ## Próximos Benchmarks (Planejados) | |
| ### Feynman Equations | |
| Equações da física de Feynman - 120+ fórmulas | |
| - Complexidade maior que Nguyen | |
| - Multi-variáveis (até 10+) | |
| - Constantes físicas | |
| ### Strogatz Benchmarks | |
| Sistemas dinâmicos e equações diferenciais | |
| - Osciladores | |
| - Sistemas caóticos | |
| - Modelos populacionais | |
| ## Uso | |
| ### Preparar Dados de Treinamento | |
| ```bash | |
| # A partir do diretório raiz | |
| cd 2_training/supervised | |
| python train_with_json.py --dataset_path ../../1_data/processed/700K | |
| ``` | |
| ### Adicionar Novo Benchmark | |
| 1. Criar diretório: `benchmarks/novo_benchmark/` | |
| 2. Adicionar arquivos CSV com formato: | |
| ```csv | |
| x,y | |
| 1.0,2.5 | |
| 2.0,5.0 | |
| ... | |
| ``` | |
| 3. Adicionar metadata em `novo_benchmark/metadata.json`: | |
| ```json | |
| { | |
| "name": "Novo Benchmark", | |
| "formula": "expressão matemática", | |
| "variables": ["x", "y"], | |
| "description": "descrição" | |
| } | |
| ``` | |
| ## Scripts Relacionados | |
| - Processamento: `src/seriguela/data/` | |
| - Avaliação em benchmarks: `3_evaluation/benchmarks/` | |
| ## Referências | |
| - Nguyen et al. (2012): "Semantically-based crossover in genetic programming" | |
| - Feynman Lectures on Physics | |
| - Dataset original: https://huggingface.co/datasets/augustocsc/sintetico_natural | |