code: def test_alpha_selection(self):
      ridge_ppm = RidgeRegressorPPM(
          loo=True, alpha_grid=np.logspace(-4, 3, 100)
      )
      ridge_ppm.fit(self.blocked_data.get_all_data(), self.y)
      assert np.isclose(ridge_ppm.alpha_[0], 10.47615752789664)
      logistic_ppm = LogisticClassifierPPM(
          loo=True, alpha_grid=np.logspace(-4, 3, 100)
      )
      logistic_ppm.fit(self.blocked_data.get_all_data(), self.y_bin)
      assert np.isclose(logistic_ppm.alpha_[0], 8.902150854450374)
  
imports: import copy
  import numpy
  import random
  import scipy
  from sklearn.linear_model import Ridge, LinearRegression
  from sklearn.tree import DecisionTreeRegressor
  from sklearn.ensemble import RandomForestRegressor, RandomForestClassifier
  from sklearn.metrics import r2_score, log_loss, roc_auc_score, mean_squared_error
  from imodels.importance.block_transformers import IdentityTransformer, TreeTransformer, CompositeTransformer, MDIPlusDefaultTransformer
  from imodels.importance.ppms import RidgeRegressorPPM, LogisticClassifierPPM, RobustRegressorPPM
  from imodels.importance.mdi_plus import TreeMDIPlus, ForestMDIPlus
  from imodels.importance.rf_plus import RandomForestPlusClassifier
label_desc: Use image node_id 2 for calling the TestPPM obj's underlying member method code with example usage: obj.test_alpha_selection() without return types