Kmeans Example Mnnit

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 23

kmeans-example-mnnit

May 13, 2024

Example-1
[1]: import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs

[2]: X,y = make_blobs(n_samples = 500,n_features = 2,centers = 3,random_state = 23)

[3]: X

[3]: array([[-4.96938657e+00, 3.53724005e+00],


[-4.81246011e+00, 5.14500747e+00],
[-5.02457784e+00, 3.16461048e+00],
[ 6.42385686e+00, -3.54076191e+00],
[-6.62888728e+00, 2.31853249e+00],
[-6.68706136e+00, 3.09425861e+00],
[-7.39409102e-01, 1.07626303e+01],
[ 6.31100474e+00, -6.67020069e+00],
[ 3.21685138e-01, 9.69462806e+00],
[ 1.84611290e-01, 1.01316564e+01],
[ 2.09690921e-01, 1.02065003e+01],
[ 3.59151491e-01, 8.45404202e+00],
[-5.64775461e+00, 3.83382472e+00],
[-6.06049855e+00, 2.83328976e+00],
[-6.35760385e+00, 4.72547889e+00],
[-6.15384981e+00, 1.85617607e+00],
[-6.08283166e+00, 4.44970935e+00],
[ 5.72469417e-01, 9.17315007e+00],
[-5.37336705e+00, 4.35938585e+00],
[ 4.55964717e+00, -4.67524612e+00],
[-1.41835597e+00, 9.50575600e+00],
[ 5.19947795e+00, -2.78323398e+00],
[ 1.26332633e+00, 1.12939995e+01],
[ 9.08379982e-01, 1.06390250e+01],
[ 9.08162889e-01, 7.72212835e+00],
[-5.53208661e+00, 2.14584119e+00],
[ 1.55904559e-01, 9.02054242e+00],
[-6.07298516e+00, 3.79795196e+00],

1
[ 1.65274092e+00, 9.48856216e+00],
[ 3.30815901e+00, -4.80266402e+00],
[ 1.02281779e+00, 1.21267548e+01],
[-7.34607078e-01, 8.94948138e+00],
[ 3.59379934e-01, 9.87519697e+00],
[-7.73884510e-01, 9.37660962e+00],
[ 4.99147652e+00, -4.17062657e+00],
[ 4.71020755e+00, -3.29344129e+00],
[ 4.20290178e+00, -3.82703751e+00],
[-5.50967106e+00, 3.25309533e+00],
[ 9.99573665e-01, 8.19343928e+00],
[ 4.87023996e+00, -3.80487675e+00],
[-1.42289767e+00, 7.49542074e+00],
[ 9.52153167e-01, 8.91671319e+00],
[ 4.68427469e+00, -5.10233340e+00],
[ 4.74356798e+00, -4.56211477e+00],
[-1.95681101e-01, 9.73304584e+00],
[ 1.19876192e+00, 6.58489480e+00],
[ 4.49315753e+00, -4.65257004e+00],
[-2.96692770e+00, 3.78054620e+00],
[-4.51912513e+00, 4.68463240e+00],
[-6.17385425e+00, 3.86795651e+00],
[ 6.08978333e+00, -4.85655517e+00],
[-4.65624261e-01, 9.15038328e+00],
[-1.22348142e+00, 7.99191329e+00],
[-6.16819317e+00, 4.34706426e+00],
[-5.14656204e-01, 8.68062006e+00],
[-6.05413242e+00, 4.55940255e+00],
[ 5.68167662e+00, -4.79189072e+00],
[-8.34341693e+00, 3.09516217e+00],
[ 6.03926545e+00, -4.31037640e+00],
[ 3.76554564e+00, -4.57335463e+00],
[ 5.07448846e+00, -4.03662732e+00],
[ 4.74888266e+00, -5.12207651e+00],
[ 5.14666036e+00, -3.75620618e+00],
[ 4.62381119e+00, -5.02110222e+00],
[ 6.06065906e+00, -5.24600542e+00],
[-6.27711276e+00, 3.77067445e+00],
[-6.23192944e+00, 4.55660548e+00],
[-5.77545625e+00, 2.98390333e+00],
[ 3.75194169e+00, -4.23473772e+00],
[ 6.57216370e+00, -3.72520374e+00],
[ 5.41814352e+00, -2.06334414e+00],
[ 6.61970440e+00, -6.01753129e+00],
[-5.46784934e+00, 5.09881465e+00],
[-5.02319188e+00, 1.86224079e+00],
[ 7.87109184e-01, 8.12181275e+00],

2
[ 5.16404686e+00, -3.13447754e+00],
[ 3.08183295e+00, -4.14558414e+00],
[ 7.00056314e+00, -5.41661498e+00],
[ 5.20463752e+00, -4.87773214e+00],
[-6.97492325e-01, 7.92931020e+00],
[-6.49464975e+00, 4.43353133e+00],
[ 3.59273554e-03, 8.31576569e+00],
[-5.02339010e+00, 2.80874024e+00],
[ 7.83787357e-01, 1.02670397e+01],
[ 4.84501179e-02, 8.60526649e+00],
[ 4.87354701e+00, -5.53495239e+00],
[ 1.72193124e+00, 8.99227566e+00],
[-4.68589336e+00, 3.94144350e+00],
[ 4.56483295e+00, -4.64660054e+00],
[-4.71618713e+00, 3.48565376e+00],
[-4.88319779e-01, 8.21702074e+00],
[ 6.66925828e+00, -3.00745830e+00],
[ 4.55527195e-01, 8.17826172e+00],
[ 2.03654438e+00, 9.75988129e+00],
[-9.78590346e-01, 8.31733189e+00],
[ 6.09428023e+00, -5.10122773e+00],
[ 6.92149581e+00, -5.64627824e+00],
[-6.15363766e+00, 3.26123536e+00],
[-5.46566548e+00, 1.60004399e+00],
[ 4.02653610e+00, -3.88706769e+00],
[ 2.24860129e-01, 9.12939344e+00],
[-5.01027986e+00, 3.63497962e+00],
[-5.60037907e+00, 2.18541676e+00],
[ 1.60605585e+00, 1.03543766e+01],
[ 5.14270950e+00, -3.95385825e+00],
[-8.37732295e-01, 8.30344718e+00],
[ 4.91188196e+00, -4.72869556e+00],
[ 5.19958403e+00, -3.72089384e+00],
[-4.62867620e+00, 2.62492666e+00],
[-3.86941812e+00, 3.95106964e+00],
[ 1.04958131e+00, 8.67110994e+00],
[-6.37197960e+00, 3.89544090e+00],
[ 1.73464411e+00, 1.02513468e+01],
[-7.32469501e+00, 2.35454445e+00],
[ 1.38684365e+00, 8.84521734e+00],
[-5.73784147e+00, 3.93129596e+00],
[ 4.13673906e+00, -2.98883630e+00],
[-2.01830331e-01, 8.25983380e+00],
[-4.64124675e+00, 2.37938814e+00],
[ 3.87795897e+00, -3.20109945e+00],
[-5.19896449e+00, 4.14571386e+00],
[ 5.22069058e+00, -2.92058328e+00],

3
[ 4.52104375e+00, -4.36904722e+00],
[ 3.88405108e+00, -5.13432305e+00],
[ 1.26695351e+00, 1.08723419e+01],
[-4.88993413e+00, 2.88276856e+00],
[ 7.03074120e+00, -4.69417967e+00],
[-4.94718662e+00, 3.53359842e+00],
[-5.82691998e+00, 4.83625394e+00],
[-7.37483576e+00, 5.04289994e+00],
[-2.04390810e+00, 8.60597809e+00],
[-4.81529133e+00, 3.28920847e+00],
[-3.09530058e+00, 2.82999132e+00],
[-5.83794310e+00, 3.53976632e+00],
[ 7.25872544e+00, -2.55308879e+00],
[ 5.27315252e+00, -4.75333266e+00],
[-6.68591494e+00, 2.29128851e+00],
[ 3.66279288e+00, -4.79263715e+00],
[-4.90333999e+00, 3.61197213e+00],
[-4.22808308e-01, 9.12840303e+00],
[ 6.03953791e+00, -5.54416865e+00],
[ 8.45010026e-01, 7.84608217e+00],
[ 2.84380736e-01, 8.31175836e+00],
[-7.21005953e+00, 4.30968526e+00],
[ 2.74633752e-01, 8.89381450e+00],
[ 5.72800962e+00, -4.90894949e+00],
[ 5.30665455e+00, -4.85966438e+00],
[-5.32649435e+00, 3.45947224e+00],
[-4.13834373e+00, 6.20891932e+00],
[-4.44664481e+00, 1.73051694e+00],
[-1.50131409e-03, 9.60939224e+00],
[-5.78908921e+00, 5.23832401e+00],
[-1.37729538e+00, 9.40051128e+00],
[-7.44479061e+00, 4.13447348e+00],
[ 1.41138047e+00, 8.33368847e+00],
[-5.93991357e+00, 5.45010951e+00],
[-6.12460250e+00, 2.72452580e+00],
[ 5.84565586e+00, -4.52571129e+00],
[ 4.78510437e-02, 8.91685572e+00],
[ 5.83730893e+00, -4.57023945e+00],
[-5.50819922e+00, 3.30005003e+00],
[ 5.00669056e+00, -3.48860443e+00],
[ 3.37430893e+00, -5.36679032e+00],
[-5.86266563e+00, 5.62828300e+00],
[ 6.42280301e+00, -3.74572379e+00],
[ 5.80217001e+00, -4.56173751e+00],
[-4.94659463e+00, 3.13106761e+00],
[ 5.91651185e+00, -5.50136109e+00],
[-5.84490404e+00, 1.97198984e+00],

4
[ 4.45023012e+00, -5.61121440e+00],
[-5.68217002e+00, 4.81388241e+00],
[ 4.28195445e-01, 8.16360751e+00],
[ 3.54405746e+00, -4.05027387e+00],
[-4.49405542e-01, 7.92771688e+00],
[-3.62217530e+00, 3.75527034e+00],
[ 6.38558031e+00, -4.55811050e+00],
[-5.24663884e+00, 3.24924050e+00],
[ 8.20199628e-02, 7.74821019e+00],
[-6.67547543e+00, 2.18692912e+00],
[ 6.06443975e-01, 8.35313873e+00],
[-5.48946175e+00, 2.57241417e+00],
[-8.80925978e-01, 9.19288700e+00],
[ 6.71200876e+00, -2.90064632e+00],
[-3.79591387e+00, 5.50756359e+00],
[ 4.69699102e-01, 8.06161187e+00],
[ 3.46220445e+00, -4.77377759e+00],
[ 7.83850157e-01, 9.03897535e+00],
[ 7.66580337e-01, 9.35087172e+00],
[-3.32073601e-01, 8.44574946e+00],
[-4.76981001e-01, 7.34114297e+00],
[-4.96630496e+00, 4.32855560e+00],
[-6.01264770e-01, 7.67767587e+00],
[ 3.20776485e-01, 9.16731617e+00],
[-6.14364008e+00, 4.43394683e+00],
[-6.24274037e+00, 3.39837599e+00],
[ 4.87045581e-03, 9.46509138e+00],
[ 4.70246296e+00, -4.55389050e+00],
[-9.76189846e-01, 1.07115104e+01],
[-5.70798588e+00, 4.08106013e+00],
[-4.60879556e+00, 5.70515384e+00],
[-6.89501524e+00, 4.70455559e+00],
[ 5.87063978e-01, 7.98674255e+00],
[ 5.55821124e+00, -3.34822425e+00],
[-5.07950936e+00, 5.09439261e+00],
[ 6.79066442e+00, -3.96938347e+00],
[ 5.30024595e+00, -4.28958907e+00],
[ 4.19807607e+00, -4.27648867e+00],
[ 5.35813368e-01, 8.70718631e+00],
[ 5.57656424e+00, -3.55177229e+00],
[-5.47790752e+00, 4.37987687e+00],
[ 4.31522960e+00, -1.57075913e+00],
[-6.05654421e+00, 3.64608160e+00],
[-2.15904392e-02, 7.80179239e+00],
[-6.42813244e+00, 3.47634004e+00],
[ 6.43868351e+00, -2.53640779e+00],
[ 9.97952516e-01, 9.50811229e+00],

5
[-5.58271530e+00, 1.34949377e+00],
[ 4.97851631e+00, -5.66294103e+00],
[ 5.29159462e+00, -5.59943276e+00],
[ 6.10416668e+00, -4.34729309e+00],
[-6.61563218e+00, 4.03946669e+00],
[ 1.33943759e+00, 9.36815644e+00],
[ 2.42566690e-01, 1.03241871e+01],
[-5.04777806e+00, 4.85900958e+00],
[ 5.20931051e+00, -2.34646051e+00],
[ 5.19591322e-01, 7.71599730e+00],
[-5.17358181e+00, 3.76246133e+00],
[-6.34321480e+00, 3.69968875e+00],
[ 7.87215290e+00, -3.11853506e+00],
[-5.32350978e+00, 3.76780169e+00],
[ 5.33237470e+00, -5.04873581e+00],
[ 7.96553640e-01, 1.05567041e+01],
[-3.31235378e+00, 4.99183067e+00],
[ 4.04806535e+00, -4.43507232e+00],
[ 4.97699026e+00, -3.01146933e+00],
[ 5.23819946e+00, -5.34570413e+00],
[-4.32821789e+00, 2.39858238e+00],
[ 5.70564740e+00, -3.86569597e+00],
[-1.26723312e-01, 9.05629736e+00],
[-6.23504268e+00, 4.51846345e+00],
[-4.86384510e+00, 3.10978529e+00],
[ 4.11363745e-01, 1.01636827e+01],
[ 6.69503316e-01, 7.83605861e+00],
[ 5.57606164e+00, -4.32252385e+00],
[-5.18699831e+00, 4.09020760e+00],
[-6.03180098e+00, 4.41733830e+00],
[ 5.31347425e+00, -3.54919335e+00],
[-6.23593624e+00, 3.70302183e+00],
[ 5.68679839e+00, -4.03000258e+00],
[ 5.09066759e+00, -4.75005009e+00],
[ 7.34591318e-01, 9.70668194e+00],
[ 6.52032820e+00, -4.32321933e+00],
[ 4.34716317e+00, -4.61148904e+00],
[-6.80406254e+00, 2.92209483e+00],
[-9.59903323e-01, 1.01703395e+01],
[-7.06062950e+00, 4.24042297e+00],
[ 1.07034389e-01, 8.40185260e+00],
[ 9.48126461e-02, 1.05323627e+01],
[-4.90179692e+00, 2.22463436e+00],
[-5.46150533e+00, 4.38296457e+00],
[ 4.76128967e+00, -4.35070013e+00],
[-5.74909179e+00, 1.87232371e+00],
[ 5.65739983e+00, -4.55208543e+00],

6
[-5.76942812e+00, 4.05991087e+00],
[ 1.01493285e+00, 8.34017068e+00],
[ 8.94745751e-01, 8.32411710e+00],
[ 3.19401382e-01, 9.56247135e+00],
[ 5.06875386e+00, -3.77419910e+00],
[ 3.88844870e+00, -4.31154035e+00],
[ 1.51775378e+00, 8.31067129e+00],
[ 5.33289785e+00, -4.50388055e+00],
[ 1.43405527e-02, 7.30686580e+00],
[ 6.08430427e+00, -5.19419943e+00],
[ 5.33871963e+00, -5.28234338e+00],
[-5.93819792e+00, 2.90138876e+00],
[ 2.04242189e-01, 8.41433122e+00],
[ 4.36051621e-01, 8.84530750e+00],
[-5.37277311e+00, 2.72019234e+00],
[-9.74847618e-01, 8.35703149e+00],
[ 2.49673762e+00, 9.36439216e+00],
[-1.36601802e-01, 1.01838626e+01],
[ 6.49714881e-01, 8.68885528e+00],
[ 1.55544866e+00, 9.31619132e+00],
[-7.63624587e+00, 4.04560945e+00],
[-5.99147986e+00, 4.35781117e+00],
[ 6.42555096e+00, -5.21064157e+00],
[-6.17435118e+00, 4.12730908e+00],
[-3.51410172e+00, 4.51101151e+00],
[-1.66885047e+00, 1.08101461e+01],
[ 1.07541728e+00, 9.76781248e+00],
[ 4.71770273e+00, -4.19630085e+00],
[ 2.12933086e-01, 8.92189514e+00],
[ 4.34446659e+00, -4.27680524e+00],
[ 8.20535373e-02, 8.35364390e+00],
[ 6.89474440e-01, 6.91139126e+00],
[ 4.95788204e+00, -5.17958238e+00],
[ 4.11143281e+00, -4.73796900e+00],
[-4.18883207e+00, 4.49773661e+00],
[-5.34602546e+00, 2.25325284e+00],
[ 4.39407929e-01, 1.07322551e+01],
[ 4.01296829e+00, -4.20070994e+00],
[ 4.62552687e+00, -4.31818777e+00],
[-5.26297966e-01, 7.67674106e+00],
[-6.83473398e+00, 3.50827714e+00],
[ 4.41183227e+00, -2.90902215e+00],
[-5.85955884e+00, 2.44404428e+00],
[ 1.23234197e+00, 8.69887230e+00],
[ 1.35294438e+00, 9.73760149e+00],
[ 5.12830249e+00, -4.99018074e+00],
[-7.79875703e+00, 2.32697525e+00],

7
[-5.75661284e+00, 4.90097052e+00],
[ 3.99857371e+00, -5.53417131e+00],
[ 4.77521689e+00, -4.95125299e+00],
[-4.66959298e+00, 4.06103423e+00],
[ 4.77014118e+00, -4.81760419e+00],
[ 3.84914514e-01, 9.32918169e+00],
[-6.45533741e+00, 4.40742829e+00],
[-5.39348866e+00, 1.58944809e+00],
[ 5.02365502e+00, -6.11631695e+00],
[-5.70150139e+00, 2.55915841e+00],
[ 4.70926886e+00, -3.37188233e+00],
[-7.10885249e-02, 6.84200571e+00],
[-5.77897658e+00, 2.43405346e+00],
[-6.42072425e+00, 2.53587028e+00],
[ 6.18411242e+00, -5.16084461e+00],
[ 4.52028856e+00, -4.44539461e+00],
[-5.81028250e+00, 5.03486675e+00],
[ 4.27957367e+00, -4.11939472e+00],
[ 5.24531162e+00, -3.48804201e+00],
[ 3.90112333e+00, -3.14538970e+00],
[ 4.82889698e-01, 7.22250722e+00],
[ 1.44117155e-01, 9.98462335e+00],
[-9.87596454e-01, 9.43530981e+00],
[-5.27651664e+00, 3.95093676e+00],
[-8.49402065e-01, 1.06212976e+01],
[ 4.46650943e+00, -3.88787436e+00],
[-6.09139085e+00, 1.93377388e+00],
[-5.68877305e+00, 5.00300043e+00],
[ 1.15625841e+00, 8.09572343e+00],
[-6.76364207e+00, 1.99935201e+00],
[ 7.02504122e+00, -6.03303261e+00],
[ 5.67479806e+00, -3.65646739e+00],
[ 3.74760042e+00, -2.25994485e+00],
[ 1.44360437e-01, 9.18058936e+00],
[-7.50343830e+00, 4.76566934e+00],
[-5.08595509e+00, 3.69722283e+00],
[-5.55943960e+00, 2.76821785e+00],
[-6.31923334e-02, 9.15941787e+00],
[ 2.37417202e+00, 8.81151632e+00],
[ 7.87694049e-01, 1.00681289e+01],
[ 5.02450076e+00, -5.01476763e+00],
[-5.88769744e+00, 2.86333134e+00],
[ 5.19821370e+00, -3.64685807e+00],
[ 5.65171315e+00, -4.83561794e+00],
[ 5.72267850e+00, -5.19406158e+00],
[ 2.41969214e-01, 8.10845921e+00],
[ 3.75846974e+00, -6.31217078e+00],

8
[ 4.69455246e+00, -2.70097991e+00],
[-6.49182454e+00, 2.82902820e+00],
[ 3.60150033e+00, -3.94292036e+00],
[ 3.23716299e-02, 8.89867552e+00],
[ 5.91970113e+00, -5.19162132e+00],
[-5.52228906e+00, 3.84950568e+00],
[-6.02755377e+00, 4.47424059e+00],
[ 5.98880928e+00, -4.02122696e+00],
[ 3.89315627e+00, -4.66434975e+00],
[ 2.44864764e-01, 8.37521245e+00],
[-6.71315688e+00, 2.82375113e+00],
[ 4.07075303e+00, -5.12927096e+00],
[ 5.70510024e+00, -5.22160093e+00],
[ 1.76127766e+00, 9.39696306e+00],
[ 1.02236083e+00, 6.68336547e+00],
[-6.63814311e+00, 2.59175006e+00],
[ 6.22431882e+00, -5.19469026e+00],
[ 5.87724759e+00, -4.40391684e+00],
[ 5.58249840e+00, -4.45776086e+00],
[-2.66222940e-01, 8.20240996e+00],
[-1.55755743e+00, 8.69562925e+00],
[-4.87367445e+00, 5.30940179e+00],
[ 8.72527616e-02, 8.00023247e+00],
[-6.72028908e+00, 4.29304174e+00],
[ 1.70644250e+00, 7.36940954e+00],
[ 6.68229197e-01, 8.99959501e+00],
[ 5.41033892e+00, -3.63099918e+00],
[-6.30943167e+00, 4.32944769e+00],
[-5.79689565e+00, 3.99124615e+00],
[-4.42188760e+00, 3.46945013e+00],
[ 1.34153302e-01, 7.47375034e+00],
[-4.23641372e-01, 9.13137176e+00],
[-5.05577963e-01, 8.89280236e+00],
[-6.45623663e+00, 2.93950572e+00],
[-6.72680155e+00, 3.82063878e+00],
[ 1.08192391e+00, 8.60431979e+00],
[ 8.13101362e-01, 9.67840031e+00],
[ 4.69766039e+00, -4.29536635e+00],
[ 1.43074190e-01, 9.15313798e+00],
[-4.90389213e+00, 4.81636225e+00],
[ 2.72367069e+00, -3.83279539e+00],
[-5.57817680e+00, 4.01551316e+00],
[ 4.88876703e+00, -4.53795080e+00],
[-7.48862763e-02, 8.38726351e+00],
[ 4.09100083e+00, -3.87611873e+00],
[ 4.72596511e+00, -5.64195443e+00],
[ 4.73843779e+00, -4.39899260e+00],

9
[-5.32690321e+00, 3.82117782e+00],
[-5.18164852e+00, 3.17870557e+00],
[ 1.54053891e+00, 8.53890519e+00],
[ 5.96694229e-01, 8.12563583e+00],
[-5.79326488e+00, 3.21095503e+00],
[ 5.87538552e+00, -5.73012776e+00],
[ 4.15322638e+00, -5.16902043e+00],
[ 6.24577218e-01, 7.84935776e+00],
[ 1.20969775e+00, 9.28891860e+00],
[-8.46677676e-02, 9.88767733e+00],
[ 5.54796316e+00, -4.13964018e+00],
[-5.98565537e+00, 4.52212885e+00],
[-9.02545929e-01, 8.58605946e+00],
[ 4.97257326e+00, -4.73119932e+00],
[ 1.21901642e+00, 7.30829021e+00],
[ 2.51283177e-01, 1.12770875e+01],
[-4.48262589e+00, 4.58628064e+00],
[ 2.90173789e-01, 7.94718911e+00],
[ 7.01447424e+00, -3.33960909e+00],
[-5.40475385e+00, 2.62320354e+00],
[-4.72920874e+00, 3.81425003e+00],
[ 8.29004184e-02, 7.19727787e+00],
[-6.19940494e+00, 4.52402890e+00],
[-9.86905816e-01, 1.05766433e+01],
[-5.34913776e+00, 4.47189830e+00],
[-1.79741737e+00, 9.45145805e+00],
[ 2.21915577e+00, 8.43779610e+00],
[ 2.19851642e-01, 9.30656694e+00],
[ 6.77930980e+00, -3.87948078e+00],
[ 4.79748931e+00, -4.78364503e+00],
[-2.16027264e+00, 9.08621257e+00],
[-1.00740784e+00, 8.11173707e+00],
[ 4.79443734e+00, -4.87074601e+00],
[-4.39945951e+00, 3.86666145e+00],
[ 4.74226632e+00, -6.02329941e+00],
[-7.11012964e+00, 4.58515628e+00],
[ 8.84119643e-01, 9.75137075e+00],
[-1.49211009e+00, 8.00048345e+00],
[-4.45640679e+00, 3.55266282e+00],
[ 6.18348182e+00, -2.10929335e+00],
[-1.51160811e+00, 8.74070113e+00],
[ 1.58487681e+00, 9.11216914e+00],
[ 5.96143888e+00, -4.29005309e+00],
[ 1.66922082e-01, 9.95031090e+00],
[ 1.07483352e+00, 1.09076868e+01],
[-5.57913047e+00, 4.30240374e+00],
[ 8.58095072e-01, 9.07079054e+00],

10
[-5.66872760e+00, 4.69994499e+00],
[ 5.30521079e+00, -3.59416825e+00],
[ 3.63144672e+00, -4.89609653e+00],
[ 5.47473881e+00, -4.51059951e+00],
[-6.05054093e+00, 1.72139749e+00],
[ 5.01622622e+00, -5.44345881e+00],
[-6.06143248e+00, 4.65032844e+00],
[ 7.06235516e+00, -2.88317682e+00],
[-6.40822285e+00, 5.13551832e+00],
[ 9.65071750e-01, 7.94667830e+00],
[ 9.18907431e-01, 8.28631445e+00],
[ 5.62027072e+00, -4.44717014e+00],
[-5.72293741e+00, 2.61532390e+00],
[-6.23349223e+00, 1.90871295e+00],
[-5.81980101e+00, 2.59466664e+00],
[ 1.55599440e-01, 9.46463612e+00],
[ 5.01970550e-01, 8.63465449e+00],
[ 4.24583425e+00, -4.31742929e+00],
[ 4.61788554e-01, 9.60434729e+00],
[ 1.10893728e+00, 9.72588151e+00],
[ 3.42216257e-01, 9.21122134e+00],
[-4.87182699e+00, 4.84245935e+00],
[ 2.80163913e+00, -3.22408468e+00],
[-4.02689782e+00, 2.24712414e+00],
[-4.66023733e+00, 4.95682404e+00],
[ 5.99234063e+00, -5.04926762e+00],
[-6.84840216e+00, 2.49320699e+00],
[ 2.96078454e+00, -3.81817818e+00],
[-1.10339932e+00, 6.87094130e+00],
[ 4.71547146e+00, -5.85782516e+00],
[ 1.48409387e+00, 9.24179415e+00],
[ 5.52338467e+00, -5.59585573e+00],
[ 6.47046445e+00, -6.80625291e+00],
[-4.74680970e+00, 2.32160880e+00],
[-6.00985418e+00, 3.76530859e+00],
[ 5.49696128e+00, -4.98462439e+00],
[ 4.77373982e-01, 1.05424862e+01],
[-3.21770737e-01, 6.47681203e+00],
[-5.15956904e+00, 2.71632531e+00],
[ 6.24308161e+00, -4.59035070e+00],
[-5.92603333e+00, 4.17289707e+00],
[-5.84973502e+00, 5.46845253e+00],
[ 4.90735390e+00, -3.39692703e+00],
[ 1.86834815e+00, 1.02480698e+01],
[ 6.30467165e+00, -3.67848664e+00],
[ 5.16775384e-01, 8.22999817e+00],
[ 1.15790784e+00, 9.46965093e+00],

11
[-1.34898085e-01, 9.76026160e+00],
[ 3.97052690e+00, -4.91564937e+00]])

