Appendix A. Appendix

Sample code that generates data, runs a linear regression, and plots the results:

import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

x = np.arange(1,15)

delta = np.random.uniform(-2,2, size=(14,))

y = .9 * x + 1 +  delta

plt.scatter(x,y, s=50)

slope, int, r_val, p_val, err = stats.linregress(x, y)

plt.plot(x, slope * x + intercept)
plt.xlim(0)
plt.ylim(0)

# calling show() will open your plot in a window
# you can save rather than opening the plot using savefig()
plt.show()

Sample code that generates data, runs a clustering algorithm, and plots the results:

import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
from scipy.cluster.vq import vq, kmeans

data = np.vstack((np.random.rand(200,2) + \
       np.array([.5, .5]),np.random.rand(200,2)))

centroids2, _ = kmeans(data, 2)
idx2,_ = vq(data,centroids2)

# scatter plot without centroids
plt.figure(1)

plt.plot(data[:,0],data[:,1], 'o')

# scatter plot with 2 centroids
plt.figure(2)

plt.plot(data[:,0],data[:,1],'o')
plt.plot(centroids2[:,0],centroids2[:,1],'sm',markersize=16)

# scatter plot with 2 centroids and point colored by cluster
plt.figure(3)

plt.plot(data[idx2==0,0],data[idx2==0,1],'ob',data[idx2==1,0], \
         data[idx2==1,1],'or')
plt.plot(centroids2[:,0],centroids2[:,1],'sm',markersize=16)

centroids3, _ = kmeans(data, 3)
idx3,_ = vq(data,centroids3)

# scatter plot with 3 centroids and points colored by cluster
plt.figure(4)

plt.plot(data[idx3==0,0],data[idx3==0,1],'ob',

Get The Path to Predictive Analytics and Machine Learning now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.