class_docstr: Example:
      >>> import numpy as np
      >>> model = TCMFForecaster()
      >>> fit_params = dict(val_len=12,
                         start_date="2020-1-1",
                         freq="5min",
                         y_iters=1,
                         init_FX_epoch=1,
                         max_FX_epoch=1,
                         max_TCN_epoch=1,
                         alt_iters=2)
      >>> ndarray_input = {'id': np.arange(300), 'y': np.random.rand(300, 480)}
      >>> model.fit(ndarray_input, fit_params)
      >>> horizon = np.random.randint(1, 50)
      >>> yhat = model.predict(horizon=horizon)
      >>> model.save({tempdirname})
      >>> loaded_model = TCMFForecaster.load({tempdirname}, is_xshards_distributed=False)
      >>> data_new = np.random.rand(300, horizon)
      >>> model.evaluate(target_value=dict({"y": data_new}), metric=['mse'])
      >>> model.fit_incremental({"y": data_new})
      >>> yhat_incr = model.predict(horizon=horizon)
class_docstr_tok: ["Example",":",">",">",">","import","numpy","as","np",">",">",">","model","=","TCMFForecaster","(",")",">",">",">","fit_params","=","dict","(","val_len=12",",","start_date=","''","2020-1-1","''",",","freq=","''","5min","''",",","y_iters=1",",","init_FX_epoch=1",",","max_FX_epoch=1",",","max_TCN_epoch=1",",","alt_iters=2",")",">",">",">","ndarray_input","=","{","'id","'",":","np.arange","(","300",")",",","'","y","'",":","np.random.rand","(","300",",","480",")","}",">",">",">","model.fit","(","ndarray_input",",","fit_params",")",">",">",">","horizon","=","np.random.randint","(","1",",","50",")",">",">",">","yhat","=","model.predict","(","horizon=horizon",")",">",">",">","model.save","(","{","tempdirname","}",")",">",">",">","loaded_model","=","TCMFForecaster.load","(","{","tempdirname","}",",","is_xshards_distributed=False",")",">",">",">","data_new","=","np.random.rand","(","300",",","horizon",")",">",">",">","model.evaluate","(","target_value=dict","(","{","``","y","''",":","data_new","}",")",",","metric=","[","'mse","'","]",")",">",">",">","model.fit_incremental","(","{","``","y","''",":","data_new","}",")",">",">",">","yhat_incr","=","model.predict","(","horizon=horizon",")"]
docstr: Evaluate the model
  
  :param target_value: target value for evaluation. We interpret its second dimension of
         as the horizon length for evaluation.
  :param metric: the metrics. A list of metric names.
  :param target_covariates: covariates corresponding to target_value.
      2-D ndarray or None.
      The shape of ndarray should be (r, horizon), where r is the number of covariates.
      Global covariates for all time series. If None, only default time coveriates will be
      used while use_time is True. If not, the time coveriates used is the stack of input
      covariates and default time coveriates.
  :param target_dti: dti corresponding to target_value.
      DatetimeIndex or None.
      If None, use default fixed frequency DatetimeIndex generated with the last date of x in
      fit and freq.
  :param num_workers: the number of workers to use in evaluate. If None, it defaults to
      num_ray_nodes in the created RayContext or 1 if there is no active RayContext.
  
  :return: A list of evaluation results. Each item represents a metric.
docstr_tok: ["Evaluate","the","model",":","param","target_value",":","target","value","for","evaluation",".","We","interpret","its","second","dimension","of","as","the","horizon","length","for","evaluation",".",":","param","metric",":","the","metrics",".","A","list","of","metric","names",".",":","param","target_covariates",":","covariates","corresponding","to","target_value",".","2-D","ndarray","or","None",".","The","shape","of","ndarray","should","be","(","r",",","horizon",")",",","where","r","is","the","number","of","covariates",".","Global","covariates","for","all","time","series",".","If","None",",","only","default","time","coveriates","will","be","used","while","use_time","is","True",".","If","not",",","the","time","coveriates","used","is","the","stack","of","input","covariates","and","default","time","coveriates",".",":","param","target_dti",":","dti","corresponding","to","target_value",".","DatetimeIndex","or","None",".","If","None",",","use","default","fixed","frequency","DatetimeIndex","generated","with","the","last","date","of","x","in","fit","and","freq",".",":","param","num_workers",":","the","number","of","workers","to","use","in","evaluate",".","If","None",",","it","defaults","to","num_ray_nodes","in","the","created","RayContext","or","1","if","there","is","no","active","RayContext",".",":","return",":","A","list","of","evaluation","results",".","Each","item","represents","a","metric","."]
code: def evaluate(
      self,
      target_value,
      metric=["mae"],
      target_covariates=None,
      target_dti=None,
      num_workers=None,
  ):
      """
      Evaluate the model
  
      :param target_value: target value for evaluation. We interpret its second dimension of
             as the horizon length for evaluation.
      :param metric: the metrics. A list of metric names.
      :param target_covariates: covariates corresponding to target_value.
          2-D ndarray or None.
          The shape of ndarray should be (r, horizon), where r is the number of covariates.
          Global covariates for all time series. If None, only default time coveriates will be
          used while use_time is True. If not, the time coveriates used is the stack of input
          covariates and default time coveriates.
      :param target_dti: dti corresponding to target_value.
          DatetimeIndex or None.
          If None, use default fixed frequency DatetimeIndex generated with the last date of x in
          fit and freq.
      :param num_workers: the number of workers to use in evaluate. If None, it defaults to
          num_ray_nodes in the created RayContext or 1 if there is no active RayContext.
  
      :return: A list of evaluation results. Each item represents a metric.
      """
      return self.internal.evaluate(
          y=target_value,
          metric=metric,
          target_covariates=target_covariates,
          target_dti=target_dti,
          num_workers=num_workers,
      )
  
file_path: analytics-zoo/pyzoo/zoo/chronos/forecaster/tcmf_forecaster.py
imports: from zoo.chronos.model.tcmf_model import TCMFNdarrayModelWrapper, TCMFXshardsModelWrapper
  from zoo.orca.data import SparkXShards
  from zoo.chronos.forecaster.abstract import Forecaster
label_desc: Use image node_id 4 for calling the TCMFForecaster obj's underlying member method code with example usage: obj.evaluate(target_value, metric, target_covariates, target_dti, num_workers) and returns: self