#!/usr/bin/env python # coding: utf-8 # In[1]: import numpy as np import pandas as pd # In[2]: get_ipython().run_line_magic('matplotlib', 'inline') import matplotlib.pyplot as plt from sklearn.datasets import load_digits img=load_digits() # In[6]: print(img["data"].shape) img_digits=img["data"] target=img["target"] plt.imshow(img_digits[0].reshape((8,8)),cmap="gray",) plt.title(label=target[0]) # In[12]: df_img=pd.DataFrame() for i in range(64): df_img[f"Pixel{i}"]=img_digits[:,i] # In[17]: df_img # In[18]: from sklearn.preprocessing import MinMaxScaler scaler=MinMaxScaler() df_img_scaled=scaler.fit_transform(df_img) # In[21]: from sklearn.cluster import KMeans elbow={"inertia":[],"clusters":[]} for i in range(2,15): model=KMeans(i) elbow["clusters"].append(i) model.fit(df_img_scaled) elbow["inertia"].append(model.inertia_) # In[24]: plt.scatter(x=elbow["clusters"],y=elbow["inertia"]) plt.xlabel("n_clusters") plt.ylabel("inertia") plt.title("Elbow Graph") # In[25]: model_10=KMeans(10) model_10.fit(df_img_scaled) # In[26]: from sklearn.manifold import TSNE tsne=TSNE(2) arr=tsne.fit_transform(df_img_scaled) # In[35]: plt.scatter(arr[:,0],arr[:,1],c=model_10.labels_) # In[38]: import plotly.offline as py import plotly.graph_objs as go import cufflinks as cf cf.offline py.init_notebook_mode() # In[54]: traces=[] for i in range(10): mask=model_10.labels_==i traces.append(go.Scatter(x=arr[mask][:,0],y=arr[mask][:,1],name=f"cluster {i}",mode="markers")) data=go.Data(traces) layout=go.Layout(title="KMeans clustering for the digits") figure=go.Figure(data,layout) py.iplot(figure) # In[ ]: # In[ ]: