Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Add files via upload
  • Loading branch information
elu14001 committed Nov 20, 2019
1 parent d6fcff1 commit 741fc6d
Showing 1 changed file with 169 additions and 0 deletions.
169 changes: 169 additions & 0 deletions Clustering.ipynb
@@ -0,0 +1,169 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"from PIL import Image\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"from sklearn.cluster import KMeans\n",
"from sklearn.svm import SVC\n",
"from sklearn.svm import SVR"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# K-Means Clustering\n",
"We will perform clustering with k=2, using x and y position of pixels, as well as CMYK values as features\n",
"\n",
"## Applications\n",
"Knowing that a house has a pool, we can use drone images to to calculate the size of the pool by seperating the pixels in a pool image into two clusters: \n",
"part of the pool and not part of the pool\n",
"The visualization in the block below shows all pixels in the image as points, color coded based on the cluster to which they belong. \n",
"Centers of clusters are also shown."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"4096\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"im = Image.open('2slice25.png')\n",
"pixels = list(im.getdata())\n",
"print(len(pixels))\n",
"pixels = iter(pixels)\n",
"PixelMatrix = [[] for i in range(64)]\n",
"for i in range(64):\n",
" for j in range(64):\n",
" PixelMatrix[(i + (j * 64) % 64)].append(next(pixels))\n",
"\n",
"AllFeatures = []\n",
"for i in range(len(PixelMatrix)):\n",
" for j in range(len(PixelMatrix)):\n",
" Pix = [i, j]\n",
" for k in range(4):\n",
" Pix.append(PixelMatrix[i][j][k])\n",
" AllFeatures.append(Pix)\n",
" \n",
"X=np.array(AllFeatures)\n",
"kmeans = KMeans(n_clusters=2, random_state=0).fit(X)\n",
"\n",
"labels = kmeans.labels_\n",
"centers = kmeans.cluster_centers_\n",
"\n",
"#Generate a list of lists s.t. Clusters[n] contains points [x,y] in cluster n\n",
"Clusters = []\n",
"XT=X.transpose()\n",
"for i in range(max(labels)+1):\n",
" clust = [[XT[0][j], XT[1][j]] for j in range(4096) if labels[j] == i]\n",
" Clusters.append(clust)\n",
"\n",
"#Generate a list of x values and a list of y values for one cluster\n",
"xVals0 = [i[0] for i in Clusters[0]]\n",
"yVals0 = [i[1] for i in Clusters[0]]\n",
"\n",
"#Generate a list of x values and a list of y values for the other cluster\n",
"xVals1 = [i[0] for i in Clusters[1]]\n",
"yVals1 = [i[1] for i in Clusters[1]]\n",
"\n",
"#Plot the clusters and their centers\n",
"plt.scatter(xVals1, yVals1, alpha=0.5)\n",
"plt.scatter(xVals0, yVals0, alpha=0.5)\n",
"plt.scatter(centers[0][0], centers[0][1], alpha=0.5)\n",
"plt.scatter(centers[1][0], centers[1][1], alpha=0.5)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Support Vector Machine\n",
"Ignore this until it actually does something"
]
},
{
"cell_type": "code",
"execution_count": 0,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<bound method BaseSVC.decision_function of SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,\n",
" decision_function_shape='ovr', degree=3, gamma='auto', kernel='rbf',\n",
" max_iter=-1, probability=False, random_state=None, shrinking=True,\n",
" tol=0.001, verbose=False)>\n",
"<bound method BaseEstimator.get_params of SVR(C=1.0, cache_size=200, coef0=0.0, degree=3, epsilon=0.2, gamma='scale',\n",
" kernel='rbf', max_iter=-1, shrinking=True, tol=0.001, verbose=False)>\n"
]
}
],
"source": [
"X = np.array(Clusters[0] + Clusters[1])\n",
"y = np.array([0 for i in range(len(Clusters[0]))]+[1 for i in range(len(Clusters[1]))])\n",
"\n",
"clf = SVC(gamma='auto')\n",
"clf.fit(X, y)\n",
"SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,\n",
" decision_function_shape='ovr', degree=3, gamma='auto', kernel='rbf',\n",
" max_iter=-1, probability=False, random_state=None, shrinking=True,\n",
" tol=0.001, verbose=False)\n",
"print(np.array(clf.decision_function))\n",
"\n",
"clf = SVR(gamma='scale', C=1.0, epsilon=0.2)\n",
"clf.fit(X,y)\n",
"print(clf.get_params)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.4"
}
},
"nbformat": 4,
"nbformat_minor": 1
}

0 comments on commit 741fc6d

Please sign in to comment.