code: def test_lightgbm_regressor_with_categorical():
      n_samples = 100
      n_features = 8
      n_categorical = 8
      X, y = make_regression_with_categorical(
          n_samples=n_samples,
          n_features=n_features,
          n_categorical=n_categorical,
          n_informative=n_features,
          random_state=2022,
      )
  
      dtrain = lgb.Dataset(
          X, label=y, categorical_feature=range(n_categorical)
      )
      params = {
          "num_leaves": 64,
          "seed": 0,
          "objective": "regression",
          "metric": "rmse",
          "min_data_per_group": 1,
      }
      lgb_model = lgb.train(
          params,
          dtrain,
          num_boost_round=10,
          valid_sets=[dtrain],
          valid_names=["train"],
      )
      assert (
          count_categorical_split(
              treelite.Model.from_lightgbm(lgb_model)
          )
          > 0
      )
  
      explainer = TreeExplainer(model=lgb_model)
      out = explainer.shap_values(X)
  
      ref_explainer = shap.explainers.Tree(model=lgb_model)
      ref_out = ref_explainer.shap_values(X)
      np.testing.assert_almost_equal(out, ref_out, decimal=5)
      np.testing.assert_almost_equal(
          explainer.expected_value,
          ref_explainer.expected_value,
          decimal=5,
      )
  
imports: from cuml.testing.utils import as_type
  import cuml
  from cuml.ensemble import RandomForestClassifier
  from cuml.ensemble import RandomForestRegressor
  from cuml.common.exceptions import NotFittedError
  from cuml.internals.import_utils import has_sklearn
  from cuml.internals.import_utils import has_lightgbm, has_shap
  from cuml.explainer.tree_shap import TreeExplainer
  from hypothesis import given, settings, assume, HealthCheck, strategies
  from cuml.internals.safe_imports import gpu_only_import
  import json
  import pytest
  import treelite
  from cuml.internals.safe_imports import cpu_only_import
label_desc: Use image node_id 15 for calling a global function with example usage: test_lightgbm_regressor_with_categorical() without return types