From 1476e18d11fae58af36823b51054f2aeab646029 Mon Sep 17 00:00:00 2001 From: Aditya Kumar Singh Date: Wed, 15 Nov 2023 23:36:00 +0530 Subject: [PATCH] beginner friendly tutorial for k means clustering --- .../KMeansCluster-checkpoint.ipynb | 189 ++++++++++++++++++ K Means Clustering/KMeansCluster.ipynb | 165 +++++++++++++++ 2 files changed, 354 insertions(+) create mode 100644 K Means Clustering/.ipynb_checkpoints/KMeansCluster-checkpoint.ipynb create mode 100644 K Means Clustering/KMeansCluster.ipynb diff --git a/K Means Clustering/.ipynb_checkpoints/KMeansCluster-checkpoint.ipynb b/K Means Clustering/.ipynb_checkpoints/KMeansCluster-checkpoint.ipynb new file mode 100644 index 0000000..c6b81a5 --- /dev/null +++ b/K Means Clustering/.ipynb_checkpoints/KMeansCluster-checkpoint.ipynb @@ -0,0 +1,189 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "4cbfb673", + "metadata": {}, + "source": [ + "# Beginner's Guide to Clustering with K-Means" + ] + }, + { + "cell_type": "markdown", + "id": "ff117bb2", + "metadata": {}, + "source": [ + "Clustering is a type of unsupervised machine learning where the goal is to group similar data points together. It groups data into 'K' number of clusters. The number of clusters is user-defined(ex-if K=5, there will be five clusters) and the algorithm iteratively assigns each data point to one of the 'k' clusters based on the features that are provided." + ] + }, + { + "cell_type": "markdown", + "id": "d0ad13eb", + "metadata": {}, + "source": [ + "# Behind the K-means" + ] + }, + { + "cell_type": "markdown", + "id": "c7c984a6", + "metadata": {}, + "source": [ + "It uses the Euclidean distance formula to measure the distance between each data point and each cluster point.\n", + "It then assigns each data point to the cluster who's center is nearest to the data point.\n", + "Then finally to find the center of the newly formed cluster, we take the mean of the data point obtained in that cluster." + ] + }, + { + "cell_type": "markdown", + "id": "5eab279e", + "metadata": {}, + "source": [ + "# Implementation using Python-:" + ] + }, + { + "cell_type": "markdown", + "id": "234ea270", + "metadata": {}, + "source": [ + "Now enough for the theory part, let's jump right into the code for better understanding (:\n", + "But before that make sure you have numpy, pandas, sklearn and matplotlib libraries." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "f09438f5", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "from sklearn.cluster import KMeans\n", + "from sklearn.datasets import load_iris\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "id": "e0098fad", + "metadata": {}, + "source": [ + "# LOADING THE DATASET\n", + "For this demonstration we will be using a famous dataset called the iris(which is about flowers)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "47ee5f75", + "metadata": {}, + "outputs": [], + "source": [ + "iris = load_iris()\n", + "X = iris.data" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "7b4b49f0", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\adi20\\anaconda3\\Lib\\site-packages\\sklearn\\cluster\\_kmeans.py:1416: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning\n", + " super()._check_params_vs_input(X, default_n_init=10)\n", + "C:\\Users\\adi20\\anaconda3\\Lib\\site-packages\\sklearn\\cluster\\_kmeans.py:1440: UserWarning: KMeans is known to have a memory leak on Windows with MKL, when there are less chunks than available threads. You can avoid it by setting the environment variable OMP_NUM_THREADS=1.\n", + " warnings.warn(\n" + ] + }, + { + "data": { + "text/html": [ + "
KMeans(n_clusters=3)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + ], + "text/plain": [ + "KMeans(n_clusters=3)" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Creating and fitting the model-\n", + "kmeans = KMeans(n_clusters=3)\n", + "kmeans.fit(X)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "86b13d82", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Assigning the clusters and plotting them\n", + "labels = kmeans.labels_\n", + "\n", + "plt.scatter(X[:, 0], X[:, 1], c=labels)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "12303cf9", + "metadata": {}, + "source": [ + "The above plot shows the first two features of the iris dataset that is the sepal lenght and the sepal widht. Each point is the iris flower.\n", + "The colors of the points represent the clusters that the K-Means algorithm has assigned the flowers to. Since we set n_clusters=3, there are three different colors. The algorithm tries to group the flowers based on the similarity of their features." + ] + }, + { + "cell_type": "markdown", + "id": "d3f98b6d", + "metadata": {}, + "source": [ + "And Congratulations you just learned about K Means clustering algorithm \n", + "There are some advanced techniques in this like the elbow method which we can use for finding the optimal number of clusters but this is enough for a good beginner friendly tutorial :)\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.11.4" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/K Means Clustering/KMeansCluster.ipynb b/K Means Clustering/KMeansCluster.ipynb new file mode 100644 index 0000000..439f126 --- /dev/null +++ b/K Means Clustering/KMeansCluster.ipynb @@ -0,0 +1,165 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "4cbfb673", + "metadata": {}, + "source": [ + "# Beginner's Guide to Clustering with K-Means" + ] + }, + { + "cell_type": "markdown", + "id": "ff117bb2", + "metadata": {}, + "source": [ + "Clustering is a type of unsupervised machine learning where the goal is to group similar data points together. It groups data into 'K' number of clusters. The number of clusters is user-defined(ex-if K=5, there will be five clusters) and the algorithm iteratively assigns each data point to one of the 'k' clusters based on the features that are provided." + ] + }, + { + "cell_type": "markdown", + "id": "d0ad13eb", + "metadata": {}, + "source": [ + "# Behind the K-means" + ] + }, + { + "cell_type": "markdown", + "id": "c7c984a6", + "metadata": {}, + "source": [ + "It uses the Euclidean distance formula to measure the distance between each data point and each cluster point.\n", + "It then assigns each data point to the cluster who's center is nearest to the data point.\n", + "Then finally to find the center of the newly formed cluster, we take the mean of the data point obtained in that cluster." + ] + }, + { + "cell_type": "markdown", + "id": "5eab279e", + "metadata": {}, + "source": [ + "# Implementation using Python-:" + ] + }, + { + "cell_type": "markdown", + "id": "234ea270", + "metadata": {}, + "source": [ + "Now enough for the theory part, let's jump right into the code for better understanding (:\n", + "But before that make sure you have numpy, pandas, sklearn and matplotlib libraries." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "f09438f5", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "from sklearn.cluster import KMeans\n", + "from sklearn.datasets import load_iris\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "id": "e0098fad", + "metadata": {}, + "source": [ + "# LOADING THE DATASET\n", + "For this demonstration we will be using a famous dataset called the iris(which is about flowers)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "47ee5f75", + "metadata": {}, + "outputs": [], + "source": [ + "iris = load_iris()\n", + "X = iris.data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7b4b49f0", + "metadata": {}, + "outputs": [], + "source": [ + "#Creating and fitting the model-\n", + "kmeans = KMeans(n_clusters=3)\n", + "kmeans.fit(X)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "86b13d82", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Assigning the clusters and plotting them\n", + "labels = kmeans.labels_\n", + "\n", + "plt.scatter(X[:, 0], X[:, 1], c=labels)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "12303cf9", + "metadata": {}, + "source": [ + "The above plot shows the first two features of the iris dataset that is the sepal lenght and the sepal widht. Each point is the iris flower.\n", + "The colors of the points represent the clusters that the K-Means algorithm has assigned the flowers to. Since we set n_clusters=3, there are three different colors. The algorithm tries to group the flowers based on the similarity of their features." + ] + }, + { + "cell_type": "markdown", + "id": "d3f98b6d", + "metadata": {}, + "source": [ + "And Congratulations you just learned about K Means clustering algorithm \n", + "There are some advanced techniques in this like the elbow method which we can use for finding the optimal number of clusters but this is enough for a good beginner friendly tutorial :)\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.11.4" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}