File size: 2,615 Bytes
a1190da
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# 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