[ ]:

[6]: fig = plt.figure(0)


plt.grid(True)
plt.scatter(X[:,0],X[:,1])
plt.show()

[9]: X.shape[1]

[9]: 2

[ ]:

[ ]:

[10]: k = 3

clusters = {}
np.random.seed(23)

for idx in range(k):


center = 2*(2*np.random.random((X.shape[1],))-1)

12
points = []
cluster = {
'center' : center,
'points' : []
}

clusters[idx] = cluster

clusters

[10]: {0: {'center': array([0.06919154, 1.78785042]), 'points': []},


1: {'center': array([ 1.06183904, -0.87041662]), 'points': []},
2: {'center': array([-1.11581855, 0.74488834]), 'points': []}}

[11]: plt.scatter(X[:,0],X[:,1])
plt.grid(True)
for i in clusters:
center = clusters[i]['center']
plt.scatter(center[0],center[1],marker = '*',c = 'red')
plt.show()

[12]: def distance(p1,p2):


return np.sqrt(np.sum((p1-p2)**2))

13
[13]: #Implementing E step
def assign_clusters(X, clusters):
for idx in range(X.shape[0]):
dist = []

curr_x = X[idx]

for i in range(k):
dis = distance(curr_x,clusters[i]['center'])
dist.append(dis)
curr_cluster = np.argmin(dist)
clusters[curr_cluster]['points'].append(curr_x)
return clusters

#Implementing the M-Step


def update_clusters(X, clusters):
for i in range(k):
points = np.array(clusters[i]['points'])
if points.shape[0] > 0:
new_center = points.mean(axis =0)
clusters[i]['center'] = new_center

clusters[i]['points'] = []
return clusters

[14]: def pred_cluster(X, clusters):


pred = []
for i in range(X.shape[0]):
dist = []
for j in range(k):
dist.append(distance(X[i],clusters[j]['center']))
pred.append(np.argmin(dist))
return pred

[15]: clusters = assign_clusters(X,clusters)


clusters = update_clusters(X,clusters)
pred = pred_cluster(X,clusters)

[16]: plt.scatter(X[:,0],X[:,1],c = pred)


for i in clusters:
center = clusters[i]['center']
plt.scatter(center[0],center[1],marker = '^',c = 'red')
plt.show()

14
Example-2
[17]: import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib.cm as cm
from sklearn.datasets import load_iris
from sklearn.cluster import KMeans

[18]: X, y = load_iris(return_X_y=True)

[19]: X

[19]: array([[5.1, 3.5, 1.4, 0.2],


[4.9, 3. , 1.4, 0.2],
[4.7, 3.2, 1.3, 0.2],
[4.6, 3.1, 1.5, 0.2],
[5. , 3.6, 1.4, 0.2],
[5.4, 3.9, 1.7, 0.4],
[4.6, 3.4, 1.4, 0.3],
[5. , 3.4, 1.5, 0.2],
[4.4, 2.9, 1.4, 0.2],
[4.9, 3.1, 1.5, 0.1],
[5.4, 3.7, 1.5, 0.2],
[4.8, 3.4, 1.6, 0.2],

15
[4.8, 3. , 1.4, 0.1],
[4.3, 3. , 1.1, 0.1],
[5.8, 4. , 1.2, 0.2],
[5.7, 4.4, 1.5, 0.4],
[5.4, 3.9, 1.3, 0.4],
[5.1, 3.5, 1.4, 0.3],
[5.7, 3.8, 1.7, 0.3],
[5.1, 3.8, 1.5, 0.3],
[5.4, 3.4, 1.7, 0.2],
[5.1, 3.7, 1.5, 0.4],
[4.6, 3.6, 1. , 0.2],
[5.1, 3.3, 1.7, 0.5],
[4.8, 3.4, 1.9, 0.2],
[5. , 3. , 1.6, 0.2],
[5. , 3.4, 1.6, 0.4],
[5.2, 3.5, 1.5, 0.2],
[5.2, 3.4, 1.4, 0.2],
[4.7, 3.2, 1.6, 0.2],
[4.8, 3.1, 1.6, 0.2],
[5.4, 3.4, 1.5, 0.4],
[5.2, 4.1, 1.5, 0.1],
[5.5, 4.2, 1.4, 0.2],
[4.9, 3.1, 1.5, 0.2],
[5. , 3.2, 1.2, 0.2],
[5.5, 3.5, 1.3, 0.2],
[4.9, 3.6, 1.4, 0.1],
[4.4, 3. , 1.3, 0.2],
[5.1, 3.4, 1.5, 0.2],
[5. , 3.5, 1.3, 0.3],
[4.5, 2.3, 1.3, 0.3],
[4.4, 3.2, 1.3, 0.2],
[5. , 3.5, 1.6, 0.6],
[5.1, 3.8, 1.9, 0.4],
[4.8, 3. , 1.4, 0.3],
[5.1, 3.8, 1.6, 0.2],
[4.6, 3.2, 1.4, 0.2],
[5.3, 3.7, 1.5, 0.2],
[5. , 3.3, 1.4, 0.2],
[7. , 3.2, 4.7, 1.4],
[6.4, 3.2, 4.5, 1.5],
[6.9, 3.1, 4.9, 1.5],
[5.5, 2.3, 4. , 1.3],
[6.5, 2.8, 4.6, 1.5],
[5.7, 2.8, 4.5, 1.3],
[6.3, 3.3, 4.7, 1.6],
[4.9, 2.4, 3.3, 1. ],
[6.6, 2.9, 4.6, 1.3],

16
[5.2, 2.7, 3.9, 1.4],
[5. , 2. , 3.5, 1. ],
[5.9, 3. , 4.2, 1.5],
[6. , 2.2, 4. , 1. ],
[6.1, 2.9, 4.7, 1.4],
[5.6, 2.9, 3.6, 1.3],
[6.7, 3.1, 4.4, 1.4],
[5.6, 3. , 4.5, 1.5],
[5.8, 2.7, 4.1, 1. ],
[6.2, 2.2, 4.5, 1.5],
[5.6, 2.5, 3.9, 1.1],
[5.9, 3.2, 4.8, 1.8],
[6.1, 2.8, 4. , 1.3],
[6.3, 2.5, 4.9, 1.5],
[6.1, 2.8, 4.7, 1.2],
[6.4, 2.9, 4.3, 1.3],
[6.6, 3. , 4.4, 1.4],
[6.8, 2.8, 4.8, 1.4],
[6.7, 3. , 5. , 1.7],
[6. , 2.9, 4.5, 1.5],
[5.7, 2.6, 3.5, 1. ],
[5.5, 2.4, 3.8, 1.1],
[5.5, 2.4, 3.7, 1. ],
[5.8, 2.7, 3.9, 1.2],
[6. , 2.7, 5.1, 1.6],
[5.4, 3. , 4.5, 1.5],
[6. , 3.4, 4.5, 1.6],
[6.7, 3.1, 4.7, 1.5],
[6.3, 2.3, 4.4, 1.3],
[5.6, 3. , 4.1, 1.3],
[5.5, 2.5, 4. , 1.3],
[5.5, 2.6, 4.4, 1.2],
[6.1, 3. , 4.6, 1.4],
[5.8, 2.6, 4. , 1.2],
[5. , 2.3, 3.3, 1. ],
[5.6, 2.7, 4.2, 1.3],
[5.7, 3. , 4.2, 1.2],
[5.7, 2.9, 4.2, 1.3],
[6.2, 2.9, 4.3, 1.3],
[5.1, 2.5, 3. , 1.1],
[5.7, 2.8, 4.1, 1.3],
[6.3, 3.3, 6. , 2.5],
[5.8, 2.7, 5.1, 1.9],
[7.1, 3. , 5.9, 2.1],
[6.3, 2.9, 5.6, 1.8],
[6.5, 3. , 5.8, 2.2],
[7.6, 3. , 6.6, 2.1],

17
[4.9, 2.5, 4.5, 1.7],
[7.3, 2.9, 6.3, 1.8],
[6.7, 2.5, 5.8, 1.8],
[7.2, 3.6, 6.1, 2.5],
[6.5, 3.2, 5.1, 2. ],
[6.4, 2.7, 5.3, 1.9],
[6.8, 3. , 5.5, 2.1],
[5.7, 2.5, 5. , 2. ],
[5.8, 2.8, 5.1, 2.4],
[6.4, 3.2, 5.3, 2.3],
[6.5, 3. , 5.5, 1.8],
[7.7, 3.8, 6.7, 2.2],
[7.7, 2.6, 6.9, 2.3],
[6. , 2.2, 5. , 1.5],
[6.9, 3.2, 5.7, 2.3],
[5.6, 2.8, 4.9, 2. ],
[7.7, 2.8, 6.7, 2. ],
[6.3, 2.7, 4.9, 1.8],
[6.7, 3.3, 5.7, 2.1],
[7.2, 3.2, 6. , 1.8],
[6.2, 2.8, 4.8, 1.8],
[6.1, 3. , 4.9, 1.8],
[6.4, 2.8, 5.6, 2.1],
[7.2, 3. , 5.8, 1.6],
[7.4, 2.8, 6.1, 1.9],
[7.9, 3.8, 6.4, 2. ],
[6.4, 2.8, 5.6, 2.2],
[6.3, 2.8, 5.1, 1.5],
[6.1, 2.6, 5.6, 1.4],
[7.7, 3. , 6.1, 2.3],
[6.3, 3.4, 5.6, 2.4],
[6.4, 3.1, 5.5, 1.8],
[6. , 3. , 4.8, 1.8],
[6.9, 3.1, 5.4, 2.1],
[6.7, 3.1, 5.6, 2.4],
[6.9, 3.1, 5.1, 2.3],
[5.8, 2.7, 5.1, 1.9],
[6.8, 3.2, 5.9, 2.3],
[6.7, 3.3, 5.7, 2.5],
[6.7, 3. , 5.2, 2.3],
[6.3, 2.5, 5. , 1.9],
[6.5, 3. , 5.2, 2. ],
[6.2, 3.4, 5.4, 2.3],
[5.9, 3. , 5.1, 1.8]])

[20]: y

18
[20]: array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])

[ ]:

[21]: #Find optimum number of cluster


sse = [] #SUM OF SQUARED ERROR
for k in range(1,11):
km = KMeans(n_clusters=k, random_state=2)
km.fit(X)
sse.append(km.inertia_)

[22]: sse

[22]: [681.3705999999996,
152.34795176035797,
78.851441426146,
57.22847321428572,
46.44618205128204,
39.60349881477313,
34.56651068134763,
30.378860962566854,
28.273371410244998,
26.144519317892907]

[23]: sns.set_style("whitegrid")
g=sns.lineplot(x=range(1,11), y=sse)

g.set(xlabel ="Number of cluster (k)",


ylabel = "Sum Squared Error",
title ='Elbow Method')

plt.show()

19
[24]: kmeans = KMeans(n_clusters = 3, random_state = 2)
kmeans.fit(X)

[24]: KMeans(n_clusters=3, random_state=2)

[25]: kmeans.cluster_centers_

[25]: array([[5.9016129 , 2.7483871 , 4.39354839, 1.43387097],


[5.006 , 3.428 , 1.462 , 0.246 ],
[6.85 , 3.07368421, 5.74210526, 2.07105263]])

[26]: pred = kmeans.fit_predict(X)


pred

[26]: array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 2, 2, 2, 0, 2, 2, 2,
2, 2, 2, 0, 0, 2, 2, 2, 2, 0, 2, 0, 2, 0, 2, 2, 0, 0, 2, 2, 2, 2,
2, 0, 2, 2, 2, 2, 0, 2, 2, 2, 0, 2, 2, 2, 0, 2, 2, 0])

