aimclub / FEDOT

Automated modeling and machine learning framework FEDOT
https://fedot.readthedocs.io
BSD 3-Clause "New" or "Revised" License
635 stars 86 forks source link

Error in `data_has_categorical_features` with supplementary_data #1094

Open aPovidlo opened 1 year ago

aPovidlo commented 1 year ago

Возникает ошибка в функции data_has_categorical_features, лог примерно такой :

image image

Код для воспроизведения:

  problem = 'classification'

  train = pd.read_csv(f'{fedot_project_root()}/cases/data/scoring/scoring_train.csv')
  test = pd.read_csv(f'{fedot_project_root()}/cases/data/scoring/scoring_test.csv')

  input_train = InputData(
      idx=np.arange(0, len(train.target)),
      features=np.array(train.drop(['target'], axis=1)),
      target=np.array(train.target),
      task=Task(TaskTypesEnum.classification),
      data_type=DataTypesEnum.table,
  )

  input_test = InputData(
      idx=np.arange(0, len(test.target)),
      features=np.array(test.drop(['target'], axis=1)),
      target=np.array(test.target),
      task=Task(TaskTypesEnum.classification),
      data_type=DataTypesEnum.table,
  )

  init_pipeline = PipelineBuilder() \
      .add_node(operation_type='rf', params=None) \
      .build()

  model = Fedot(
      problem=problem,
      timeout=0.001,
      metric='roc_auc',
      initial_assumption=init_pipeline,
      use_input_preprocessing=False
  )

  model.fit(input_train)
  predicted = model.predict(input_test)
valer1435 commented 1 year ago

Оказывается, в pipelineBuilder'e тоже есть поле use_input_preprocessing. Если использовать федот вместе с начальным приближением, у них должны быть одинаковыми эти параметры

init_pipeline = PipelineBuilder(use_input_preprocessing=False) \ .add_node(operation_type='rf', params=None) \ .build()

Так работает, но падает на том, что в rf попадают наны (а они в данных действительно есть)

Не знаю как это править и стоит ли вообще править.