Skip to content

Commit faadf24

Browse files
author
Lazy Programmer
committedDec 26, 2017
relative import, faster gmm
1 parent 9159f64 commit faadf24

File tree

2 files changed

+11
-10
lines changed

2 files changed

+11
-10
lines changed
 

Diff for: ‎unsupervised_class/gmm.py

+10-9
Original file line numberDiff line numberDiff line change
@@ -29,18 +29,19 @@ def gmm(X, K, max_iter=20, smoothing=1e-2):
2929
weighted_pdfs = np.zeros((N, K)) # we'll use these to store the PDF value of sample n and Gaussian k
3030
for i in range(max_iter):
3131
# step 1: determine assignments / resposibilities
32-
for k in range(K):
33-
for n in range(N):
34-
weighted_pdfs[n,k] = pi[k]*multivariate_normal.pdf(X[n], M[k], C[k])
32+
# this is the slow way
33+
# for k in range(K):
34+
# for n in range(N):
35+
# weighted_pdfs[n,k] = pi[k]*multivariate_normal.pdf(X[n], M[k], C[k])
3536

36-
for k in range(K):
37-
for n in range(N):
38-
R[n,k] = weighted_pdfs[n,k] / weighted_pdfs[n,:].sum()
37+
# for k in range(K):
38+
# for n in range(N):
39+
# R[n,k] = weighted_pdfs[n,k] / weighted_pdfs[n,:].sum()
3940

4041
# a faster way to do step 1: "vectorization"
41-
# for k in range(K):
42-
# weighted_pdfs[:,k] = pi[k]*multivariate_normal.pdf(X, M[k], C[k])
43-
# R = weighted_pdfs / weighted_pdfs.sum(axis=1, keepdims=True)
42+
for k in range(K):
43+
weighted_pdfs[:,k] = pi[k]*multivariate_normal.pdf(X, M[k], C[k])
44+
R = weighted_pdfs / weighted_pdfs.sum(axis=1, keepdims=True)
4445

4546
# step 2: recalculate params
4647
for k in range(K):

Diff for: ‎unsupervised_class/kmeans_mnist.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import numpy as np
1717
import pandas as pd
1818
import matplotlib.pyplot as plt
19-
from kmeans import plot_k_means, get_simple_data
19+
from .kmeans import plot_k_means, get_simple_data
2020
from datetime import datetime
2121

2222
def get_data(limit=None):

0 commit comments

Comments
 (0)
Please sign in to comment.