コード例 #1
0
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
コード例 #2
0
ファイル: main_script_week3.py プロジェクト: pkok/MIS-labs
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)
"""