class_docstr: Creates a one-hot encoding (OHE) for categorical data. One-hot encoding represents categorical information as a vector where each individual dimension corresponds to a category. A category has a 1:1 mapping between dimension indicated by a "1" in that position. For example, imagine 3 categories, :math:`A`, :math:`B`, and :math:`C`; these can be represented as follows:
  
  .. math::
  
     A &= [1, 0, 0] \
     B &= [0, 1, 0] \
     C &= [0, 0, 1]
  
  The OHE encoder operates in 2 modes:
      (1) "use_unknown=True": Makes an :math:`N+1` length vector for :math:`N` categories, the first index always corresponds to the unknown category.
  
      (2) "use_unknown=False": Makes an :math:`N` length vector for :math:`N` categories, where an empty vector of 0s indicates an unknown/missing category.
  
  An encoder can represent a feature column or target column; in this case it represents a target, `is_target` is `True`, and `target_weights`. The `target_weights` parameter enables users to specify how heavily each class should be weighted within a mixer - useful in imbalanced classes.
  
  By default, `dataprep_ml.StatisticalAnalysis` phase will provide `target_weights` as the relative fraction of each class in the data which is important for imbalanced populations; for example, suppose there is a 80/05/15 imbalanced representation across 3 different classes - `target_weights` will be a vector as such::
  
  target_weights = {"class1": 0.8, "class2": 0.05, "class3": 0.15}
  
  Users should note that models will be presented with the inverse of the target weights, `inv_target_weights`, which will perform the 1/target_value_per_class operation. **This means large values will result in small weights for the model**.
docstr: Provides decoded answers, as well as a probability assignment to each data point.
  
  :param encoded_data: the output of a mixer model
  
  :returns Decoded values for each data point, Probability vector for each category, and the reverse map of dimension to category name
docstr_tok: ["Provides","decoded","answers",",","as","well","as","a","probability","assignment","to","each","data","point",".",":","param","encoded_data",":","the","output","of","a","mixer","model",":","returns","Decoded","values","for","each","data","point",",","Probability","vector","for","each","category",",","and","the","reverse","map","of","dimension","to","category","name"]
code: def decode_probabilities(
      self, encoded_data: torch.Tensor
  ) -> Tuple[List[str], List[List[float]], Dict[int, str]]:
      """
      Provides decoded answers, as well as a probability assignment to each data point.
  
      :param encoded_data: the output of a mixer model
  
      :returns Decoded values for each data point, Probability vector for each category, and the reverse map of dimension to category name
      """  # noqa
      encoded_data_list = encoded_data.tolist()
      ret = []
      probs = []
  
      for vector in encoded_data_list:
          if not np.any(vector):  # Vector of all 0s -> unknown category
              ret.append(_UNCOMMON_WORD)
          else:
              ret.append(self.rev_map[np.argmax(vector)])
  
          probs.append(self._norm_vec(vector))
  
      return ret, probs, self.rev_map
  
file_path: lightwood/lightwood/encoder/categorical/onehot.py
imports: from copy import deepcopy
  from typing import Dict, List, Iterable, Tuple
  import torch
  import numpy
  from scipy.special import softmax
  from lightwood.helpers.log import log
  from lightwood.encoder.base import BaseEncoder
  from lightwood.helpers.constants import _UNCOMMON_WORD
label_desc: Use image node_id 5 for calling the OneHotEncoder obj's underlying member method code with example usage: obj.decode_probabilities(encoded_data) and returns: ret,  probs,  self