%23%20%2F%2F%2F%20script%0A%23%20dependencies%20%3D%20%5B%0A%23%20%20%20%20%20%22marimo%22%2C%0A%23%20%20%20%20%20%22matplotlib%3D%3D3.10.8%22%2C%0A%23%20%20%20%20%20%22numpy%3D%3D2.4.1%22%2C%0A%23%20%20%20%20%20%22scikit-learn%3D%3D1.8.0%22%2C%0A%23%20%5D%0A%23%20requires-python%20%3D%20%22%3E%3D3.13%22%0A%23%20%2F%2F%2F%0A%0Aimport%20marimo%0A%0A__generated_with%20%3D%20%220.19.6%22%0Aapp%20%3D%20marimo.App(width%3D%22medium%22)%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20marimo%20as%20mo%0A%20%20%20%20import%20numpy%20as%20np%0A%20%20%20%20import%20matplotlib.pyplot%20as%20plt%0A%20%20%20%20from%20sklearn.datasets%20import%20load_digits%0A%20%20%20%20return%20load_digits%2C%20mo%2C%20np%2C%20plt%0A%0A%0A%40app.cell%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%20Classification%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(load_digits)%3A%0A%20%20%20%20digits%20%3D%20load_digits()%0A%20%20%20%20return%20(digits%2C)%0A%0A%0A%40app.cell%0Adef%20_(digits)%3A%0A%20%20%20%20X%2C%20y%20%3D%20digits.data%2C%20digits.target%0A%20%20%20%20return%20X%2C%20y%0A%0A%0A%40app.cell%0Adef%20_(X)%3A%0A%20%20%20%20X.shape%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(y)%3A%0A%20%20%20%20y.shape%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(X)%3A%0A%20%20%20%20X%5B0%5D%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(y)%3A%0A%20%20%20%20y%5B0%5D%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(X%2C%20plt%2C%20y)%3A%0A%0A%20%20%20%20fig%2C%20reps%20%3D%20plt.subplots(ncols%3D3%2C%20nrows%3D3%2C%20tight_layout%3DTrue)%0A%20%20%20%20for%20indice%2C%20rep%20in%20enumerate(reps.ravel())%3A%0A%20%20%20%20%20%20%20%20rep.set_title(f%22classe%3A%20%7By%5Bindice%5D%7D%22)%0A%20%20%20%20%20%20%20%20rep.imshow(X%5Bindice%5D.reshape(8%2C%208)%2C%20cmap%3D%22gray_r%22)%0A%20%20%20%20rep%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%20Clustering%2FEmbedding%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(np%2C%20plt)%3A%0A%20%20%20%20size%3D(100%2C)%0A%20%20%20%20rs1%20%3D%20np.random.uniform(low%3D0.%2C%20high%3D1.5%2C%20size%3Dsize)%0A%20%20%20%20rs2%20%3D%20np.random.uniform(low%3D2.5%2C%20high%3D4.%2C%20size%3Dsize)%0A%20%20%20%20ts1%20%3D%20np.random.uniform(low%3D0.%2C%20high%3D2%20*%20np.pi%2C%20size%3Dsize)%0A%20%20%20%20ts2%20%3D%20np.random.uniform(low%3D0.%2C%20high%3D2%20*%20np.pi%2C%20size%3Dsize)%0A%0A%20%20%20%20x1%20%3D%20rs1%20*%20np.cos(ts1)%0A%20%20%20%20y1%20%3D%20rs1%20*%20np.sin(ts1)%0A%20%20%20%20x2%20%3D%20rs2%20*%20np.cos(ts2)%0A%20%20%20%20y2%20%3D%20rs2%20*%20np.sin(ts2)%0A%0A%20%20%20%20_fig%2C%20_rep%20%3D%20plt.subplots()%0A%20%20%20%20_rep.set_title(%22What%20groups%20do%20you%20see%3F%22)%0A%20%20%20%20_rep.scatter(x1%2C%20y1%2C%20c%3D%22blue%22)%0A%20%20%20%20_rep.scatter(x2%2C%20y2%2C%20c%3D%22blue%22)%0A%20%20%20%20_rep.axis(%22equal%22)%0A%20%20%20%20_rep%0A%20%20%20%20return%20x1%2C%20x2%2C%20y1%2C%20y2%0A%0A%0A%40app.cell%0Adef%20_(plt%2C%20x1%2C%20x2%2C%20y1%2C%20y2)%3A%0A%20%20%20%20_fig%2C%20_rep%20%3D%20plt.subplots()%0A%20%20%20%20_rep.set_title(%22Visually%22)%0A%20%20%20%20_rep.scatter(x1%2C%20y1%2C%20c%3D%22blue%22)%0A%20%20%20%20_rep.scatter(x2%2C%20y2%2C%20c%3D%22red%22)%0A%20%20%20%20_rep.axis(%22equal%22)%0A%20%20%20%20_rep%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(np%2C%20plt%2C%20x1%2C%20x2%2C%20y1%2C%20y2)%3A%0A%20%20%20%20z1%20%3D%20np.sqrt(x1%20**%202%20%2B%20y1%20**%202)%0A%20%20%20%20z2%20%3D%20np.sqrt(x2%20**%202%20%2B%20y2%20**%202)%0A%0A%20%20%20%20_fig%20%3D%20plt.figure()%0A%20%20%20%20_rep%20%3D%20_fig.add_subplot(projection%3D%223d%22)%0A%0A%20%20%20%20_rep.scatter(x1%2C%20y1%2C%20z1%2C%20color%3D%22blue%22)%0A%20%20%20%20_rep.scatter(x2%2C%20y2%2C%20z2%2C%20color%3D%22red%22)%0A%20%20%20%20_rep.view_init(10%2C%2050)%0A%20%20%20%20_rep%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_()%3A%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
11750adcc39fe6b51de352a4a21ca804