code: def tes_gam_mSpline_coeffs():
      train1 = prepareData(
          "smalldata/glm_test/gaussian_20cols_10000Rows.csv"
      )
      train2 = prepareData(
          "smalldata/glm_test/gaussian_20cols_10000Rows.csv"
      )
      knots1 = [
          -49.98693927762423,
          0.44703511170863297,
          49.97312855846752,
      ]
      frameKnots1 = h2o.H2OFrame(python_obj=knots1)
      knots2 = [
          -49.99386508664034,
          -16.6904002652171,
          16.298265682961386,
          49.98738587466542,
      ]
      frameKnots2 = h2o.H2OFrame(python_obj=knots2)
      knots3 = [
          -49.99241697497996,
          -24.944012655490237,
          0.1578389050436152,
          25.296897954643736,
          49.9876932143425,
      ]
      frameKnots3 = h2o.H2OFrame(python_obj=knots3)
      predict_frame = h2o.import_file(
          "http://h2o-public-test-data.s3.amazonaws.com/smalldata/gam_test/gaussian_mspline_glm_predict.csv"
      )
      gamX = ["C11", "C12", "C13"]
      x = train1.names
      x.remove("C21")
      predictors = [ele for ele in x if not (ele in gamX)]
      buildModelCheckCoeff(
          train1,
          train2,
          predict_frame,
          predictors,
          [frameKnots1.key, frameKnots2.key, frameKnots3.key],
          "C21",
          gamX,
          [3, 4, 5],
          "gaussian",
      )
  
      train1 = prepareData(
          "smalldata/glm_test/binomial_20_cols_10KRows.csv"
      )
      train2 = prepareData(
          "smalldata/glm_test/binomial_20_cols_10KRows.csv"
      )
      predict_frame = h2o.import_file(
          "http://h2o-public-test-data.s3.amazonaws.com/smalldata/gam_test/binomial_mspline_glm_predict.csv"
      )
      train1["C21"] = train1["C21"].asfactor()
      train2["C21"] = train2["C21"].asfactor()
      gamX = ["C11", "C12", "C13"]
      x = train1.names
      x.remove("C21")
      predictors = [ele for ele in x if not (ele in gamX)]
      knots1 = [
          -1.999662934844682,
          -0.008421144219463272,
          1.999459888241264,
      ]
      frameKnots1 = h2o.H2OFrame(python_obj=knots1)
      knots2 = [
          -1.9997515661922347,
          -0.6738945321313676,
          0.6508273358344479,
          1.9992225172848492,
      ]
      frameKnots2 = h2o.H2OFrame(python_obj=knots2)
      knots3 = [
          -1.999891109719008,
          -0.9927241013095163,
          0.02801505726801068,
          1.033088395720594,
          1.9999726397518467,
      ]
      frameKnots3 = h2o.H2OFrame(python_obj=knots3)
      buildModelCheckCoeff(
          train1,
          train2,
          predict_frame,
          predictors,
          [frameKnots1.key, frameKnots2.key, frameKnots3.key],
          "C21",
          gamX,
          [2, 3, 4],
          "binomial",
      )
  
      # add fractional binomial just to make sure it runs
      print("Checking model scoring for fractionalbinomial")
      h2o_data = h2o.import_file(
          pyunit_utils.locate(
              "smalldata/glm_test/binomial_20_cols_10KRows.csv"
          )
      )
      h2o_data["C1"] = h2o_data["C1"].asfactor()
      h2o_data["C2"] = h2o_data["C2"].asfactor()
      h2o_data["C21"] = h2o_data["C21"].asfactor()
      h2o_model = H2OGeneralizedAdditiveEstimator(
          family="fractionalbinomial",
          gam_columns=["C11", "C12", "C13"],
          scale=[1, 1, 1],
          num_knots=[5, 5, 5],
          standardize=True,
          solver="irlsm",
          bs=[3, 3, 3],
      )
      h2o_model.train(x=["C1", "C2"], y="C21", training_frame=h2o_data)
      predictTest = h2o_model.predict(h2o_data)
  
imports: import sys
  import h2o
  from tests import pyunit_utils
  from h2o.estimators.gam import H2OGeneralizedAdditiveEstimator
label_desc: Use image node_id 1 for calling a global function with example usage: tes_gam_mSpline_coeffs() without return types