class_docstr: Partial likelihood of the Cox regression model (proportional
  hazards).
  This class gives first order information (gradient and loss) for
  this model.
  
  Attributes
  ----------
  features : `numpy.ndarray`, shape=(n_samples, n_features), (read-only)
      The features matrix
  
  times : `numpy.ndarray`, shape = (n_samples,), (read-only)
      Obverved times
  
  censoring : `numpy.ndarray`, shape = (n_samples,), (read-only)
      Boolean indicator of censoring of each sample.
      ``True`` means true failure, namely non-censored time
  
  n_samples : `int` (read-only)
      Number of samples
  
  n_features : `int` (read-only)
      Number of features
  
  n_failures : `int` (read-only)
      Number of true failure times
  
  n_coeffs : `int` (read-only)
      Total number of coefficients of the model
  
  censoring_rate : `float`
      The censoring_rate (percentage of ???)
  
  Notes
  -----
  There is no intercept in this model
code: def _set_data(
      self, features: np.ndarray, times: np.array, censoring: np.array
  ):  #
      if self.dtype is None:
          self.dtype = features.dtype
          if self.dtype != times.dtype:
              raise ValueError(
                  "Features and labels differ in data types"
              )
  
      n_samples, n_features = features.shape
      if n_samples != times.shape[0]:
          raise ValueError(
              (
                  "Features has %i samples while times "
                  "have %i" % (n_samples, times.shape[0])
              )
          )
      if n_samples != censoring.shape[0]:
          raise ValueError(
              (
                  "Features has %i samples while censoring "
                  "have %i" % (n_samples, censoring.shape[0])
              )
          )
  
      features = safe_array(features, dtype=self.dtype)
      times = safe_array(times, dtype=self.dtype)
      censoring = safe_array(censoring, np.ushort)
  
      self._set("features", features)
      self._set("times", times)
      self._set("censoring", censoring)
      self._set("n_samples", n_samples)
      self._set("n_features", n_features)
      self._set(
          "_model",
          dtype_class_mapper[self.dtype](
              self.features, self.times, self.censoring
          ),
      )
  
file_path: tick/tick/survival/model_coxreg_partial_lik.py
imports: import numpy
  from tick.base_model import Model, ModelFirstOrder
  from tick.preprocessing.utils import safe_array
  from .build.survival import ModelCoxRegPartialLikDouble
  from .build.survival import ModelCoxRegPartialLikFloat
label_desc: Use image node_id 3 for calling the ModelCoxRegPartialLik obj's underlying member method code with example usage: obj._set_data(features, times, censoring) without return types