docstr: Fit on the training data from scratch.
  :param data: A 1-D numpy array as the training data
  :param validation_data: A 1-D numpy array as the evaluation data
  :return: the evaluation metric value
docstr_tok: ["Fit","on","the","training","data","from","scratch",".",":","param","data",":","A","1-D","numpy","array","as","the","training","data",":","param","validation_data",":","A","1-D","numpy","array","as","the","evaluation","data",":","return",":","the","evaluation","metric","value"]
code: def fit_eval(self, data, validation_data, **config):
      """
      Fit on the training data from scratch.
      :param data: A 1-D numpy array as the training data
      :param validation_data: A 1-D numpy array as the evaluation data
      :return: the evaluation metric value
      """
  
      if not self.model_init:
          # Estimating differencing term (d) and seasonal differencing term (D)
          kpss_diffs = ndiffs(data, alpha=0.05, test="kpss", max_d=6)
          adf_diffs = ndiffs(data, alpha=0.05, test="adf", max_d=6)
          d = max(adf_diffs, kpss_diffs)
          D = 0 if not self.seasonal else nsdiffs(data, m=7, max_D=12)
          config.update(d=d, D=D)
  
          self._build(**config)
          self.model_init = True
  
      self.model.fit(data)
      val_metric = self.evaluate(
          x=None, target=validation_data, metrics=[self.metric]
      )[0].item()
      return {self.metric: val_metric}
  
file_path: analytics-zoo/pyzoo/zoo/chronos/model/arima.py
imports: import os
  import pickle
  from pmdarima.arima import ARIMA
  from pmdarima.arima import ndiffs
  from pmdarima.arima import nsdiffs
  from zoo.orca.automl.metrics import Evaluator
  from zoo.orca.automl.model.abstract import BaseModel, ModelBuilder
label_desc: Use image node_id 3 for calling the ARIMAModel obj's underlying member method code with example usage: obj.fit_eval(data, validation_data) and returns: dict