mindsdb / mindsdb_native

Machine Learning in one line of code
http://mindsdb.com
GNU General Public License v3.0
37 stars 28 forks source link

Error when training time series predictor in native with historical_columns #398

Closed cosmoje closed 3 years ago

cosmoje commented 3 years ago

Error when training time series predictor with time series setting "historical_columns" in native. E.g. learn with covid_ICU data using "historical_columns": ["total_adult_patients_hospitalized_confirmed_covid", "total_adult_patients_hospitalized_confirmed_and_suspected_covid", "new_case", "pnew_case"] gives:


"""
TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File "/home/cosmo/anaconda3/envs/mindsdb/lib/python3.8/multiprocessing/pool.py", line 125, in worker
    result = (True, func(*args, **kwds))
  File "/home/cosmo/anaconda3/envs/mindsdb/lib/python3.8/multiprocessing/pool.py", line 48, in mapstar
    return list(map(*args))
  File "/home/cosmo/anaconda3/envs/mindsdb/lib/python3.8/site-packages/mindsdb_native/libs/phases/model_interface/lightwood_backend.py", line 29, in _ts_order_col_to_cell_lists
    df.at[label, order_col] = [df.at[label, order_col]]
  File "/home/cosmo/anaconda3/envs/mindsdb/lib/python3.8/site-packages/pandas/core/indexing.py", line 2164, in __setitem__
    return super().__setitem__(key, value)
  File "/home/cosmo/anaconda3/envs/mindsdb/lib/python3.8/site-packages/pandas/core/indexing.py", line 2115, in __setitem__
    self.obj._set_value(*key, value=value, takeable=self._takeable)
  File "/home/cosmo/anaconda3/envs/mindsdb/lib/python3.8/site-packages/pandas/core/frame.py", line 3270, in _set_value
    series._values[loc] = value
ValueError: setting an array element with a sequence.
"""
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File "mdb_multiple_horizons.py", line 69, in <module>
    mdb.learn(from_data=train_data,
  File "/home/cosmo/anaconda3/envs/mindsdb/lib/python3.8/site-packages/mindsdb_native/libs/controllers/predictor.py", line 302, in learn
    self.transaction.run()
  File "/home/cosmo/anaconda3/envs/mindsdb/lib/python3.8/site-packages/mindsdb_native/libs/controllers/transaction.py", line 274, in run
    self._run()
  File "/home/cosmo/anaconda3/envs/mindsdb/lib/python3.8/site-packages/mindsdb_native/libs/controllers/transaction.py", line 270, in _run
    raise e
  File "/home/cosmo/anaconda3/envs/mindsdb/lib/python3.8/site-packages/mindsdb_native/libs/controllers/transaction.py", line 246, in _run
    self._call_phase_module(module_name='ModelInterface', mode='train')
  File "/home/cosmo/anaconda3/envs/mindsdb/lib/python3.8/site-packages/mindsdb_native/libs/controllers/transaction.py", line 178, in _call_phase_module
    ret = module(self.session, self)(**kwargs)
  File "/home/cosmo/anaconda3/envs/mindsdb/lib/python3.8/site-packages/mindsdb_native/libs/phases/base_module.py", line 53, in __call__
    ret = self.run(**kwargs)
  File "/home/cosmo/anaconda3/envs/mindsdb/lib/python3.8/site-packages/mindsdb_native/libs/phases/model_interface/model_interface.py", line 19, in run
    self.transaction.model_backend.train()
  File "/home/cosmo/anaconda3/envs/mindsdb/lib/python3.8/site-packages/mindsdb_native/libs/phases/model_interface/lightwood_backend.py", line 296, in train
    train_df, secondary_type_dict, _ = self._ts_reshape(self.transaction.input_data.train_df)
  File "/home/cosmo/anaconda3/envs/mindsdb/lib/python3.8/site-packages/mindsdb_native/libs/phases/model_interface/lightwood_backend.py", line 133, in _ts_reshape
    df_arr = pool.map(partial(_ts_order_col_to_cell_lists, historical_columns=ob_arr + self.transaction.lmd['tss']['historical_columns']), df_arr)
  File "/home/cosmo/anaconda3/envs/mindsdb/lib/python3.8/multiprocessing/pool.py", line 364, in map
    return self._map_async(func, iterable, mapstar, chunksize).get()
  File "/home/cosmo/anaconda3/envs/mindsdb/lib/python3.8/multiprocessing/pool.py", line 771, in get
    raise self._value
ValueError: setting an array element with a sequence.```