class_docstr: Discrete-time Self Control Case Series (SCCS) likelihood. This class
  provides first order information (gradient and loss) model.
  
  Parameters
  ----------
  n_intervals : `int`
      Number of time intervals observed for each sample.
  
  n_lags : `numpy.ndarray`, shape=(n_features,), dtype="uint64"
      Number of lags per feature. The model will regress labels on the last
      observed values of the features over the corresponding `n_lags` time
      intervals. `n_lags` values must be between 0 and `n_intervals` - 1.
  
  Attributes
  ----------
  features : `list` of `numpy.ndarray` or `list` of `scipy.sparse.csr_matrix`,
      list of length n_cases, each element of the list of
      shape=(n_intervals, n_features)
      The list of features matrices.
  
  labels : `list` of `numpy.ndarray`,
      list of length n_cases, each element of the list of
      shape=(n_intervals,)
      The labels vector
  
  censoring : `numpy.ndarray`, shape=(n_cases,), dtype="uint64"
      The censoring data. This array should contain integers in
      [1, n_intervals]. If the value i is equal to n_intervals, then there
      is no censoring for sample i. If censoring = c < n_intervals, then
      the observation of sample i is stopped at interval c, that is, the
      row c - 1 of the corresponding matrix. The last n_intervals - c rows
      are then set to 0.
  
  n_cases : `int` (read-only)
      Number of samples
  
  n_features : `int` (read-only)
      Number of features
  
  n_coeffs : `int` (read-only)
      Total number of coefficients of the model
docstr: Set the data to the model.
  
  Parameters
  ----------
  features : `list` of `numpy.ndarray` or `list` of `scipy.sparse.csr_matrix`,
      list of length n_cases, each element of the list of
      shape=(n_intervals, n_features)
      The list of features matrices.
  
  labels : `list` of `numpy.ndarray`,
      list of length n_cases, each element of the list of
      shape=(n_intervals,)
      The labels vector
  
  censoring : `numpy.ndarray`, shape=(n_cases,), dtype="uint64"
      The censoring data. This array should contain integers in
      [1, n_intervals]. If the value i is equal to n_intervals, then there
      is no censoring for sample i. If censoring = c < n_intervals, then
      the observation of sample i is stopped at interval c, that is, the
      row c - 1 of the correponding matrix. The last n_intervals - c rows
      are then set to 0.
docstr_tok: ["Set","the","data","to","the","model",".","Parameters","--","--","--","--","--","features",":","`","list","`","of","`","numpy.ndarray","`","or","`","list","`","of","`","scipy.sparse.csr_matrix","`",",","list","of","length","n_cases",",","each","element","of","the","list","of","shape=","(","n_intervals",",","n_features",")","The","list","of","features","matrices",".","labels",":","`","list","`","of","`","numpy.ndarray","`",",","list","of","length","n_cases",",","each","element","of","the","list","of","shape=","(","n_intervals",",",")","The","labels","vector","censoring",":","`","numpy.ndarray","`",",","shape=","(","n_cases",",",")",",","dtype=","''","uint64","''","The","censoring","data",".","This","array","should","contain","integers","in","[","1",",","n_intervals","]",".","If","the","value","i","is","equal","to","n_intervals",",","then","there","is","no","censoring","for","sample","i",".","If","censoring","=","c","<","n_intervals",",","then","the","observation","of","sample","i","is","stopped","at","interval","c",",","that","is",",","the","row","c","-","1","of","the","correponding","matrix",".","The","last","n_intervals","-","c","rows","are","then","set","to","0","."]
code: def _set_data(self, features, labels, censoring):
      """Set the data to the model.
  
      Parameters
      ----------
      features : `list` of `numpy.ndarray` or `list` of `scipy.sparse.csr_matrix`,
          list of length n_cases, each element of the list of
          shape=(n_intervals, n_features)
          The list of features matrices.
  
      labels : `list` of `numpy.ndarray`,
          list of length n_cases, each element of the list of
          shape=(n_intervals,)
          The labels vector
  
      censoring : `numpy.ndarray`, shape=(n_cases,), dtype="uint64"
          The censoring data. This array should contain integers in
          [1, n_intervals]. If the value i is equal to n_intervals, then there
          is no censoring for sample i. If censoring = c < n_intervals, then
          the observation of sample i is stopped at interval c, that is, the
          row c - 1 of the correponding matrix. The last n_intervals - c rows
          are then set to 0.
      """
      n_intervals, n_coeffs = features[0].shape
      n_lags = self.n_lags
      self._set("n_intervals", n_intervals)
      self._set("n_coeffs", n_coeffs)
      # TODO: implement checker as outside function
      # if n_lags > 0 and n_coeffs % (n_lags + 1) != 0:
      #     raise ValueError("(n_lags + 1) should be a divisor of n_coeffs")
      # else:
      #     self._set("n_features", int(n_coeffs / (n_lags + 1)))
      self._set("n_cases", len(features))
      if len(labels) != self.n_cases:
          raise ValueError(
              "Features and labels lists should have the same\
               length."
          )
      if censoring is None:
          censoring = np.full(
              self.n_cases, self.n_intervals, dtype="uint64"
          )
      censoring = check_censoring_consistency(censoring, self.n_cases)
      features = check_longitudinal_features_consistency(
          features, (n_intervals, n_coeffs), "float64"
      )
      labels = check_longitudinal_features_consistency(
          labels, (self.n_intervals,), "int32"
      )
  
      self._set("labels", labels)
      self._set("features", features)
      self._set("censoring", censoring)
  
file_path: tick/tick/survival/model_sccs.py
imports: import numpy
  from tick.base_model import ModelFirstOrder, ModelLipschitz
  from .build.survival import ModelSCCS
  from tick.preprocessing.utils import check_longitudinal_features_consistency, check_censoring_consistency
label_desc: Use image node_id 3 for calling the ModelSCCS obj's underlying member method code with example usage: obj._set_data(features, labels, censoring) without return types