Skip to content

Lightgbm train with custom eval metric error #728

@pplonski

Description

@pplonski

When I try to train LightGMB with custom eval metric accuracy I got error:

'score' Traceback (most recent call last):
  File "/home/piotr/sandbox/tps-may/venv/lib/python3.11/site-packages/supervised/tuner/mljar_tuner.py", line 225, in generate_params
    return self.get_kmeans_features_params(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/piotr/sandbox/tps-may/venv/lib/python3.11/site-packages/supervised/tuner/mljar_tuner.py", line 1188, in get_kmeans_features_params
    df_models, algorithms = self.df_models_algorithms(
                            ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/piotr/sandbox/tps-may/venv/lib/python3.11/site-packages/supervised/tuner/mljar_tuner.py", line 1113, in df_models_algorithms
    df_models.sort_values(by="score", ascending=True, inplace=True)
  File "/home/piotr/sandbox/tps-may/venv/lib/python3.11/site-packages/pandas/core/frame.py", line 7189, in sort_values
    k = self._get_label_or_level_values(by[0], axis=axis)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/piotr/sandbox/tps-may/venv/lib/python3.11/site-packages/pandas/core/generic.py", line 1911, in _get_label_or_level_values
    raise KeyError(key)
KeyError: 'score'

and

cannot reshape array of size 206598 into shape (22955,3)
Traceback (most recent call last):
  File "/home/piotr/sandbox/tps-may/venv/lib/python3.11/site-packages/supervised/base_automl.py", line 1178, in _fit
    trained = self.train_model(params)
              ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/piotr/sandbox/tps-may/venv/lib/python3.11/site-packages/supervised/base_automl.py", line 384, in train_model
    mf.train(results_path, model_subpath)
  File "/home/piotr/sandbox/tps-may/venv/lib/python3.11/site-packages/supervised/model_framework.py", line 249, in train
    learner.fit(
  File "/home/piotr/sandbox/tps-may/venv/lib/python3.11/site-packages/supervised/algorithms/lightgbm.py", line 236, in fit
    self.model = lgb.train(
                 ^^^^^^^^^^
  File "/home/piotr/sandbox/tps-may/venv/lib/python3.11/site-packages/lightgbm/engine.py", line 282, in train
    evaluation_result_list.extend(booster.eval_train(feval))
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/piotr/sandbox/tps-may/venv/lib/python3.11/site-packages/lightgbm/basic.py", line 4125, in eval_train
    return self.__inner_eval(self._train_data_name, 0, feval)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/piotr/sandbox/tps-may/venv/lib/python3.11/site-packages/lightgbm/basic.py", line 4868, in __inner_eval
    feval_ret = eval_function(self.__inner_predict(data_idx), cur_data)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/piotr/sandbox/tps-may/venv/lib/python3.11/site-packages/supervised/utils/metric.py", line 232, in lightgbm_eval_metric_accuracy
    preds = np.reshape(preds, (rows, cols), order="F")
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/piotr/sandbox/tps-may/venv/lib/python3.11/site-packages/numpy/core/fromnumeric.py", line 285, in reshape
    return _wrapfunc(a, 'reshape', newshape, order=order)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/piotr/sandbox/tps-may/venv/lib/python3.11/site-packages/numpy/core/fromnumeric.py", line 59, in _wrapfunc
    return bound(*args, **kwds)
           ^^^^^^^^^^^^^^^^^^^^
ValueError: cannot reshape array of size 206598 into shape (22955,3)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions