Table 2

Hybrid neural network model for crop water estimation algorithm

Algorithm
Data source: https://desagri.gov.in/document-report-category/agriculture-statistics-at-a-glance/
Region of study: India
Duration: 1950–2023
Time series length: 74 entries
Input
Historical crop yield data: X_train historical error data: y_train
Test crop yield data: X_test
Crop yield data for a specific region: X_new
Range of hidden neuron count: neuron_range
Range of feedback delay: delay_range
Set of training algorithms: alg_set
Output
Predicted crop yield for the test set: y_pred
Estimated CWR for the specific region: cwr_est
Step 3: Error forecasting using GRNN
  • historical error data = actual crop yield – predicted crop yield error_train = y_train - e_nn.predict(X_train)

  • train a GRNN model using historical error data for error forecasting: grnn(error_train)

Step 4: Hybrid neural network model prediction
For each crop yield dataset in the test set
  • y_pred = e_nn.predict(X_test)

  • use the GRNN model to forecast the expected error in the E-NLAR neural network prediction

  • error_pred = grnn.predict(y_pred)

  • final predicted crop yield y_pred = y_pred + error_pred

Step 5: Model evaluation and improvement
  • evaluate the performance of the hybrid ensemble neural network model

  • Analyze the effect of different hyperparameters on the performance of the proposed hybrid ensemble neural network and optimize them to improve the model's accuracy

Step 6: Estimation of crop water requirement
  • use the trained model to predict the crop yield for a particular crop in each region based on the historical crop yield data: y_pred = e_nn.predict(X_new)

  • estimate the crop water requirement based on the predicted crop yield. cwr_est = f (y_pred),

Where f is a function that calculates CWR based on the predicted crop yield
Step 1: Data Preprocessing
  • Normalize the crop yield data to a common scale if needed

  • Divide the dataset into training, validation, and test sets

Step 2: Ensemble of NLAR Neural Network (E-NLARNN) model
  • Initialize an empty list to store the trained TA-NLAR neural networks: nn_list

  • Initialize an empty list to store the RMSE of each TA-NLAR neural network on the validation set: rmse_list

  • for each neuron_count in neuron_range: for each delay in delay_range:

for each alg in alg_set
  • Train a TA-NLAR neural network using alg, neuron_count, and delay on the training set: nn

  • Evaluate the performance of the “nn” on the validation set using RMSE: rmse

  • nn_list = Append(nn,nn_list)

  • rmse_list = Append (RMSE (nn_list), rmse_list)

  • Select E-NLARNN model: e_nn = nn_list[argmin(rmse_list)]

  • Train a new E-NLARNN model on the combination of the training and validation sets: e_nn.fit(concat(X_train, X_val))

Source(s): Prepared by the authors

or Create an Account

Close Modal
Close Modal