class_docstr: Provides with analysis of all the :class:`Pipeline`'s operations hyperparameters
  using sample and analyze methods from ``SALib``
  
  Args:
      pipeline: :obj:`Pipeline` object to analyze
      train_data: data used for :obj:`Pipeline` training
      test_data: data used for :obj:`Pipeline` validation
      requirements: extra requirements to define specific details for different approaches.
          See :class:`SensitivityAnalysisRequirements` class documentation.
      path_to_save: path to save results to. Default: ``~home/Fedot/structural_analysis/``
class_docstr_tok: ["Provides","with","analysis","of","all","the",":","class",":","`","Pipeline","`","'s","operations","hyperparameters","using","sample","and","analyze","methods","from","``","SALib","``","Args",":","pipeline",":",":","obj",":","`","Pipeline","`","object","to","analyze","train_data",":","data","used","for",":","obj",":","`","Pipeline","`","training","test_data",":","data","used","for",":","obj",":","`","Pipeline","`","validation","requirements",":","extra","requirements","to","define","specific","details","for","different","approaches",".","See",":","class",":","`","SensitivityAnalysisRequirements","`","class","documentation",".","path_to_save",":","path","to","save","results","to",".","Default",":","``","~home\/Fedot\/structural_analysis\/","``"]
docstr: Analyze all the hyperparameters af all :obj:`Pipeline` operations using ``SA`` methods.
  
  Default: Sobol method with Saltelli sample algorithm
  
  Returns:
      dict: ``Main`` and total ``Sobol`` indices for every parameter per node
docstr_tok: ["Analyze","all","the","hyperparameters","af","all",":","obj",":","`","Pipeline","`","operations","using","``","SA","``","methods",".","Default",":","Sobol","method","with","Saltelli","sample","algorithm","Returns",":","dict",":","``","Main","``","and","total","``","Sobol","``","indices","for","every","parameter","per","node"]
code: def analyze(self) -> dict:
      """Analyze all the hyperparameters af all :obj:`Pipeline` operations using ``SA`` methods.\n
      Default: Sobol method with Saltelli sample algorithm
  
      Returns:
          dict: ``Main`` and total ``Sobol`` indices for every parameter per node
      """
  
      if not self._pipeline.is_fitted:
          self._pipeline.fit(self._train_data)
  
      # create problem
      self.operation_types = [
          node.operation.operation_type for node in self._pipeline.nodes
      ]
      self.problem = MultiOperationsProblem(self.operation_types)
  
      # sample
      self.log.info("Making hyperparameters samples")
      samples = self.sample(self.requirements.sample_size)
      response_matrix = self._get_response_matrix(samples)
  
      self.log.info(
          "Start hyperparameters structural_analysis analysis"
      )
      indices = self.analyze_method(
          self.problem.dictionary, samples, response_matrix
      )
      converted_to_json_indices = self.convert_results_to_json(
          problem=self.problem, si=indices
      )
  
      self.log.info(
          "Finish hyperparameters structural_analysis analysis"
      )
  
      return converted_to_json_indices
  
file_path: FEDOT/fedot/structural_analysis/operations_hp_sensitivity/multi_operations_sensitivity.py
imports: from copy import deepcopy
  from os.path import join
  from typing import List, Optional, Union
  import numpy
  from golem.core.log import default_log
  from fedot.core.composer.metrics import MSE
  from fedot.core.data.data import InputData
  from fedot.core.pipelines.pipeline import Pipeline
  from fedot.core.utils import default_fedot_data_dir
  from fedot.structural_analysis.operations_hp_sensitivity.problem import MultiOperationsProblem, Problem
  from fedot.structural_analysis.operations_hp_sensitivity.sa_and_sample_methods import analyze_method_by_name, sample_method_by_name
  from fedot.structural_analysis.sa_requirements import HyperparamsAnalysisMetaParams, SensitivityAnalysisRequirements
label_desc: Use image node_id 2 for calling the MultiOperationsHPAnalyze obj's underlying member method code with example usage: obj.analyze() and returns: converted_to_json_indices