import%20marimo%0A%0A__generated_with%20%3D%20%220.23.16%22%0Aapp%20%3D%20marimo.App()%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20marimo%20as%20mo%0A%0A%20%20%20%20return%20(mo%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20METADATA%20%3D%20%7B%0A%20%20%20%20%20%20%20%20%22id%22%3A%20%22regularization%22%2C%0A%20%20%20%20%20%20%20%20%22name%22%3A%20%22Regularization%22%2C%0A%20%20%20%20%20%20%20%20%22kind%22%3A%20%22concept%22%2C%0A%20%20%20%20%20%20%20%20%22difficulty%22%3A%20%22intermediate%22%2C%0A%20%20%20%20%20%20%20%20%22status%22%3A%20%22complete%22%2C%0A%20%20%20%20%20%20%20%20%22topics%22%3A%20%5B%22regularization%22%2C%20%22generalization%22%2C%20%22model_complexity%22%5D%2C%0A%20%20%20%20%20%20%20%20%22related_models%22%3A%20%5B%22linear_regression%22%2C%20%22logistic_regression%22%2C%20%22decision_tree%22%2C%20%22mlp%22%5D%2C%0A%20%20%20%20%20%20%20%20%22prerequisites%22%3A%20%5B%22bias_variance%22%5D%2C%0A%20%20%20%20%7D%0A%20%20%20%20mo.md(f%22%23%20%7BMETADATA%5B'name'%5D%7D%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20In%20one%20sentence%0A%0A%20%20%20%20Regularization%20makes%20some%20fitted%20solutions%20preferable%20to%20others%20so%20the%20learned%20behavior%20is%20more%20likely%20to%20survive%20new%20data.%0A%0A%20%20%20%20%23%23%20Mental%20model%0A%0A%20%20%20%20Fitting%20rewards%20agreement%20with%20training%20examples%3B%20regularization%20charges%20rent%20for%20complexity.%20The%20useful%20balance%20depends%20on%20how%20much%20signal%20and%20data%20the%20problem%20contains.%0A%0A%20%20%20%20%23%23%20Why%20it%20matters%0A%0A%20%20%20%20Flexible%20models%20can%20explain%20both%20signal%20and%20noise.%20Penalties%2C%20early%20stopping%2C%20depth%20limits%2C%20dropout%2C%20and%20augmentation%20all%20constrain%20what%20details%20are%20easy%20to%20learn.%0A%0A%20%20%20%20%23%23%20Experiment%0A%0A%20%20%20%20**Question%3A**%20how%20does%20an%20L2%20penalty%20stabilize%20a%20high-degree%20polynomial%20fit%3F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20numpy%20as%20np%0A%20%20%20%20import%20matplotlib.pyplot%20as%20plt%0A%20%20%20%20from%20sklearn.linear_model%20import%20Ridge%0A%20%20%20%20from%20sklearn.metrics%20import%20mean_squared_error%0A%20%20%20%20from%20sklearn.pipeline%20import%20make_pipeline%0A%20%20%20%20from%20sklearn.preprocessing%20import%20PolynomialFeatures%2C%20StandardScaler%0A%0A%20%20%20%20rng%20%3D%20np.random.default_rng(15)%0A%20%20%20%20x_train%20%3D%20np.sort(rng.uniform(-2.5%2C%202.5%2C%2034))%0A%20%20%20%20y_train%20%3D%20np.sin(1.6%20*%20x_train)%20%2B%20rng.normal(0%2C%200.3%2C%20len(x_train))%0A%20%20%20%20grid%20%3D%20np.linspace(-2.5%2C%202.5%2C%20300)%0A%20%20%20%20truth%20%3D%20np.sin(1.6%20*%20grid)%0A%20%20%20%20return%20(%0A%20%20%20%20%20%20%20%20PolynomialFeatures%2C%0A%20%20%20%20%20%20%20%20Ridge%2C%0A%20%20%20%20%20%20%20%20StandardScaler%2C%0A%20%20%20%20%20%20%20%20grid%2C%0A%20%20%20%20%20%20%20%20make_pipeline%2C%0A%20%20%20%20%20%20%20%20mean_squared_error%2C%0A%20%20%20%20%20%20%20%20plt%2C%0A%20%20%20%20%20%20%20%20truth%2C%0A%20%20%20%20%20%20%20%20x_train%2C%0A%20%20%20%20%20%20%20%20y_train%2C%0A%20%20%20%20)%0A%0A%0A%40app.cell%0Adef%20_(%0A%20%20%20%20PolynomialFeatures%2C%0A%20%20%20%20Ridge%2C%0A%20%20%20%20StandardScaler%2C%0A%20%20%20%20grid%2C%0A%20%20%20%20make_pipeline%2C%0A%20%20%20%20mean_squared_error%2C%0A%20%20%20%20plt%2C%0A%20%20%20%20truth%2C%0A%20%20%20%20x_train%2C%0A%20%20%20%20y_train%2C%0A)%3A%0A%20%20%20%20alphas%20%3D%20%5B0.0%2C%200.01%2C%201.0%2C%20100.0%5D%0A%20%20%20%20fig%2C%20axes%20%3D%20plt.subplots(1%2C%202%2C%20figsize%3D(11%2C%204))%0A%20%20%20%20norms%2C%20errors%20%3D%20%5B%5D%2C%20%5B%5D%0A%20%20%20%20for%20alpha%20in%20alphas%3A%0A%20%20%20%20%20%20%20%20model%20%3D%20make_pipeline(PolynomialFeatures(15)%2C%20StandardScaler()%2C%20Ridge(alpha%3Dalpha))%0A%20%20%20%20%20%20%20%20model.fit(x_train%5B%3A%2C%20None%5D%2C%20y_train)%0A%20%20%20%20%20%20%20%20prediction%20%3D%20model.predict(grid%5B%3A%2C%20None%5D)%0A%20%20%20%20%20%20%20%20ridge%20%3D%20model.named_steps%5B%22ridge%22%5D%0A%20%20%20%20%20%20%20%20norms.append(float((ridge.coef_%20**%202).sum()%20**%200.5))%0A%20%20%20%20%20%20%20%20errors.append(mean_squared_error(truth%2C%20prediction))%0A%20%20%20%20%20%20%20%20axes%5B0%5D.plot(grid%2C%20prediction%2C%20label%3Df%22alpha%3D%7Balpha%3Ag%7D%22)%0A%20%20%20%20axes%5B0%5D.scatter(x_train%2C%20y_train%2C%20color%3D%22black%22%2C%20s%3D18%2C%20alpha%3D0.6)%0A%20%20%20%20axes%5B0%5D.plot(grid%2C%20truth%2C%20color%3D%22grey%22%2C%20linestyle%3D%22--%22%2C%20label%3D%22true%20signal%22)%0A%20%20%20%20axes%5B0%5D.set(title%3D%22Penalty%20changes%20the%20preferred%20fit%22%2C%20xlabel%3D%22x%22%2C%20ylabel%3D%22target%22%2C%20ylim%3D(-2%2C%202))%0A%20%20%20%20axes%5B0%5D.legend(fontsize%3D8)%0A%20%20%20%20axes%5B1%5D.plot(alphas%2C%20norms%2C%20marker%3D%22o%22%2C%20label%3D%22coefficient%20norm%22)%0A%20%20%20%20axes%5B1%5D.plot(alphas%2C%20errors%2C%20marker%3D%22o%22%2C%20label%3D%22new-data%20MSE%22)%0A%20%20%20%20axes%5B1%5D.set_xscale(%22symlog%22%2C%20linthresh%3D0.01)%0A%20%20%20%20axes%5B1%5D.set(title%3D%22Too%20little%20and%20too%20much%20both%20cost%22%2C%20xlabel%3D%22L2%20strength%22)%0A%20%20%20%20axes%5B1%5D.legend()%0A%20%20%20%20plt.tight_layout()%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20Common%20mistake%0A%0A%20%20%20%20Assuming%20stronger%20regularization%20is%20automatically%20safer.%20Excessive%20constraint%20erases%20real%20signal%20and%20creates%20underfitting.%0A%0A%20%20%20%20%23%23%20Diagnosis%0A%0A%20%20%20%20Track%20training%20and%20validation%20performance%20as%20regularization%20changes.%20Inspect%20coefficient%20stability%2C%20tree%20depth%2C%20learning%20curves%2C%20or%20the%20relevant%20measure%20of%20effective%20complexity.%0A%0A%20%20%20%20%23%23%20Practical%20rule%0A%0A%20%20%20%20Choose%20regularization%20strength%20on%20deployment-like%20validation%20data%3B%20increase%20it%20for%20demonstrated%20instability%2C%20not%20as%20a%20ritual.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A
a54267fe0055a0984898725652a748b3