code: def __init__(
      self, features, labels=None, num_item=0, train_mat=None, num_ng=0
  ):
      super(NCFData, self).__init__()
      self.features = features
      self.labels = labels
      self.num_item = num_item
      self.train_mat = train_mat
      self.num_ng = num_ng
      self.is_sampling = False
  
      if labels is None:
          self.labels = [1.0 for _ in range(len(self.features))]
  
imports: import os
  import tempfile
  import numpy
  import pandas
  import scipy.sparse
  from sklearn.model_selection import train_test_split
  from sklearn.preprocessing import MinMaxScaler
  import torch.utils.data
  from bigdl.dllib.utils.file_utils import is_local_path
  from bigdl.orca.data.file import get_remote_dir_to_local, get_remote_file_to_local
label_desc: Use image node_id 1 to create a new NCFData object from inherited base classes: data with example: obj = NCFData(features, labels, num_item, train_mat, num_ng)