code: def test_boston_OHE_plus_trees(self):
      data = load_boston()
  
      pl = Pipeline(
          [
              (
                  "OHE",
                  OneHotEncoder(categorical_features=[8], sparse=False),
              ),
              ("Trees", GradientBoostingRegressor(random_state=1)),
          ]
      )
  
      pl.fit(data.data, data.target)
  
      # Convert the model
      spec = convert(pl, data.feature_names, "target")
  
      if _is_macos() and _macos_version() >= (10, 13):
          # Get predictions
          df = pd.DataFrame(data.data, columns=data.feature_names)
          df["prediction"] = pl.predict(data.data)
  
          # Evaluate it
          result = evaluate_regressor(spec, df, "target", verbose=False)
  
          assert result["max_error"] < 0.0001
  
file_path: turicreate/src/external/coremltools_wrap/coremltools/coremltools/test/sklearn_tests/test_composite_pipelines.py
imports: import unittest
  import os
  import pandas
  import itertools
  import numpy
  from coremltools._deps import _HAS_SKLEARN
  from coremltools.models.utils import evaluate_transformer
  from coremltools.models.utils import evaluate_regressor
  from coremltools.models.utils import _macos_version, _is_macos
  from coremltools.converters.sklearn import convert
label_desc: Use image node_id 2 for calling the GradientBoostingRegressorBostonHousingScikitNumericTest obj's underlying member method code with example usage: obj.test_boston_OHE_plus_trees() without return types