def _set_coefficients_kernel_matrix()

in orbit/template/ktr.py [0:0]


    def _set_coefficients_kernel_matrix(self, df, training_meta):
        """Derive knots position and kernel matrix and other related meta data"""
        num_of_observations = training_meta[TrainingMetaKeys.NUM_OF_OBS.value]
        date_array = training_meta[TrainingMetaKeys.DATE_ARRAY.value]
        # date_col = training_meta[TrainingMetaKeys.DATE_COL.value]

        # placeholder
        self._kernel_coefficients = np.zeros((num_of_observations, 0), dtype=np.double)
        self._num_knots_coefficients = 0

        if self._num_of_regressors > 0:
            self._regression_knots_idx = get_knot_idx(
                date_array=date_array,
                num_of_obs=num_of_observations,
                knot_dates=self._regression_knot_dates,
                knot_distance=self.regression_knot_distance,
                num_of_segments=self.regression_segments,
            )

            tp = np.arange(1, num_of_observations + 1) / num_of_observations
            self._knots_tp_coefficients = (
                1 + self._regression_knots_idx
            ) / num_of_observations
            self._kernel_coefficients = gauss_kernel(
                tp, self._knots_tp_coefficients, rho=self.regression_rho
            )
            self._num_knots_coefficients = len(self._knots_tp_coefficients)
            if self.date_freq is None:
                self.date_freq = pd.infer_freq(date_array)
                # self.date_timedelta = date_array.diff().min()
            self._regression_knot_dates = get_knot_dates(
                date_array[0], self._regression_knots_idx, self.date_freq
            )