class_docstr: Tranformer mixin that performs feature selection given a support mask
  
  This mixin provides a feature selector implementation with `transform` and
  `inverse_transform` functionality given an implementation of
  `_get_support_mask`.
class_docstr_tok: ["Tranformer","mixin","that","performs","feature","selection","given","a","support","mask","This","mixin","provides","a","feature","selector","implementation","with","`","transform","`","and","`","inverse_transform","`","functionality","given","an","implementation","of","`","_get_support_mask","`","."]
docstr: Reverse the transformation operation
  
  Parameters
  ----------
  X : array of shape [n_samples, n_selected_features]
      The input samples.
  
  Returns
  -------
  X_r : array of shape [n_samples, n_original_features]
      `X` with columns of zeros inserted where features would have
      been removed by `transform`.
docstr_tok: ["Reverse","the","transformation","operation","Parameters","--","--","--","--","--","X",":","array","of","shape","[","n_samples",",","n_selected_features","]","The","input","samples",".","Returns","--","--","--","-","X_r",":","array","of","shape","[","n_samples",",","n_original_features","]","`","X","`","with","columns","of","zeros","inserted","where","features","would","have","been","removed","by","`","transform","`","."]
code: def inverse_transform(self, X):
      """
      Reverse the transformation operation
  
      Parameters
      ----------
      X : array of shape [n_samples, n_selected_features]
          The input samples.
  
      Returns
      -------
      X_r : array of shape [n_samples, n_original_features]
          `X` with columns of zeros inserted where features would have
          been removed by `transform`.
      """
      if issparse(X):
          X = X.tocsc()
          # insert additional entries in indptr:
          # e.g. if transform changed indptr from [0 2 6 7] to [0 2 3]
          # col_nonzeros here will be [2 0 1] so indptr becomes [0 2 2 3]
          it = self.inverse_transform(np.diff(X.indptr).reshape(1, -1))
          col_nonzeros = it.ravel()
          indptr = np.concatenate([[0], np.cumsum(col_nonzeros)])
          Xt = csc_matrix(
              (X.data, X.indices, indptr),
              shape=(X.shape[0], len(indptr) - 1),
              dtype=X.dtype,
          )
          return Xt
  
      support = self.get_support()
      X = check_array(X)
      if support.sum() != X.shape[1]:
          raise ValueError(
              "X has a different shape than during fitting."
          )
  
      if X.ndim == 1:
          X = X[None, :]
      Xt = np.zeros((X.shape[0], support.size), dtype=X.dtype)
      Xt[:, support] = X
      return Xt
  
file_path: catboost/contrib/python/scikit-learn/py2/sklearn/feature_selection/base.py
imports: from abc import ABCMeta, abstractmethod
  from warnings import warn
  import numpy
  from scipy.sparse import issparse, csc_matrix
  from ..base import TransformerMixin
  from ..utils import check_array, safe_mask
  from ..externals import six
label_desc: Use image node_id 4 for calling the SelectorMixin obj's underlying member method code with example usage: obj.inverse_transform(X) and returns: Xt, Xt