Skip to content

Instantly share code, notes, and snippets.

@Spacerat
Created February 28, 2015 17:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Spacerat/0d0043ed3e6feb55dc04 to your computer and use it in GitHub Desktop.
Save Spacerat/0d0043ed3e6feb55dc04 to your computer and use it in GitHub Desktop.
Machine Learning Examples
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": ""
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "code",
"collapsed": false,
"input": [
"%pylab inline"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Preparation"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from sklearn.cross_validation import train_test_split\n",
"import pylab as pl\n",
"from matplotlib.colors import ListedColormap\n",
"from sklearn.preprocessing import scale\n",
"import cvxopt"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Data and Plotting"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"N = 40\n",
"# Two 2-d Normal datasets\n",
"'''\n",
"X1 = vstack((random.normal(4, scale=6, size=N/2),random.normal(0, scale=5, size=N/2))).T\n",
"X2 = vstack((random.normal(4, scale=6, size=N/2),random.normal(0, scale=2, size=N/2))).T\n",
"\n",
"X3 = vstack((random.normal(0, scale=4, size=N),random.normal(0, scale=5, size=N))).T\n",
"\n",
"y1 = -ones(len(X1)+len(X2), dtype=int)\n",
"y2 = ones(len(X3), dtype=int)\n",
"'''\n",
"\n",
"mean1 = [-1, 2]\n",
"mean2 = [1, -1]\n",
"mean3 = [4, -4]\n",
"mean4 = [-4, 4]\n",
"cov = [[1.0,0.8], [0.8, 1.0]]\n",
"X1 = np.random.multivariate_normal(mean1, cov, 50)\n",
"X1 = np.vstack((X1, np.random.multivariate_normal(mean3, cov, 50)))\n",
"y1 = np.ones(len(X1))\n",
"X2 = np.random.multivariate_normal(mean2, cov, 50)\n",
"X2 = np.vstack((X2, np.random.multivariate_normal(mean4, cov, 50)))\n",
"y2 = np.ones(len(X2)) * -1\n",
"\n",
"# Concatenate for full dataset\n",
"X = concatenate((X1, X2))\n",
"y = concatenate((y1, y2))\n",
"\n",
"#X = scale(X)\n",
"\n",
"len(y)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 4,
"text": [
"200"
]
}
],
"prompt_number": 4
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"class Tester():\n",
" '''Class for plotting example classification results'''\n",
" \n",
" def __init__(self, X, y):\n",
" # Split data in to test/train segments\n",
" X_train, X_test, y_train, y_test = train_test_split(X, y)\n",
" print len(X_train), len(X_test)\n",
" self.X_train = X_train\n",
" self.X_test = X_test\n",
" self.y_train = y_train\n",
" self.y_test = y_test\n",
" self.X = X\n",
" self.y = y\n",
" \n",
" def get(self):\n",
" return (self.X_test, self.X_train, self.y_test, self.y_train)\n",
" \n",
" def predict(self, predictor):\n",
" return predictor.fit(self.X_train, self.y_train).predict(self.X_test)\n",
" \n",
" def __call__(self, predictor):\n",
" h=0.05\n",
" # Predict class of all values on a grid\n",
" x_min, x_max = self.X[:, 0].min() - 3.5, self.X[:, 0].max() + 3.5\n",
" y_min, y_max = self.X[:, 1].min() - 3.5, self.X[:, 1].max() + 3.5\n",
" xx, yy = np.meshgrid(np.arange(x_min, x_max, h),\n",
" np.arange(y_min, y_max, h))\n",
" Z = np.c_[xx.ravel(), yy.ravel()]\n",
" \n",
" # Call the fit()/predict() methods\n",
" Z = predictor.fit(self.X_train, self.y_train).predict(Z)\n",
" \n",
" # Contour plot the prediction\n",
" Z = Z.reshape(xx.shape)\n",
" cm = pl.cm.RdBu\n",
" cm_bright = ListedColormap(['#FF0000', '#0000FF'])\n",
" contourf(xx, yy, Z, cmap=cm)\n",
" \n",
" # Scatter plot the test/train values\n",
" scatter(self.X_train[:, 0], self.X_train[:, 1], c=self.y_train, cmap=cm_bright)\n",
" scatter(self.X_test[:, 0], self.X_test[:, 1], marker='x', c=self.y_test, cmap=cm_bright,alpha=0.6)\n",
"\n",
" score = sum(predictor.predict(self.X_test) == self.y_test)\n",
" print \"Accuracy: \", float(score)/len(self.X_test)\n",
" \n",
"test = Tester(X, y)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"150 50\n"
]
}
],
"prompt_number": 5
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Basic Kernels"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"class NoTransform():\n",
" def fit(self, X, y=None):\n",
" return self\n",
" def transform(self, X):\n",
" return X\n",
" \n",
"class BiasTransform():\n",
" def fit(self, X, y=None):\n",
" self.R = sqrt(max((sum((X - mean(X, axis=0))**2, axis=1))))\n",
" return self\n",
" \n",
" def transform(self, X):\n",
" # Add a dummy input variable to every observation\n",
" return np.column_stack((X, self.R*ones(X.shape[0])))\n",
"\n",
"class RadialKMeansTransform():\n",
" def __init__(self, k=None):\n",
" self.def_k = k\n",
" def fit(self, X, y=None):\n",
" if self.def_k:\n",
" k = self.def_k\n",
" else:\n",
" k = len(set(list(y)))\n",
" self.clusters = KMeans(k).fit(X).means\n",
"\n",
" return self\n",
" def transform(self, X):\n",
" return exp(-vstack([sum((X-m)**2, axis=1) for m in self.clusters]).T)\n",
" "
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 6
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"\n",
"scatter(X[:,0], X[:,1], c=['r' if yy < 0 else 'c' for yy in y], s=50)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 7,
"text": [
"<matplotlib.collections.PathCollection at 0x111fc9810>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x111f69810>"
]
}
],
"prompt_number": 7
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# KNN"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"class KNN():\n",
" def __init__(self, k=5):\n",
" # Set the K of KNN\n",
" self.k = k\n",
" \n",
" def fit(self, X, y):\n",
" # Just store the training data\n",
" self.X_train = X\n",
" self.y_train = y\n",
" return self\n",
" \n",
" def predict(self, X):\n",
" def pred(x):\n",
" # Get distance of the point to each training point\n",
" dists = sqrt(sum((self.X_train - x)**2, axis=1))\n",
" \n",
" # Get a list of the classes of the K closest points\n",
" ns = list(self.y_train[argsort(dists)[:self.k]])\n",
" \n",
" # Return the most common point\n",
" return max(set(ns), key=ns.count)\n",
" \n",
" return apply_along_axis(pred, 1, X)\n",
" \n",
"figure()\n",
"test(KNN(3))\n",
"figure()\n",
"test(KNN(10))\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Accuracy: 1.0\n",
"Accuracy: "
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
" 1.0\n"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nB6eC5/Fgh5CLAAAAAElFTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x11289bdd0>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nAAAASUVORK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x112879850>"
]
}
],
"prompt_number": 11
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1668
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Perceptron"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"class Perceptron():\n",
" def __init__(self, kernel='linear', k=None):\n",
" if kernel == 'linear':\n",
" self.kernel = BiasTransform()\n",
" elif kernel == 'kmeans':\n",
" self.kernel = RadialKMeansTransform(k)\n",
" \n",
" def fit(self, X, y):\n",
" # Kernal transformation of X\n",
" perm = permutation(range(len(X)))\n",
" X = X[perm]\n",
" y = y[perm]\n",
" self.kernel = self.kernel.fit(X, y)\n",
" dX = self.kernel.transform(X)\n",
"\n",
" # Vector of weights\n",
" # number of weights = number of basis functions\n",
" w = zeros(dX.shape[1])\n",
" \n",
" # Store best weights/score\n",
" best_w = w\n",
" best_score = len(dX)\n",
"\n",
" # Repeat algorithm 100 times\n",
" for rep in range(500):\n",
" # Loop through observations\n",
" for xk, yk in zip(dX, y):\n",
" # If the observation is misclassified\n",
" if yk * dot(xk, w) <= 0:\n",
" # Add its vector to the weights\n",
" w += yk*xk\n",
" \n",
" # Calculate number of errors\n",
" score = sum(y*dot(dX, w)<0)\n",
" \n",
" # Store weights if they score better than the previous\n",
" # best\n",
" if score < best_score:\n",
" best_score = score\n",
" best_w = w\n",
" \n",
" # Finish if there are no errors\n",
" if score == 0:\n",
" break\n",
" print \"{} iterations, {} errors\".format(rep, score)\n",
"\n",
" self.w = best_w\n",
" print best_score\n",
" return self\n",
" def predict(self, X):\n",
" X = self.kernel.transform(X)\n",
" return array(((dot(X, self.w)) > 0)*2-1)\n",
" \n",
"figure()\n",
"perp = Perceptron(kernel='linear', k=4)\n",
"test(perp)\n",
"perp.w\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"499 iterations, 47 errors\n",
"47\n",
"Accuracy: "
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
" 0.66\n"
]
},
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 13,
"text": [
"array([ 4.75346221, 2.70232495, 0. ])"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nrkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x1128a3ed0>"
]
}
],
"prompt_number": 13
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# K-Means Clustering"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"class KMeans():\n",
" def __init__(self, k):\n",
" self.k = k\n",
" \n",
" def fit(self, X, y=None):\n",
" k = self.k\n",
" # Assign points to K random groups of roughly equal sizes\n",
" group = zeros(len(X))\n",
" new_group = permutation(concatenate([i*ones(l) for i, l in enumerate([len(l) for l in array_split(X, k)])]))\n",
" \n",
" # Do until no change\n",
" while not array_equal(new_group, group):\n",
" group = new_group\n",
" # Calculate the new cluster means\n",
" means = array([mean(X[group==i], axis=0) for i in range(k)])\n",
" # Re-assign each point to the closest cluster\n",
" new_group = argmax(vstack([-sum((X-m)**2, axis=1) for m in means]).T, axis=1) \n",
" \n",
" self.means = means\n",
" return self\n",
" \n",
" def predict(self, X):\n",
" # For each point, return the index of the closest cluster\n",
" return argmax(vstack([-sum((X-m)**2, axis=1) for m in self.means]).T, axis=1)\n",
"\n",
"km = KMeans(4)\n",
"test(km)\n",
"scatter(km.means[:,0],km.means[:,1], marker='x', s=200, c='w')\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Accuracy: 0.26\n"
]
},
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 12,
"text": [
"<matplotlib.collections.PathCollection at 0x111ff4110>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\ngg==\n",
"text": [
"<matplotlib.figure.Figure at 0x111ff4c90>"
]
}
],
"prompt_number": 12
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# SVM"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def linear_kernel(x1, x2):\n",
" return np.dot(x1, x2)\n",
" \n",
"def polynomial_kernel(x, y, p=3):\n",
" return (1 + np.dot(x, y)) ** p\n",
" \n",
"def gaussian_kernel(x, y, sigma=5.0):\n",
" return np.exp(-linalg.norm(x-y)**2.0 / (2.0 * (sigma ** 2.0)))\n",
"\n",
"class SVM():\n",
" def __init__(self, C=None, kernel=gaussian_kernel):\n",
" self.kernel = kernel\n",
" self.C = C\n",
" \n",
" def fit(self, X, y):\n",
" n_samples, n_features = X.shape\n",
" y = array(y, dtype=float)\n",
" # Because this is a minimisation problem instead\n",
" # of a maximisation problem, components of the\n",
" # lagrangian are multiplied by -1\n",
"\n",
" \n",
" # Build P, an NxN matrix of\n",
" # y_n * y_m * k(x_n, x_m) for all combinations of x\n",
" # where k is the kernel function (dot product)\n",
" K = np.zeros((n_samples, n_samples))\n",
" for i in range(n_samples):\n",
" for j in range(n_samples):\n",
" # Dot product of training samples\n",
" K[i,j] = self.kernel(X[i], X[j])\n",
" P = cvxopt.matrix(outer(y,y) * K)\n",
" \n",
" # coefficient of a_n is -1\n",
" q = cvxopt.matrix(ones(n_samples) * -1)\n",
" \n",
" # Equality constraint: A*a = 0\n",
" A = cvxopt.matrix(y, (1,n_samples))\n",
" b = cvxopt.matrix(0.0)\n",
" \n",
" # Inequality constraint\n",
" if self.C is None:\n",
" # Hard margin, G*a > h\n",
" # 1*a > 0\n",
" G = cvxopt.matrix(diag(np.ones(n_samples) * -1))\n",
" h = cvxopt.matrix(zeros(n_samples))\n",
" else:\n",
" # Soft margin, C > a > 0\n",
" tmp1 = np.diag(np.ones(n_samples) * -1)\n",
" tmp2 = np.identity(n_samples)\n",
" G = cvxopt.matrix(np.vstack((tmp1, tmp2)))\n",
" tmp1 = np.zeros(n_samples)\n",
" tmp2 = np.ones(n_samples) * self.C\n",
" h = cvxopt.matrix(np.hstack((tmp1, tmp2)))\n",
" \n",
" \n",
" # Solve QP problem\n",
" solution = solvers.qp(P, q, G, h, A, b)\n",
" \n",
" # Solution gives the lagrange multipliers\n",
" a = np.ravel(solution['x'])\n",
" \n",
" # The only interesting ones are > 0\n",
" sv = a>1e-5\n",
" ind = np.arange(len(a))[sv]\n",
" \n",
" # Get X and y of interesting support vectors\n",
" self.sv_x = X[sv]\n",
" self.sv_y = y[sv]\n",
" self.a = a[sv]\n",
" \n",
" # Calculate intercept:\n",
" # sum of:\n",
" # target - sum of: support vectors * target * k(x, m)\n",
" self.b = 0\n",
" for n in range(len(self.a)):\n",
" self.b += self.sv_y[n]\n",
" self.b -= sum(self.a * self.sv_y * K[ind[n],sv])\n",
" self.b /= len(self.a)\n",
" \n",
" return self\n",
" \n",
" def predict(self, X):\n",
" y_predict = np.zeros(len(X))\n",
" # Loop through each observation i\n",
" for i in range(len(X)):\n",
" # Decision variable s=y(x)\n",
" s = 0\n",
" # Loop through each support vec n\n",
" for a, sv_y, sv in zip(self.a, self.sv_y, self.sv_x):\n",
" # Add the vectorweight * classn * kernel(x_i, vec_n)\n",
" s += a * sv_y * self.kernel(X[i], sv)\n",
" \n",
" y_predict[i] = s\n",
" \n",
" # Classification determined by sign of decision variable\n",
" return sign(y_predict + self.b)\n",
"\n",
"svm = SVM(C=10000, kernel=polynomial_kernel)\n",
"test(svm)\n",
"\n",
"scatter(svm.sv_x[:,0], svm.sv_x[:,1], \n",
" edgecolors='w', facecolors='none', s=svm.a)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
" pcost dcost gap pres dres\n",
" 0: 2.8055e+06 -1.1659e+10 3e+10 9e-01 3e-07\n",
" 1: 8.4949e+06 -4.1549e+09 7e+09 1e-01 2e-07\n",
" 2: 1.1610e+07 -9.1405e+08 2e+09 3e-02 8e-08\n",
" 3: 1.0783e+07 -9.1895e+07 2e+08 3e-03 2e-08\n",
" 4: 4.7339e+06 -2.3951e+07 4e+07 5e-04 4e-09\n",
" 5: 1.2532e+06 -4.2385e+06 6e+06 5e-05 4e-10\n",
" 6: 2.3513e+05 -3.7593e+05 6e+05 2e-06 7e-11\n",
" 7: 3.4798e+04 -3.7200e+04 7e+04 3e-15 3e-11\n",
" 8: 4.9779e+03 -5.5267e+03 1e+04 2e-15 8e-12\n",
" 9: 7.0883e+02 -7.9389e+02 2e+03 9e-16 4e-12\n",
"10: 9.9858e+01 -1.1550e+02 2e+02 3e-16 2e-12\n",
"11: 1.3632e+01 -1.7214e+01 3e+01 2e-16 4e-13\n",
"12: 1.6675e+00 -2.7375e+00 4e+00 2e-16 2e-13\n",
"13: 9.6444e-02 -5.1820e-01 6e-01 2e-16 8e-14\n",
"14: -6.3099e-02 -2.3787e-01 2e-01 2e-16 4e-14\n",
"15: -1.0860e-01 -2.1816e-01 1e-01 2e-16 2e-14\n",
"16: -1.3660e-01 -1.9241e-01 6e-02 2e-16 2e-14\n",
"17: -1.5111e-01 -1.7343e-01 2e-02 2e-16 2e-14\n",
"18: -1.5756e-01 -1.6728e-01 1e-02 2e-16 3e-14\n",
"19: -1.6149e-01 -1.6240e-01 9e-04 2e-16 3e-14\n",
"20: -1.6189e-01 -1.6190e-01 1e-05 2e-16 2e-14\n",
"21: -1.6190e-01 -1.6190e-01 1e-07 2e-16 3e-14\n",
"Optimal solution found.\n",
"Accuracy: "
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
" 1.0\n"
]
},
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 1694,
"text": [
"<matplotlib.collections.PathCollection at 0x112bb4f90>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nOTV/qQAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x112426e10>"
]
}
],
"prompt_number": 1694
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 1699,
"text": [
"array([ 90.5050762 , 89.97171731, 93.92318467, 119.5379999 ,\n",
" 103.85869242, 103.76915744, 113.1565638 , 89.73534053,\n",
" 103.81797994, 91.7242878 ])"
]
}
],
"prompt_number": 1699
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"test(svm)\n",
"scatter(svm.sv_x[:,0], svm.sv_x[:,1], \n",
" edgecolors='w', facecolors='none', s=(scale(svm.a)-min(scale(svm.a)))*50)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
" pcost dcost gap pres dres\n",
" 0: 2.8055e+06 -1.1659e+10 3e+10 9e-01 3e-07\n",
" 1: 8.4949e+06 -4.1549e+09 7e+09 1e-01 2e-07\n",
" 2: 1.1610e+07 -9.1405e+08 2e+09 3e-02 8e-08\n",
" 3: 1.0783e+07 -9.1895e+07 2e+08 3e-03 2e-08\n",
" 4: 4.7339e+06 -2.3951e+07 4e+07 5e-04 4e-09\n",
" 5: 1.2532e+06 -4.2385e+06 6e+06 5e-05 4e-10\n",
" 6: 2.3513e+05 -3.7593e+05 6e+05 2e-06 7e-11\n",
" 7: 3.4798e+04 -3.7200e+04 7e+04 3e-15 3e-11\n",
" 8: 4.9779e+03 -5.5267e+03 1e+04 2e-15 8e-12\n",
" 9: 7.0883e+02 -7.9389e+02 2e+03 9e-16 4e-12\n",
"10: 9.9858e+01 -1.1550e+02 2e+02 3e-16 2e-12\n",
"11: 1.3632e+01 -1.7214e+01 3e+01 2e-16 4e-13\n",
"12: 1.6675e+00 -2.7375e+00 4e+00 2e-16 2e-13\n",
"13: 9.6444e-02 -5.1820e-01 6e-01 2e-16 8e-14\n",
"14: -6.3099e-02 -2.3787e-01 2e-01 2e-16 4e-14\n",
"15: -1.0860e-01 -2.1816e-01 1e-01 2e-16 2e-14\n",
"16: -1.3660e-01 -1.9241e-01 6e-02 2e-16 2e-14\n",
"17: -1.5111e-01 -1.7343e-01 2e-02 2e-16 2e-14\n",
"18: -1.5756e-01 -1.6728e-01 1e-02 2e-16 3e-14\n",
"19: -1.6149e-01 -1.6240e-01 9e-04 2e-16 3e-14\n",
"20: -1.6189e-01 -1.6190e-01 1e-05 2e-16 2e-14\n",
"21: -1.6190e-01 -1.6190e-01 1e-07 2e-16 3e-14\n",
"Optimal solution found.\n",
"Accuracy: "
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
" 1.0\n"
]
},
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 1707,
"text": [
"<matplotlib.collections.PathCollection at 0x119862050>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x1191e1f50>"
]
}
],
"prompt_number": 1707
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment