9. IMPLEMENT K-MEANS CLUSTERING ALGORITHM USING MAPREDUCE

Python Program:
n=int(input("Enter number of points: "))
points=[]
print("Enter X,Y:")
for i in range(n):
points.append(list(map(int,input().split(","))))
c1x,c1y=map(int,input("Enter Centroid 1 X,Y: ").split(","))
c2x,c2y=map(int,input("Enter Centroid 2 X,Y: ").split(","))
# MAP
mapped=[]
for x,y in points:
d1=((x-c1x)**2+(y-c1y)**2)**0.5
d2=((x-c2x)**2+(y-c2y)**2)**0.5
if d1<d2:
mapped.append(("Cluster1",(x,y)))
else:
mapped.append(("Cluster2",(x,y)))
# SHUFFLE AND SORT
grouped={}
for cluster,point in mapped:
if cluster not in grouped:
grouped[cluster]=[]
grouped[cluster].append(point)
# REDUCE
result={}
for cluster,cluster_points in grouped.items():
sum_x=0
sum_y=0
for x,y in cluster_points:
sum_x+=x
sum_y+=y
centroid_x=sum_x//len(cluster_points)
centroid_y=sum_y//len(cluster_points)
result[cluster]=(centroid_x,centroid_y)
print("Output:")
for cluster,centroid in result.items():
print(cluster,centroid)
Input:
Enter number of points: 6
Enter X,Y:
2,10
2,5
8,4
5,8
7,5
6,4
Enter Centroid 1 X,Y: 2,5
Enter Centroid 2 X,Y: 7,5
Output:
Cluster1 (2,7)
Cluster2 (6,5)