[27]: plt.figure(figsize=(12,5))
plt.subplot(1,2,1)

20
plt.scatter(X[:,0],X[:,1],c = pred, cmap=cm.Accent)
plt.grid(True)
for center in kmeans.cluster_centers_:
center = center[:2]
plt.scatter(center[0],center[1],marker = '^',c = 'red')
plt.xlabel("petal length (cm)")
plt.ylabel("petal width (cm)")
#################################################################
plt.subplot(1,2,2)
plt.scatter(X[:,2],X[:,3],c = pred, cmap=cm.Accent)
plt.grid(True)
for center in kmeans.cluster_centers_:
center = center[2:4]
plt.scatter(center[0],center[1],marker = '^',c = 'red')
plt.xlabel("sepal length (cm)")
plt.ylabel("sepal width (cm)")
plt.show()

[28]: from sklearn.metrics import silhouette_score


print("silhouette_score: ", silhouette_score(X, pred))

silhouette_score: 0.5528190123564091

[ ]:

[ ]:

[ ]:

[ ]:

21
Example-03
[19]: import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs

# Generate sample data


X, _ = make_blobs(n_samples=300, centers=4, cluster_std=0.60, random_state=0)

# Calculate WCSS for different values of k


wcss = []
for i in range(1, 11):
kmeans = KMeans(n_clusters=i, init='k-means++', max_iter=300, n_init=10,␣
↪random_state=0)

kmeans.fit(X)
wcss.append(kmeans.inertia_)

# Plot elbow method


plt.plot(range(1, 11), wcss)
plt.title('Elbow Method')
plt.xlabel('Number of clusters')
plt.ylabel('WCSS')
plt.show()

22
[ ]:

23

You might also like