Code in Solution Throwing Error,

Running same code as given in solution:

from sklearn.model_selection import cross_val_score

learning_rate = [0.01, 0.1, 1, 10]
max_leaf_nodes = [3, 10, 30]

best_score = 0
best_params = {}
for lr in learning_rate:
    for mln in max_leaf_nodes:
        print(f"Evaluating model with learning rate {lr:.3f}"
              f" and max leaf nodes {mln}... ", end="")
        model.set_params(classifier__learning_rate=lr,classifier__max_leaf_nodes=mln)
        scores = cross_val_score(model, X_train, y_train, cv=2)
        mean_score = scores.mean()
        print(f"score: {mean_score:.3f}")
        if mean_score > best_score:
            best_score = mean_score
            best_params = {'learning-rate': lr, 'max leaf nodes': mln}
            print(f"Found new best model with score {best_score:.3f}!")

print(f"The best accuracy obtained is {best_score:.3f}")
print(f"The best parameters found are:\n {best_params}")

Evaluating model with 0.010 and max leaf nodes 3...
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-52-3fa1bc943941> in <module>
     11               f" and max leaf nodes {mln}...",end="")
     12         model.set_params(classifier__learning_rate = lr,
---> 13                          classifier__max_leaf_nodes=mln)
     14         scores = cross_val_score(model,X_train,y_train,cv=2)
     15         mean_score = scores.mean()

C:\ProgramData\Anaconda3\lib\site-packages\sklearn\pipeline.py in set_params(self, **kwargs)
    161         self
    162         """
--> 163         self._set_params('steps', **kwargs)
    164         return self
    165 

C:\ProgramData\Anaconda3\lib\site-packages\sklearn\utils\metaestimators.py in _set_params(self, attr, **params)
     48                 self._replace_estimator(attr, name, params.pop(name))
     49         # 3. Step parameters and other initialisation arguments
---> 50         super().set_params(**params)
     51         return self
     52 

C:\ProgramData\Anaconda3\lib\site-packages\sklearn\base.py in set_params(self, **params)
    225             # Simple optimization to gain speed (inspect is slow)
    226             return self
--> 227         valid_params = self.get_params(deep=True)
    228 
    229         nested_params = defaultdict(dict)  # grouped by prefix

C:\ProgramData\Anaconda3\lib\site-packages\sklearn\pipeline.py in get_params(self, deep)
    150             Parameter names mapped to their values.
    151         """
--> 152         return self._get_params('steps', deep=deep)
    153 
    154     def set_params(self, **kwargs):

C:\ProgramData\Anaconda3\lib\site-packages\sklearn\utils\metaestimators.py in _get_params(self, attr, deep)
     30         for name, estimator in estimators:
     31             if hasattr(estimator, 'get_params'):
---> 32                 for key, value in estimator.get_params(deep=True).items():
     33                     out['%s__%s' % (name, key)] = value
     34         return out

C:\ProgramData\Anaconda3\lib\site-packages\sklearn\compose\_column_transformer.py in get_params(self, deep)
    216             Parameter names mapped to their values.
    217         """
--> 218         return self._get_params('_transformers', deep=deep)
    219 
    220     def set_params(self, **kwargs):

C:\ProgramData\Anaconda3\lib\site-packages\sklearn\utils\metaestimators.py in _get_params(self, attr, deep)
     26         if not deep:
     27             return out
---> 28         estimators = getattr(self, attr)
     29         out.update(estimators)
     30         for name, estimator in estimators:

C:\ProgramData\Anaconda3\lib\site-packages\sklearn\compose\_column_transformer.py in _transformers(self)
    194         of tuples of len 2.
    195         """
--> 196         return [(name, trans) for name, trans, _ in self.transformers]
    197 
    198     @_transformers.setter

C:\ProgramData\Anaconda3\lib\site-packages\sklearn\compose\_column_transformer.py in <listcomp>(.0)
    194         of tuples of len 2.
    195         """
--> 196         return [(name, trans) for name, trans, _ in self.transformers]
    197 
    198     @_transformers.setter

ValueError: too many values to unpack (expected 3)

I think that there is something wrong with you definition of model but you do not provide the code.
If you provide the code, I think that we could help (you can as well compare you definition with the solution if you want)
I assume that it is not the same otherwise it would work :wink:

Thanks for Reply. It is fixed. I was getting error due to older version of scikit-learn