class_docstr: The `OrthogonalTransformer` transforms the columns of a dataframe or numpy array to orthogonal (or
  orthonormal if `normalize=True`) matrix.
  
  It learns matrices $Q, R$ such that $X = Q \cdot R$, with $Q$ orthogonal, from which follows $Q = X \cdot R^{-1}$
  
  Parameters
  ----------
  normalize : bool, default=False
      Whether or not orthogonal matrix should be orthonormal as well.
  
  Attributes
  ----------
  inv_R_ : array-like of shape (n_features, n_features)
      The inverse of R of the QR decomposition of `X`.
  normalization_vector_ : array-like of shape (n_features,)
      The normalization terms to make the orthogonal matrix orthonormal.
  
  Examples
  --------
  ```py
  from sklearn.datasets import make_regression
  from sklego.preprocessing import OrthogonalTransformer
  
  # Generate a synthetic dataset
  X, y = make_regression(n_samples=100, n_features=3, noise=0.1, random_state=42)
  
  # Instantiate the transformer
  transformer = OrthogonalTransformer(normalize=True)
  
  # Fit the pipeline with the training data
  transformer.fit(X)
  
  # Transform the data using the fitted transformer
  X_transformed = transformer.transform(X)
  ```
code: def __init__(self, normalize=False):
      self.normalize = normalize
  
imports: import numpy
  import pandas
  from sklearn.base import BaseEstimator, TransformerMixin
  from sklearn.utils import check_array
  from sklearn.utils.validation import check_is_fitted
  from sklego.common import as_list
label_desc: Use image node_id 1 to create a new OrthogonalTransformer object from inherited base classes: BaseEstimator, TransformerMixin with example: obj = OrthogonalTransformer(normalize)