Traceback (most recent call last): File "/Users/mhjensen/miniforge3/lib/python3.9/site-packages/jupyter_cache/executors/utils.py", line 58, in single_nb_execution executenb( File "/Users/mhjensen/miniforge3/lib/python3.9/site-packages/nbclient/client.py", line 1305, in execute return NotebookClient(nb=nb, resources=resources, km=km, **kwargs).execute() File "/Users/mhjensen/miniforge3/lib/python3.9/site-packages/jupyter_core/utils/__init__.py", line 166, in wrapped return loop.run_until_complete(inner) File "/Users/mhjensen/miniforge3/lib/python3.9/asyncio/base_events.py", line 647, in run_until_complete return future.result() File "/Users/mhjensen/miniforge3/lib/python3.9/site-packages/nbclient/client.py", line 705, in async_execute await self.async_execute_cell( File "/Users/mhjensen/miniforge3/lib/python3.9/site-packages/nbclient/client.py", line 1058, in async_execute_cell await self._check_raise_for_error(cell, cell_index, exec_reply) File "/Users/mhjensen/miniforge3/lib/python3.9/site-packages/nbclient/client.py", line 914, in _check_raise_for_error raise CellExecutionError.from_cell_and_msg(cell, exec_reply_content) nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell: ------------------ %matplotlib inline import numpy as np import matplotlib.pyplot as plt from sklearn.model_selection import KFold from sklearn.linear_model import Ridge from sklearn.model_selection import cross_val_score from sklearn.preprocessing import PolynomialFeatures # A seed just to ensure that the random numbers are the same for every run. # Useful for eventual debugging. np.random.seed(3155) # Generate the data. nsamples = 100 x = np.random.randn(nsamples) y = 3*x**2 + np.random.randn(nsamples) ## Cross-validation on Ridge regression using KFold only # Decide degree on polynomial to fit poly = PolynomialFeatures(degree = 6) # Decide which values of lambda to use nlambdas = 500 lambdas = np.logspace(-3, 5, nlambdas) # Initialize a KFold instance k = 5 kfold = KFold(n_splits = k) # Perform the cross-validation to estimate MSE scores_KFold = np.zeros((nlambdas, k)) i = 0 for lmb in lambdas: ridge = Ridge(alpha = lmb) j = 0 for train_inds, test_inds in kfold.split(x): xtrain = x[train_inds] ytrain = y[train_inds] xtest = x[test_inds] ytest = y[test_inds] Xtrain = poly.fit_transform(xtrain[:, np.newaxis]) ridge.fit(Xtrain, ytrain[:, np.newaxis]) Xtest = poly.fit_transform(xtest[:, np.newaxis]) ypred = ridge.predict(Xtest) scores_KFold[i,j] = np.sum((ypred - ytest[:, np.newaxis])**2)/np.size(ypred) j += 1 i += 1 estimated_mse_KFold = np.mean(scores_KFold, axis = 1) ## Cross-validation using cross_val_score from sklearn along with KFold # kfold is an instance initialized above as: # kfold = KFold(n_splits = k) estimated_mse_sklearn = np.zeros(nlambdas) i = 0 for lmb in lambdas: ridge = Ridge(alpha = lmb) X = poly.fit_transform(x[:, np.newaxis]) estimated_mse_folds = cross_val_score(ridge, X, y[:, np.newaxis], scoring='neg_mean_squared_error', cv=kfold) # cross_val_score return an array containing the estimated negative mse for every fold. # we have to the the mean of every array in order to get an estimate of the mse of the model estimated_mse_sklearn[i] = np.mean(-estimated_mse_folds) i += 1 ## Plot and compare the slightly different ways to perform cross-validation plt.figure() plt.plot(np.log10(lambdas), estimated_mse_sklearn, label = 'cross_val_score') plt.plot(np.log10(lambdas), estimated_mse_KFold, 'r--', label = 'KFold') plt.xlabel('log10(lambda)') plt.ylabel('mse') plt.legend() plt.show() ------------------ --------------------------------------------------------------------------- ModuleNotFoundError Traceback (most recent call last) Cell In[1], line 1 ----> 1 get_ipython().run_line_magic('matplotlib', 'inline')  3 import numpy as np  4 import matplotlib.pyplot as plt File ~/miniforge3/lib/python3.9/site-packages/IPython/core/interactiveshell.py:2432, in InteractiveShell.run_line_magic(self, magic_name, line, _stack_depth)  2430 kwargs['local_ns'] = self.get_local_scope(stack_depth)  2431 with self.builtin_trap: -> 2432 result = fn(*args, **kwargs)  2434 # The code below prevents the output from being displayed  2435 # when using magics with decorator @output_can_be_silenced  2436 # when the last Python token in the expression is a ';'.  2437 if getattr(fn, magic.MAGIC_OUTPUT_CAN_BE_SILENCED, False): File ~/miniforge3/lib/python3.9/site-packages/IPython/core/magics/pylab.py:99, in PylabMagics.matplotlib(self, line)  97 print("Available matplotlib backends: %s" % backends_list)  98 else: ---> 99 gui, backend = self.shell.enable_matplotlib(args.gui.lower() if isinstance(args.gui, str) else args.gui)  100 self._show_matplotlib_backend(args.gui, backend) File ~/miniforge3/lib/python3.9/site-packages/IPython/core/interactiveshell.py:3606, in InteractiveShell.enable_matplotlib(self, gui)  3585 def enable_matplotlib(self, gui=None):  3586  """Enable interactive matplotlib and inline figure support.  3587  3588  This takes the following steps:  (...)  3604  display figures inline.  3605  """ -> 3606 from matplotlib_inline.backend_inline import configure_inline_support  3608 from IPython.core import pylabtools as pt  3609 gui, backend = pt.find_gui_and_backend(gui, self.pylab_gui_select) File ~/miniforge3/lib/python3.9/site-packages/matplotlib_inline/__init__.py:1 ----> 1 from . import backend_inline, config # noqa  2 __version__ = "0.1.6" # noqa File ~/miniforge3/lib/python3.9/site-packages/matplotlib_inline/backend_inline.py:6  1 """A matplotlib backend for publishing figures via display_data"""  3 # Copyright (c) IPython Development Team.  4 # Distributed under the terms of the BSD 3-Clause License. ----> 6 import matplotlib  7 from matplotlib import colors  8 from matplotlib.backends import backend_agg ModuleNotFoundError: No module named 'matplotlib'