{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Algoritmo K-Means Exemplo" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from sklearn.cluster import KMeans\n", "from matplotlib import style\n", "style.use('ggplot')\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "x = [1, 5, 1.5, 8, 1, 9]\n", "y = [2, 8, 1.8, 8, 0.6, 11]\n", "plt.figure(figsize=(9,6))\n", "plt.scatter(x,y, color='g', edgecolor='black')\n", "plt.ylabel('y')\n", "plt.xlabel('x')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 1. 2. ]\n", " [ 5. 8. ]\n", " [ 1.5 1.8]\n", " [ 8. 8. ]\n", " [ 1. 0.6]\n", " [ 9. 11. ]]\n" ] } ], "source": [ "X = np.array([[1,2], [5,8], [1.5, 1.8], [8, 8], [1, 0.6], [9, 11]]) # Convertendo nossos dados para um array numpy\n", "\n", "print(X)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "KMeans(algorithm='auto', copy_x=True, init='k-means++', max_iter=300,\n", " n_clusters=2, n_init=10, n_jobs=None, precompute_distances='auto',\n", " random_state=None, tol=0.0001, verbose=0)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Vamos inicilizar o algoritmo K-Means com os parâmetros necessários e utilizar a função fit() para ajustarmos os dados\n", "kmeans = KMeans(n_clusters=2)\n", "kmeans.fit(X)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[1.16666667 1.46666667]\n", " [7.33333333 9. ]]\n", "[0 1 0 1 0 1]\n" ] } ], "source": [ "# Obtendo os valores das centróides e rótulos baseados nos ajustes\n", "centroids = kmeans.cluster_centers_\n", "labels = kmeans.labels_\n", "\n", "print(centroids)\n", "print(labels)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Coordenada: [1. 2.] rótulo: 0\n", "Coordenada: [5. 8.] rótulo: 1\n", "Coordenada: [1.5 1.8] rótulo: 0\n", "Coordenada: [8. 8.] rótulo: 1\n", "Coordenada: [1. 0.6] rótulo: 0\n", "Coordenada: [ 9. 11.] rótulo: 1\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "cores = [\"g.\", \"r.\", \"c.\", \"y.\"]\n", "\n", "for i in range(len(X)):\n", " print(\"Coordenada:\", X[i], \"rótulo:\", labels[i])\n", " plt.plot(X[i][0], X[i][1], cores[labels[i]], markersize=10)\n", "\n", "plt.scatter(centroids[:,0], centroids[:,1], marker=\"x\", s=150, linewidths=5, zorder=10, edgecolor='black')\n", "plt.show()" ] } ], "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.6.9" } }, "nbformat": 4, "nbformat_minor": 4 }