Prognose com RNA
Warning
Esta biblioteca está em desenvolvimento, nenhuma das soluções apresentadas está disponível para download.
Utilize bancos de dados de inventário florestal contínuo para prever o crescimento e a produção florestal. Utilize redes neurais artificiais para maior flexibilidade. Com este módulo, você poderá estimar volume, número de fustes, área basal, entre outras variáveis de interesse.
Parâmetros da Classe
AnnTrainer
AnnTrainer(df, y, *train_columns, iterator=None)
Parâmetros | Descrição |
---|---|
df | O dataframe contendo os dados processados do inventário florestal contínuo. |
y | A variável alvo para treinamento da RNA (Y), a variável na qual a RNA será treinada para prever. |
*train_columns | (*args ) Nomes das colunas que serão usadas para treinar a rede neural artificial para que ela possa prever os valores de Y. Devem ser numéricas. |
iterator | (Opcional) Nome da coluna que contém o iterator . Uma rede neural artificial será ajustada para cada iterator . |
Métodos da Classe
- save_dir = Diretório onde o arquivo
.pkl
da RNA será salvo.
Métodos | Descrição |
---|---|
.fit_model() | Ajusta o modelo usando *train_columns para prever a variável Y. |
Estruturas da RNA
Serão testadas 6 diferentes estruturas de redes neurais artificiais. Apenas o resultado de 1 modelo será retornado. O modelo retornado será selecionado pela função de ranqueamento.
Para o modelo 'ann', o módulo sklearn.neural_network.MLPRegressor é utilizado.
AnnPredictor
AnnPredictor(pkl_file)
Parâmetros | Descrição |
---|---|
pkl_file | Diretório do arquivo .pkl que será utilizado para previsão. |
Métodos da Classe
- Retorna a previsão de
Y
para as colunas*args
. As colunas*args
devem ser as mesmas utilizadas em*train_columns
para o treinamento.
Exemplo de Uso
A grande vantagem do uso de redes neurais artificiais na estimativa de variáveis florestais está na possibilidade de incluir um grande número de variáveis na previsão. No entanto, atualmente, as redes neurais deste módulo operam preferencialmente com variáveis contínuas. Por isso, ao se desejar utilizar variáveis categóricas, recomenda-se aplicar algum tipo de transformação, como o one-hot encoding, para convertê-las em formato numérico antes de inseri-las na rede.
Como exemplo, iremos usar uma adaptação dos dados obtidos por Arce e Dobner Jr. (2024) para Eucalyptus dunnii. A base de dados é composta por 81 parcelas permanentes, com idades variando entre 3 e 9 anos, medidas de forma contínua ao longo do tempo.
Primeiras 5 linhas do arquivo:
Chave_Parcela | Area_m2 | Idade | N_ha | d médio | h médio | H dom | G_m2_ha | V_m3_ha | S |
---|---|---|---|---|---|---|---|---|---|
14401109002_P1 | 300 | 3 | 933 | 7,47 | 6,8 | 7,4 | 4,2 | 6,0 | 15,4 |
14401109002_P1 | 300 | 4 | 933 | 10,3 | 10,1 | 10,8 | 8,0 | 24,5 | 15,4 |
14401109002_P1 | 300 | 5 | 933 | 14,0 | 12,8 | 13,7 | 14,9 | 67,1 | 15,4 |
14401109002_P1 | 300 | 6 | 933 | 14,1 | 14,5 | 15,4 | 15,1 | 77,2 | 15,4 |
14401109002_P1 | 300 | 7 | 867 | 16,6 | 16,1 | 16,5 | 19,4 | 112,8 | 15,4 |
Nesse caso, iremos utilizar as colunas "Idade", "N_ha", "d médio", "h médio", "H dom", "G_m2_ha" e "S" para prever o valor de "V_m3_ha".
exemplo_previsao_rna.py | |
---|---|
- Importa a classe
AnnTrainer
eAnnPredictor
do móduloforecast
. - Importa
pandas
para manipulação de dados. - Importa
train_test_split
para dividir dados em treino e validação.
- Define o diretório onde estão os dados em formato
xlsx
salvando na variávelpath
. - Carrega os dados e salva na variável
dados
. - Salva 80% dos dados como dados de treino na variável
dados_treino
e 20% dos dados como validação na variáveldados_validacao
, mantendo uma seed de aleatoriedade igual a 42. - Cria uma variável chamada
train_columns
contendo a lista de nomes de colunas que serão usadas para treino. - Instancia a classe
AnnTrainer
salvando na variávelann
, passando os dados de treino, a colunaV_m3_ha
como variável a ser predita e a lista de colunas de trei - Ajusta o modelo de rna, salvando as métricas na variável
metircs
e o arquivo.pkl
gerado no diretorio definido.
Após isso, o modelo ajustado estara pronto para uso. Podemos testar a performance do nosso modelo utilizando ele para prever os dados de validação salvos em dados_validacao
.
- Importa a função
get_metrics
do móduloutils
para posterior cálculo de métricas. - Instancia a classe
AnnPredictor
, salvando na variávelpredictor
e passando o arquivo.pkl
gerado no ajuste da rna. - Cria a coluna
V_m3_ha_predicted
no DataFramedados_validacao
, contendo a predição feita pela ann treinada para as colunas usadas no treinamento do dataframedados_validacao
. - Usa a função
get_metrics
para obter as métricas entre os valores reaisV_m3_ha
e os valores preditosV_m3_ha_predicted
do DataFramedados_validacao
. As métricas retornadas são: MAE (Mean Absolute Error), MAPE (Mean Absolute Percentage Error), MSE (Mean Squared Error), RMSE (Root Mean Squared Error), R² (Coeficiente de Determinação), EXP_VAR (Explained Variance Score) e ME (Mean Error). - Cria um DataFrame com as métricas de validação.
Saídas
Tabelas
metrics
(1)
- Tabela com as métricas de performance da RNA no treinamento.
Iterator | Model | MSE | RMSE | MAE | MAPE | R² | Explained Variance | Max Error |
---|---|---|---|---|---|---|---|---|
Not used | V_m3_ha_ann_predictor | 32,29 | 5,68 | 3,05 | 4,23 | 0,99 | 0,99 | 0,14 |
metrics_val
(1)
- Tabela com as métricas de performance da RNA na validação.
MAE | MAPE | MSE | RMSE | R² | Explained Variance | Mean Error |
---|---|---|---|---|---|---|
2,99 | 3,28 | 26,13 | 5,11 | 0,99 | 0,99 | 0,12 |
Arquivos
V_m3_ha_ann_predictor.pkl
(1)
- Arquivo
.pkl
contendo os parâmetros da RNA treinada.
Referências
ARCE, JULIO EDUARDO; DOBNER JR., MARIO. (2024). Manejo e planejamento de florestas plantadas: com ênfase nos gêneros Pinus e Eucalyptus. Curitiba, PR: Ed. dos Autores, 419p.