mljar / mljar-supervised

Python package for AutoML on Tabular Data with Feature Engineering, Hyper-Parameters Tuning, Explanations and Automatic Documentation
https://mljar.com
MIT License
3.02k stars 403 forks source link

ValueError: Multi-dimensional indexing (e.g. `obj[:, None]`) is no longer supported #684

Closed Karlheinzniebuhr closed 2 days ago

Karlheinzniebuhr commented 9 months ago

Getting these errors while training in perform mode.

automl = AutoML(mode='perform', results_path=model_path, total_time_limit=24*3600, eval_metric='auto', random_state=0)
automl.fit(X_train, y_train)
## Error for 1_Default_LightGBM

Multi-dimensional indexing (e.g. `obj[:, None]`) is no longer supported. Convert to a numpy array before indexing instead.
Traceback (most recent call last):
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\supervised\base_automl.py", line 1195, in _fit
    trained = self.train_model(params)
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\supervised\base_automl.py", line 407, in train_model
    mf.save(results_path, model_subpath)
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\supervised\model_framework.py", line 644, in save
    LearningCurves.plot(
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\supervised\utils\learning_curves.py", line 46, in plot
    LearningCurves.plot_iterations(
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\supervised\utils\learning_curves.py", line 93, in plot_iterations
    plt.plot(
  File "C:\Users\Karl\AppData\Roaming\Python\Python39\site-packages\matplotlib\pyplot.py", line 3019, in plot
    return gca().plot(
  File "C:\Users\Karl\AppData\Roaming\Python\Python39\site-packages\matplotlib\axes\_axes.py", line 1605, in plot
    lines = [*self._get_lines(*args, data=data, **kwargs)]
  File "C:\Users\Karl\AppData\Roaming\Python\Python39\site-packages\matplotlib\axes\_base.py", line 315, in __call__
    yield from self._plot_args(this, kwargs)
  File "C:\Users\Karl\AppData\Roaming\Python\Python39\site-packages\matplotlib\axes\_base.py", line 490, in _plot_args
    x = _check_1d(xy[0])
  File "C:\Users\Karl\AppData\Roaming\Python\Python39\site-packages\matplotlib\cbook\__init__.py", line 1362, in _check_1d
    ndim = x[:, None].ndim
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\pandas\core\series.py", line 1072, in __getitem__
    return self._get_with(key)
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\pandas\core\series.py", line 1082, in _get_with
    return self._get_values_tuple(key)
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\pandas\core\series.py", line 1122, in _get_values_tuple
    disallow_ndim_indexing(result)
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\pandas\core\indexers\utils.py", line 341, in disallow_ndim_indexing
    raise ValueError(
ValueError: Multi-dimensional indexing (e.g. `obj[:, None]`) is no longer supported. Convert to a numpy array before indexing instead.

Please set a GitHub issue with above error message at: https://github.com/mljar/mljar-supervised/issues/new

## Error for 2_Default_Xgboost

Multi-dimensional indexing (e.g. `obj[:, None]`) is no longer supported. Convert to a numpy array before indexing instead.
Traceback (most recent call last):
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\supervised\base_automl.py", line 1195, in _fit
    trained = self.train_model(params)
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\supervised\base_automl.py", line 407, in train_model
    mf.save(results_path, model_subpath)
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\supervised\model_framework.py", line 644, in save
    LearningCurves.plot(
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\supervised\utils\learning_curves.py", line 46, in plot
    LearningCurves.plot_iterations(
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\supervised\utils\learning_curves.py", line 93, in plot_iterations
    plt.plot(
  File "C:\Users\Karl\AppData\Roaming\Python\Python39\site-packages\matplotlib\pyplot.py", line 3019, in plot
    return gca().plot(
  File "C:\Users\Karl\AppData\Roaming\Python\Python39\site-packages\matplotlib\axes\_axes.py", line 1605, in plot
    lines = [*self._get_lines(*args, data=data, **kwargs)]
  File "C:\Users\Karl\AppData\Roaming\Python\Python39\site-packages\matplotlib\axes\_base.py", line 315, in __call__
    yield from self._plot_args(this, kwargs)
  File "C:\Users\Karl\AppData\Roaming\Python\Python39\site-packages\matplotlib\axes\_base.py", line 490, in _plot_args
    x = _check_1d(xy[0])
  File "C:\Users\Karl\AppData\Roaming\Python\Python39\site-packages\matplotlib\cbook\__init__.py", line 1362, in _check_1d
    ndim = x[:, None].ndim
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\pandas\core\series.py", line 1072, in __getitem__
    return self._get_with(key)
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\pandas\core\series.py", line 1082, in _get_with
    return self._get_values_tuple(key)
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\pandas\core\series.py", line 1122, in _get_values_tuple
    disallow_ndim_indexing(result)
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\pandas\core\indexers\utils.py", line 341, in disallow_ndim_indexing
    raise ValueError(
ValueError: Multi-dimensional indexing (e.g. `obj[:, None]`) is no longer supported. Convert to a numpy array before indexing instead.

Please set a GitHub issue with above error message at: https://github.com/mljar/mljar-supervised/issues/new

## Error for 3_Default_CatBoost

Multi-dimensional indexing (e.g. `obj[:, None]`) is no longer supported. Convert to a numpy array before indexing instead.
Traceback (most recent call last):
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\supervised\base_automl.py", line 1195, in _fit
    trained = self.train_model(params)
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\supervised\base_automl.py", line 407, in train_model
    mf.save(results_path, model_subpath)
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\supervised\model_framework.py", line 644, in save
    LearningCurves.plot(
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\supervised\utils\learning_curves.py", line 46, in plot
    LearningCurves.plot_iterations(
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\supervised\utils\learning_curves.py", line 93, in plot_iterations
    plt.plot(
  File "C:\Users\Karl\AppData\Roaming\Python\Python39\site-packages\matplotlib\pyplot.py", line 3019, in plot
    return gca().plot(
  File "C:\Users\Karl\AppData\Roaming\Python\Python39\site-packages\matplotlib\axes\_axes.py", line 1605, in plot
    lines = [*self._get_lines(*args, data=data, **kwargs)]
  File "C:\Users\Karl\AppData\Roaming\Python\Python39\site-packages\matplotlib\axes\_base.py", line 315, in __call__
    yield from self._plot_args(this, kwargs)
  File "C:\Users\Karl\AppData\Roaming\Python\Python39\site-packages\matplotlib\axes\_base.py", line 490, in _plot_args
    x = _check_1d(xy[0])
  File "C:\Users\Karl\AppData\Roaming\Python\Python39\site-packages\matplotlib\cbook\__init__.py", line 1362, in _check_1d
    ndim = x[:, None].ndim
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\pandas\core\series.py", line 1072, in __getitem__
    return self._get_with(key)
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\pandas\core\series.py", line 1082, in _get_with
    return self._get_values_tuple(key)
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\pandas\core\series.py", line 1122, in _get_values_tuple
    disallow_ndim_indexing(result)
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\pandas\core\indexers\utils.py", line 341, in disallow_ndim_indexing
    raise ValueError(
ValueError: Multi-dimensional indexing (e.g. `obj[:, None]`) is no longer supported. Convert to a numpy array before indexing instead.

Please set a GitHub issue with above error message at: https://github.com/mljar/mljar-supervised/issues/new

## Error for 4_Default_NeuralNetwork

Multi-dimensional indexing (e.g. `obj[:, None]`) is no longer supported. Convert to a numpy array before indexing instead.
Traceback (most recent call last):
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\supervised\base_automl.py", line 1195, in _fit
    trained = self.train_model(params)
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\supervised\base_automl.py", line 407, in train_model
    mf.save(results_path, model_subpath)
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\supervised\model_framework.py", line 644, in save
    LearningCurves.plot(
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\supervised\utils\learning_curves.py", line 46, in plot
    LearningCurves.plot_iterations(
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\supervised\utils\learning_curves.py", line 93, in plot_iterations
    plt.plot(
  File "C:\Users\Karl\AppData\Roaming\Python\Python39\site-packages\matplotlib\pyplot.py", line 3019, in plot
    return gca().plot(
  File "C:\Users\Karl\AppData\Roaming\Python\Python39\site-packages\matplotlib\axes\_axes.py", line 1605, in plot
    lines = [*self._get_lines(*args, data=data, **kwargs)]
  File "C:\Users\Karl\AppData\Roaming\Python\Python39\site-packages\matplotlib\axes\_base.py", line 315, in __call__
    yield from self._plot_args(this, kwargs)
  File "C:\Users\Karl\AppData\Roaming\Python\Python39\site-packages\matplotlib\axes\_base.py", line 490, in _plot_args
    x = _check_1d(xy[0])
  File "C:\Users\Karl\AppData\Roaming\Python\Python39\site-packages\matplotlib\cbook\__init__.py", line 1362, in _check_1d
    ndim = x[:, None].ndim
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\pandas\core\series.py", line 1072, in __getitem__
    return self._get_with(key)
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\pandas\core\series.py", line 1082, in _get_with
    return self._get_values_tuple(key)
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\pandas\core\series.py", line 1122, in _get_values_tuple
    disallow_ndim_indexing(result)
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\pandas\core\indexers\utils.py", line 341, in disallow_ndim_indexing
    raise ValueError(
ValueError: Multi-dimensional indexing (e.g. `obj[:, None]`) is no longer supported. Convert to a numpy array before indexing instead.

Please set a GitHub issue with above error message at: https://github.com/mljar/mljar-supervised/issues/new

## Error for 5_Default_RandomForest

Multi-dimensional indexing (e.g. `obj[:, None]`) is no longer supported. Convert to a numpy array before indexing instead.
Traceback (most recent call last):
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\supervised\base_automl.py", line 1195, in _fit
    trained = self.train_model(params)
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\supervised\base_automl.py", line 407, in train_model
    mf.save(results_path, model_subpath)
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\supervised\model_framework.py", line 644, in save
    LearningCurves.plot(
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\supervised\utils\learning_curves.py", line 46, in plot
    LearningCurves.plot_iterations(
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\supervised\utils\learning_curves.py", line 93, in plot_iterations
    plt.plot(
  File "C:\Users\Karl\AppData\Roaming\Python\Python39\site-packages\matplotlib\pyplot.py", line 3019, in plot
    return gca().plot(
  File "C:\Users\Karl\AppData\Roaming\Python\Python39\site-packages\matplotlib\axes\_axes.py", line 1605, in plot
    lines = [*self._get_lines(*args, data=data, **kwargs)]
  File "C:\Users\Karl\AppData\Roaming\Python\Python39\site-packages\matplotlib\axes\_base.py", line 315, in __call__
    yield from self._plot_args(this, kwargs)
  File "C:\Users\Karl\AppData\Roaming\Python\Python39\site-packages\matplotlib\axes\_base.py", line 490, in _plot_args
    x = _check_1d(xy[0])
  File "C:\Users\Karl\AppData\Roaming\Python\Python39\site-packages\matplotlib\cbook\__init__.py", line 1362, in _check_1d
    ndim = x[:, None].ndim
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\pandas\core\series.py", line 1072, in __getitem__
    return self._get_with(key)
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\pandas\core\series.py", line 1082, in _get_with
    return self._get_values_tuple(key)
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\pandas\core\series.py", line 1122, in _get_values_tuple
    disallow_ndim_indexing(result)
  File "c:\ProgramData\anaconda3\envs\ML\lib\site-packages\pandas\core\indexers\utils.py", line 341, in disallow_ndim_indexing
    raise ValueError(
ValueError: Multi-dimensional indexing (e.g. `obj[:, None]`) is no longer supported. Convert to a numpy array before indexing instead.

Please set a GitHub issue with above error message at: https://github.com/mljar/mljar-supervised/issues/new
pplonski commented 9 months ago

Hi @Karlheinzniebuhr,

Thank you for reporting. What version of mljar and numpy are you using?

Karlheinzniebuhr commented 9 months ago

@pplonski

mljar-supervised          1.1.1              pyhd8ed1ab_0    conda-forge
numpy                     1.24.3           py39h79a8e48_1    anaconda
numpy-base                1.24.3           py39h8a87ada_1    anaconda
pplonski commented 9 months ago

thank you @Karlheinzniebuhr, could you please matplotlib and pandas version as well? Your error looks similar to this one https://stackoverflow.com/questions/75939123/valueerror-multi-dimensional-indexing-e-g-obj-none-is-no-longer-suppor

Karlheinzniebuhr commented 9 months ago

thank you @Karlheinzniebuhr, could you please matplotlib and pandas version as well? Your error looks similar to this one https://stackoverflow.com/questions/75939123/valueerror-multi-dimensional-indexing-e-g-obj-none-is-no-longer-suppor

sure,

matplotlib-base           3.7.2            py39h4ed8f06_0    anaconda
matplotlib-inline         0.1.6            py39haa95532_0    anaconda
pandas                    2.1.1            py39h4ed8f06_0    anaconda
fiaosborne commented 3 months ago

Hello, did you ever end up finding the right combination of library versions to avoid this problem? Also does this impact the results? I am still getting the prediction outputs I expect but can these results be trusted given this error?

pplonski commented 3 months ago

Hi @fiaosborne,

I didnt observe this error, I'm using latest numpy and matplotlib. Anyway, the error was created during producing plots for report, that's why model training and predictions are not affected.

May I ask what is your use case?