import week3 sys.path.insert(0, '../') import tools ###~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # PART 1. KMEANS # GENERATE RANDOM DATA x, labels = week3.generate_2d_data() #week3.plot_2d_data(x, labels, None, None) # PART 1. STEP 0. PICK RANDOM CENTERS K = 10 means = np.array(random.sample(x, K)) week3.plot_2d_data(x, None, None, means) # PART 1. STEP 1. CALCULATE DISTANCE FROM DATA TO CENTERS dist = np.zeros([K, x.shape[0]]) for i in np.arange(0, K): for j in np.arange(0, x.shape[0]): dist[i,j] = sum((means[i]-x[j])**2) # PART 1. STEP 2. FIND WHAT IS THE CLOSEST CENTER PER POINT closest = np.argmin(dist, 0) week3.plot_2d_data(x, None, closest, means) # PART 1. STEP 3. UPDATE CENTERS for i in np.arange(0, K): mean_x = 0.0 mean_y = 0.0
import pickle import math import random import sys import os import time import week1 import week3 sys.path.insert(0, '../') import tools # Went to Random.org to determine seed from uniform interval [0, 99] random.seed(26) """ ###~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # PART 1. KMEANS print time.strftime("[%H:%M:%S] Computing part 1") # GENERATE RANDOM DATA x, labels = week3.generate_2d_data() week3.plot_2d_data(x, labels, None, None) plt.show() # PART 1. STEP 0. PICK RANDOM CENTERS print time.strftime("[%H:%M:%S] Computing part 1, step 0") week3.mykmeans(x, 3) """