code: def generate_linear_pipeline():
      """
      Generate linear pipeline where the data changes from node to node.
      The number of columns increases (poly_features), the number of columns
      decreases (rfe_lin_class), the types change while keeping the number of
      columns ('label_encoding')
      """
      encoding_label = PipelineNode("label_encoding")
      poly_node = PipelineNode(
          "poly_features", nodes_from=[encoding_label]
      )
      rfe_node = PipelineNode("rfe_lin_class", nodes_from=[poly_node])
      final_node = PipelineNode("dt", nodes_from=[rfe_node])
      pipeline = Pipeline(final_node)
  
      return pipeline
  
imports: import numpy
  import pandas
  from golem.core.log import default_log
  from fedot.core.data.data import InputData
  from fedot.core.data.data_split import train_test_data_setup
  from fedot.core.pipelines.node import PipelineNode
  from fedot.core.pipelines.pipeline import Pipeline
  from fedot.core.repository.dataset_types import DataTypesEnum
  from fedot.core.repository.tasks import Task, TaskTypesEnum
  from fedot.core.utils import fedot_project_root
  from fedot.preprocessing.data_types import TYPE_TO_ID
  from fedot.preprocessing.data_types import TableTypesCorrector, apply_type_transformation
  from fedot.preprocessing.structure import DEFAULT_SOURCE_NAME
  from test.unit.preprocessing.test_pipeline_preprocessing import correct_preprocessing_params, data_with_mixed_types_in_each_column
label_desc: Use image node_id 3 for calling a global function with example usage: generate_linear_pipeline() and returns: pipeline