diff options
Diffstat (limited to 'csci4511w/colab/HW5 - Neural Networks/planar_utils.py')
-rw-r--r-- | csci4511w/colab/HW5 - Neural Networks/planar_utils.py | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/csci4511w/colab/HW5 - Neural Networks/planar_utils.py b/csci4511w/colab/HW5 - Neural Networks/planar_utils.py new file mode 100644 index 0000000..1b22c39 --- /dev/null +++ b/csci4511w/colab/HW5 - Neural Networks/planar_utils.py @@ -0,0 +1,66 @@ +import matplotlib.pyplot as plt +import numpy as np +import sklearn +import sklearn.datasets +import sklearn.linear_model + +def plot_decision_boundary(model, X, y): + # Set min and max values and give it some padding + x_min, x_max = X[0, :].min() - 1, X[0, :].max() + 1 + y_min, y_max = X[1, :].min() - 1, X[1, :].max() + 1 + h = 0.01 + # Generate a grid of points with distance h between them + xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h)) + # Predict the function value for the whole grid + Z = model(np.c_[xx.ravel(), yy.ravel()]) + Z = Z.reshape(xx.shape) + # Plot the contour and training examples + plt.contourf(xx, yy, Z, cmap=plt.cm.Spectral) + plt.ylabel('x2') + plt.xlabel('x1') + plt.scatter(X[0, :], X[1, :], c=y, cmap=plt.cm.Spectral) + + +def sigmoid(x): + """ + Compute the sigmoid of x + + Arguments: + x -- A scalar or numpy array of any size. + + Return: + s -- sigmoid(x) + """ + s = 1/(1+np.exp(-x)) + return s + +def load_planar_dataset(): + np.random.seed(1) + m = 400 # number of examples + N = int(m/2) # number of points per class + D = 2 # dimensionality + X = np.zeros((m,D)) # data matrix where each row is a single example + Y = np.zeros((m,1), dtype='uint8') # labels vector (0 for red, 1 for blue) + a = 4 # maximum ray of the flower + + for j in range(2): + ix = range(N*j,N*(j+1)) + t = np.linspace(j*3.12,(j+1)*3.12,N) + np.random.randn(N)*0.2 # theta + r = a*np.sin(4*t) + np.random.randn(N)*0.2 # radius + X[ix] = np.c_[r*np.sin(t), r*np.cos(t)] + Y[ix] = j + + X = X.T + Y = Y.T + + return X, Y + +def load_extra_datasets(): + N = 200 + noisy_circles = sklearn.datasets.make_circles(n_samples=N, factor=.5, noise=.3) + noisy_moons = sklearn.datasets.make_moons(n_samples=N, noise=.2) + blobs = sklearn.datasets.make_blobs(n_samples=N, random_state=5, n_features=2, centers=6) + gaussian_quantiles = sklearn.datasets.make_gaussian_quantiles(mean=None, cov=0.5, n_samples=N, n_features=2, n_classes=2, shuffle=True, random_state=None) + no_structure = np.random.rand(N, 2), np.random.rand(N, 2) + + return noisy_circles, noisy_moons, blobs, gaussian_quantiles, no_structure |