class_docstr: An implementation of `"FEATHER-N" <https://arxiv.org/abs/2005.07959>`_
  from the CIKM '20 paper "Characteristic Functions on Graphs: Birds of a Feather,
  from Statistical Descriptors to Parametric Models". The procedure
  uses characteristic functions of node features with random walk weights to describe
  node neighborhoods.
  
  Args:
      reduction_dimensions (int): SVD reduction dimensions. Default is 64.
      svd_iterations (int): SVD iteration count. Default is 20.
      theta_max (float): Maximal evaluation point. Default is 2.5.
      eval_points (int): Number of characteristic function evaluation points. Default is 25.
      order (int): Scale - number of adjacency matrix powers. Default is 5.
      seed (int): Random seed value. Default is 42.
docstr: Creating a dense reduced node feature matrix.
  
  Arg types:
      * **X** *(Scipy COO or Numpy array)* - The wide feature matrix.
  
  Return types:
      * **X** *(Numpy array)* - The reduced feature matrix of nodes.
docstr_tok: ["Creating","a","dense","reduced","node","feature","matrix",".","Arg","types",":","*","*","*","X","*","*","*","(","Scipy","COO","or","Numpy","array",")","*","-","The","wide","feature","matrix",".","Return","types",":","*","*","*","X","*","*","*","(","Numpy","array",")","*","-","The","reduced","feature","matrix","of","nodes","."]
code: def _create_reduced_features(self, X):
      """
      Creating a dense reduced node feature matrix.
  
      Arg types:
          * **X** *(Scipy COO or Numpy array)* - The wide feature matrix.
  
      Return types:
          * **X** *(Numpy array)* - The reduced feature matrix of nodes.
      """
      if scipy.sparse.issparse(X):
          X = self._reduce_dimensions(X)
      elif (type(X) is np.ndarray) and (
          X.shape[1] > self.reduction_dimensions
      ):
          X = self._reduce_dimensions(X)
      else:
          X = X
      return X
  
file_path: karateclub/karateclub/node_embedding/attributed/feathernode.py
imports: import scipy
  import numpy
  import networkx
  from typing import Union
  from scipy.sparse import coo_matrix
  from karateclub.estimator import Estimator
  from sklearn.decomposition import TruncatedSVD
label_desc: Use image node_id 5 for calling the FeatherNode obj's underlying member method code with example usage: obj._create_reduced_features(X) and returns: X