code: def buildModelScaleParam(train_data, y, gamX, family, bs):
      numKnots = [5, 6, 7]
      x = ["C1", "C2"]
      h2o_model = H2OGeneralizedAdditiveEstimator(
          family=family,
          gam_columns=gamX,
          scale=[0.001, 0.001, 0.001],
          bs=bs,
          num_knots=numKnots,
      )
      h2o_model.train(x=x, y=y, training_frame=train_data)
      h2o_model2 = H2OGeneralizedAdditiveEstimator(
          family=family,
          gam_columns=gamX,
          scale=[10, 10, 10],
          num_knots=numKnots,
          bs=bs,
      )
      h2o_model2.train(x=x, y=y, training_frame=train_data)
      if family == "binomial":
          logloss1 = h2o_model.logloss()
          logloss2 = h2o_model2.logloss()
          assert not (
              logloss1 == logloss2
          ), "logloss from models with different scale parameters should be different but is not."
      else:
          mse1 = h2o_model.mse()
          mse2 = h2o_model2.mse()
          assert not (
              mse1 == mse2
          ), "mse from models with different scale parameters should be different but is not."
  
imports: from past.utils import old_div
  import sys
  import h2o
  from tests import pyunit_utils
  from h2o.estimators.gam import H2OGeneralizedAdditiveEstimator
label_desc: Use image node_id 2 for calling a global function with example usage: buildModelScaleParam(train_data, y, gamX, family, bs) without return types