-
Notifications
You must be signed in to change notification settings - Fork 0
/
kmeans.py
18 lines (14 loc) · 4.67 KB
/
kmeans.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import numpy as np
from pandas import DataFrame
from matplotlib import pyplot as plt
from sklearn.cluster import KMeans
Data = {'x':[92.4375, 92.4375, 92.4375, 92.4375, 92.4375, 92.4375, 93.14583333333334, 93.5, 93.85416666666667, 93.85416666666667, 94.20833333333334, 94.91666666666667, 95.625, 95.97916666666667, 95.97916666666667, 96.6875, 97.04166666666666, 97.04166666666666, 97.75, 97.75, 98.10416666666667, 98.10416666666667, 98.45833333333334, 98.8125, 99.52083333333333, 100.22916666666666, 101.29166666666667, 101.64583333333333, 102.35416666666666, 102.70833333333333, 102.70833333333333, 103.77083333333333, 105.18749999999999, 92.79166666666666, 107.31249999999999, 108.375, 109.08333333333333, 110.14583333333331, 111.20833333333333, 112.27083333333334, 112.97916666666667, 114.75, 115.8125, 116.875, 117.22916666666667, 117.9375, 117.9375, 118.64583333333334, 119.0, 119.70833333333333, 120.77083333333334, 121.47916666666667, 122.1875, 122.54166666666666, 122.89583333333334, 123.60416666666667, 124.3125, 125.02083333333331, 125.37499999999999, 126.08333333333333, 126.4375, 127.14583333333334, 127.85416666666667, 128.91666666666666, 129.27083333333334, 129.625, 130.33333333333331, 131.04166666666666, 131.39583333333334, 131.75, 132.45833333333331, 133.875, 134.58333333333331, 135.64583333333331, 136.35416666666666, 137.77083333333331, 139.54166666666666, 140.95833333333334, 142.375, 144.14583333333331, 146.27083333333331, 146.97916666666663, 148.39583333333334, 151.22916666666669, 152.29166666666666, 153.35416666666669, 155.12499999999997, 156.54166666666666, 157.60416666666669, 160.08333333333334, 160.79166666666669, 161.85416666666666, 165.04166666666666, 167.52083333333334, 168.58333333333334, 169.64583333333334, 170.0, 171.0625, 172.83333333333331, 173.89583333333331, 175.66666666666666, 178.85416666666666, 180.625, 181.68749999999997, 182.39583333333334, 184.52083333333334, 185.93749999999997, 187.35416666666666, 187.70833333333334, 189.47916666666669, 191.25, 144.49999999999997, 193.02083333333334, 194.08333333333331, 196.20833333333334, 198.6875, 200.10416666666666, 201.52083333333331, 205.77083333333337, 205.77083333333337, 208.60416666666666, 211.4375, 213.91666666666663, 215.68750000000003, 217.10416666666666, 217.45833333333331, 218.52083333333331],
'y': [92.4375, 92.4375, 92.4375, 92.4375, 92.4375, 92.4375, 93.14583333333334, 93.5, 93.85416666666667, 93.85416666666667, 94.20833333333334, 94.91666666666667, 95.625, 95.97916666666667, 95.97916666666667, 96.6875, 97.04166666666666, 97.04166666666666, 97.75, 97.75, 98.10416666666667, 98.10416666666667, 98.45833333333334, 98.8125, 99.52083333333333, 100.22916666666666, 101.29166666666667, 101.64583333333333, 102.35416666666666, 102.70833333333333, 102.70833333333333, 103.77083333333333, 105.18749999999999, 92.79166666666666, 107.31249999999999, 108.375, 109.08333333333333, 110.14583333333331, 111.20833333333333, 112.27083333333334, 112.97916666666667, 114.75, 115.8125, 116.875, 117.22916666666667, 117.9375, 117.9375, 118.64583333333334, 119.0, 119.70833333333333, 120.77083333333334, 121.47916666666667, 122.1875, 122.54166666666666, 122.89583333333334, 123.60416666666667, 124.3125, 125.02083333333331, 125.37499999999999, 126.08333333333333, 126.4375, 127.14583333333334, 127.85416666666667, 128.91666666666666, 129.27083333333334, 129.625, 130.33333333333331, 131.04166666666666, 131.39583333333334, 131.75, 132.45833333333331, 133.875, 134.58333333333331, 135.64583333333331, 136.35416666666666, 137.77083333333331, 139.54166666666666, 140.95833333333334, 142.375, 144.14583333333331, 146.27083333333331, 146.97916666666663, 148.39583333333334, 151.22916666666669, 152.29166666666666, 153.35416666666669, 155.12499999999997, 156.54166666666666, 157.60416666666669, 160.08333333333334, 160.79166666666669, 161.85416666666666, 165.04166666666666, 167.52083333333334, 168.58333333333334, 169.64583333333334, 170.0, 171.0625, 172.83333333333331, 173.89583333333331, 175.66666666666666, 178.85416666666666, 180.625, 181.68749999999997, 182.39583333333334, 184.52083333333334, 185.93749999999997, 187.35416666666666, 187.70833333333334, 189.47916666666669, 191.25, 144.49999999999997, 193.02083333333334, 194.08333333333331, 196.20833333333334, 198.6875, 200.10416666666666, 201.52083333333331, 205.77083333333337, 205.77083333333337, 208.60416666666666, 211.4375, 213.91666666666663, 215.68750000000003, 217.10416666666666, 217.45833333333331, 218.52083333333331]
}
df = DataFrame(Data,columns=['x','y'])
kmeans = KMeans(n_clusters=3).fit(df)
centroids = kmeans.cluster_centers_
print(centroids)
plt.scatter(df['x'], df['y'], c= kmeans.labels_.astype(float), s=50, alpha=0.5)
plt.scatter(centroids[:, 0], centroids[:, 1], c='red', s=50)
plt.show()