code: def test_ebm_sparse():
      """Validate running EBM on scipy sparse data"""
      from sklearn.datasets import make_multilabel_classification  # type: ignore
  
      np.random.seed(0)
      n_features = 5
      X, y = make_multilabel_classification(
          n_samples=20,
          sparse=True,
          n_features=n_features,
          n_classes=1,
          n_labels=2,
      )
  
      # train linear model
      clf = ExplainableBoostingClassifier()
      clf.fit(X, y)
  
      assert accuracy_score(y, clf.predict(X)) >= 0.8
      global_exp = clf.explain_global()
      local_exp = clf.explain_local(X, y)
      smoke_test_explanations(global_exp, local_exp, 6002)
  
imports: import math
  from sklearn.metrics import log_loss
  from interpret.utils import make_synthetic
  from ...tutils import synthetic_multiclass, synthetic_classification, iris_classification, smoke_test_explanations
  from ...tutils import synthetic_regression
  from interpret.glassbox import ExplainableBoostingRegressor, ExplainableBoostingClassifier
  from interpret.privacy import DPExplainableBoostingClassifier, DPExplainableBoostingRegressor
  from interpret.utils import inv_link
  from io import StringIO
  import json
  import numpy
  import pandas
  from sklearn.model_selection import train_test_split
  from sklearn.metrics import accuracy_score
  from sklearn.utils.estimator_checks import check_estimator
  import pytest
  import warnings
label_desc: Use image node_id 30 for calling a global function with example usage: test_ebm_sparse() without return types