construct the model matrix columns for the term

        Parameters
        ----------
        X : array-like
            Input dataset with n rows

        verbose : bool
            whether to show warnings

        Returns
        -------
        scipy sparse array with n rows

def build_columns(self, X, verbose=False):
        """construct the model matrix columns for the term

        Parameters
        ----------
        X : array-like
            Input dataset with n rows

        verbose : bool
            whether to show warnings

        Returns
        -------
        scipy sparse array with n rows
        """
        X[:, self.feature][:, np.newaxis]

        splines = b_spline_basis(X[:, self.feature],
                                 edge_knots=self.edge_knots_,
                                 spline_order=self.spline_order,
                                 n_splines=self.n_splines,
                                 sparse=True,
                                 periodic=self.basis in ['cp'],
                                 verbose=verbose)

        if self.by is not None:
            splines = splines.multiply(X[:, self.by][:, np.newaxis])

        return splines