{"id":36647,"date":"2024-11-01T09:50:17","date_gmt":"2024-11-01T09:50:17","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=36647"},"modified":"2024-11-01T11:52:22","modified_gmt":"2024-11-01T11:52:22","slug":"deep-learning-pytorch-course-clustering","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/36647\/","title":{"rendered":"Deep Learning PyTorch Course, Clustering"},"content":{"rendered":"<p><body><\/p>\n<p>The advancement of deep learning technology has been accompanied by the development of data analysis and processing techniques. Among them, clustering is a very useful method for finding hidden patterns in data and grouping similar data together. In this article, we will explore the basics to advanced techniques of clustering using PyTorch in depth.<\/p>\n<h2>1. Basics of Clustering<\/h2>\n<p>Clustering is a technique that divides a given dataset into several clusters based on similarity. In this process, each cluster contains very similar data internally, but is distinctly different from other clusters. Representative examples of clustering algorithms include K-Means, Hierarchical Clustering, and DBSCAN.<\/p>\n<h3>1.1 K-Means Clustering<\/h3>\n<p>K-Means Clustering is one of the most widely used clustering methods, aiming to divide the data into K clusters. This method is performed through the following steps:<\/p>\n<ol>\n<li>Set the number of clusters K.<\/li>\n<li>Randomly select K initial cluster centers (centroids).<\/li>\n<li>Assign each data point to the nearest cluster center.<\/li>\n<li>Update the center of each cluster to the average of the current data points.<\/li>\n<li>Repeat steps 2-4 until the cluster centers no longer change.<\/li>\n<\/ol>\n<h2>2. Implementing K-Means Clustering with PyTorch<\/h2>\n<p>Now, let&#8217;s implement K-Means Clustering using PyTorch. Below is a basic code example for K-Means Clustering.<\/p>\n<h3>2.1 Generating Data<\/h3>\n<pre><code>import numpy as np\nimport matplotlib.pyplot as plt\n\n# Generate data\nnp.random.seed(0)\nn_samples = 500\nrandom_data = np.random.rand(n_samples, 2)\nplt.scatter(random_data[:, 0], random_data[:, 1], s=10)\nplt.title(\"Randomly Generated Data\")\nplt.xlabel(\"X-axis\")\nplt.ylabel(\"Y-axis\")\nplt.show()<\/code><\/pre>\n<h3>2.2 Implementing K-Means Algorithm<\/h3>\n<pre><code>class KMeans:\n    def __init__(self, n_clusters=3, max_iters=100):\n        self.n_clusters = n_clusters\n        self.max_iters = max_iters\n        \n    def fit(self, data):\n        # Randomly select initial centroids\n        self.centroids = data[np.random.choice(data.shape[0], self.n_clusters, replace=False)]\n        for i in range(self.max_iters):\n            # Cluster assignment\n            distances = np.linalg.norm(data[:, np.newaxis] - self.centroids, axis=2)\n            self.labels = np.argmin(distances, axis=1)\n            # Update centroids\n            new_centroids = np.array([data[self.labels == j].mean(axis=0) for j in range(self.n_clusters)])\n            if np.all(self.centroids == new_centroids):\n                break\n            self.centroids = new_centroids\n\n    def predict(self, data):\n        distances = np.linalg.norm(data[:, np.newaxis] - self.centroids, axis=2)\n        return np.argmin(distances, axis=1)<\/code><\/pre>\n<h3>2.3 Training the Model<\/h3>\n<pre><code># Train K-Means Clustering model\nkmeans = KMeans(n_clusters=3)\nkmeans.fit(random_data)\n\n# Visualize clusters\nplt.scatter(random_data[:, 0], random_data[:, 1], c=kmeans.labels, s=10)\nplt.scatter(kmeans.centroids[:, 0], kmeans.centroids[:, 1], c='red', s=100, marker='X')\nplt.title(\"K-Means Clustering Result\")\nplt.xlabel(\"X-axis\")\nplt.ylabel(\"Y-axis\")\nplt.show()<\/code><\/pre>\n<h2>3. Evaluating Clusters<\/h2>\n<p>Evaluating the results of clustering is very important. While there are many evaluation metrics, several key metrics commonly used include:<\/p>\n<ul>\n<li><strong>Silhouette Score<\/strong>: Evaluates the cohesion and separation of clusters. The closer to 1, the better.<\/li>\n<li><strong>Euclidean Distance<\/strong>: Measures the average distance of clusters to assess the quality of clustering.<\/li>\n<\/ul>\n<h3>3.1 Calculating Silhouette Score<\/h3>\n<pre><code>from sklearn.metrics import silhouette_score\n\n# Calculate Silhouette Score\nscore = silhouette_score(random_data, kmeans.labels)\nprint(f\"Silhouette Score: {score:.2f}\")<\/code><\/pre>\n<h2>4. Advanced Clustering Techniques<\/h2>\n<p>In addition to basic K-Means clustering, various advanced clustering techniques have been developed. Here, we will look at some of them.<\/p>\n<h3>4.1 DBSCAN<\/h3>\n<p>DBSCAN (Density-Based Spatial Clustering of Applications with Noise) is a density-based clustering algorithm that defines clusters based on the density of points. This method is robust to noise and is effective even when the shape of clusters is not spherical.<\/p>\n<h3>4.2 Hierarchical Clustering<\/h3>\n<p>Hierarchical clustering performs clustering in a hierarchical structure. This method works by merging or splitting clusters based on similarity between them. As a result, a dendrogram (hierarchical structure graph) can be produced to visually determine the number of clusters.<\/p>\n<h3>4.3 Implementing DBSCAN in Python<\/h3>\n<pre><code>from sklearn.cluster import DBSCAN\n\n# Train DBSCAN model\ndbscan = DBSCAN(eps=0.3, min_samples=5)\ndbscan_labels = dbscan.fit_predict(random_data)\n\n# Visualize DBSCAN results\nplt.scatter(random_data[:, 0], random_data[:, 1], c=dbscan_labels, s=10)\nplt.title(\"DBSCAN Clustering Result\")\nplt.xlabel(\"X-axis\")\nplt.ylabel(\"Y-axis\")\nplt.show()<\/code><\/pre>\n<h2>5. Conclusion<\/h2>\n<p>In this lecture, we learned about the implementation and evaluation methods of K-Means Clustering using PyTorch, as well as advanced clustering techniques. Clustering is one of the important techniques for data analysis and processing in various fields, and through it, we can gain insights into the structure and patterns of data. We recommend applying various clustering techniques to real data in the future.<\/p>\n<p>We hope to gain deeper insights through continuous research and learning in deep learning and machine learning. Thank you.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The advancement of deep learning technology has been accompanied by the development of data analysis and processing techniques. Among them, clustering is a very useful method for finding hidden patterns in data and grouping similar data together. In this article, we will explore the basics to advanced techniques of clustering using PyTorch in depth. 1. &hellip; <a href=\"https:\/\/atmokpo.com\/w\/36647\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Deep Learning PyTorch Course, Clustering&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[149],"tags":[],"class_list":["post-36647","post","type-post","status-publish","format-standard","hentry","category-pytorch-study"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Deep Learning PyTorch Course, Clustering - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/atmokpo.com\/w\/36647\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Deep Learning PyTorch Course, Clustering - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"The advancement of deep learning technology has been accompanied by the development of data analysis and processing techniques. Among them, clustering is a very useful method for finding hidden patterns in data and grouping similar data together. In this article, we will explore the basics to advanced techniques of clustering using PyTorch in depth. 1. &hellip; \ub354 \ubcf4\uae30 &quot;Deep Learning PyTorch Course, Clustering&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/36647\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:50:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:52:22+00:00\" \/>\n<meta name=\"author\" content=\"root\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:site\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:label1\" content=\"\uae00\uc4f4\uc774\" \/>\n\t<meta name=\"twitter:data1\" content=\"root\" \/>\n\t<meta name=\"twitter:label2\" content=\"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04\" \/>\n\t<meta name=\"twitter:data2\" content=\"4\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/36647\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36647\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Deep Learning PyTorch Course, Clustering\",\"datePublished\":\"2024-11-01T09:50:17+00:00\",\"dateModified\":\"2024-11-01T11:52:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36647\/\"},\"wordCount\":456,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"PyTorch Study\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/36647\/\",\"url\":\"https:\/\/atmokpo.com\/w\/36647\/\",\"name\":\"Deep Learning PyTorch Course, Clustering - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:50:17+00:00\",\"dateModified\":\"2024-11-01T11:52:22+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36647\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/36647\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/36647\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Deep Learning PyTorch Course, Clustering\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/atmokpo.com\/w\/#website\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/atmokpo.com\/w\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"contentUrl\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"width\":400,\"height\":400,\"caption\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\"},\"image\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/bebubo4\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\",\"name\":\"root\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"caption\":\"root\"},\"sameAs\":[\"http:\/\/atmokpo.com\/w\"],\"url\":\"https:\/\/atmokpo.com\/w\/author\/root\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Deep Learning PyTorch Course, Clustering - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/atmokpo.com\/w\/36647\/","og_locale":"ko_KR","og_type":"article","og_title":"Deep Learning PyTorch Course, Clustering - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"The advancement of deep learning technology has been accompanied by the development of data analysis and processing techniques. Among them, clustering is a very useful method for finding hidden patterns in data and grouping similar data together. In this article, we will explore the basics to advanced techniques of clustering using PyTorch in depth. 1. &hellip; \ub354 \ubcf4\uae30 \"Deep Learning PyTorch Course, Clustering\"","og_url":"https:\/\/atmokpo.com\/w\/36647\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:50:17+00:00","article_modified_time":"2024-11-01T11:52:22+00:00","author":"root","twitter_card":"summary_large_image","twitter_creator":"@bebubo4","twitter_site":"@bebubo4","twitter_misc":{"\uae00\uc4f4\uc774":"root","\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"4\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/36647\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/36647\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Deep Learning PyTorch Course, Clustering","datePublished":"2024-11-01T09:50:17+00:00","dateModified":"2024-11-01T11:52:22+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/36647\/"},"wordCount":456,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["PyTorch Study"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/36647\/","url":"https:\/\/atmokpo.com\/w\/36647\/","name":"Deep Learning PyTorch Course, Clustering - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:50:17+00:00","dateModified":"2024-11-01T11:52:22+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/36647\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/36647\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/36647\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Deep Learning PyTorch Course, Clustering"}]},{"@type":"WebSite","@id":"https:\/\/atmokpo.com\/w\/#website","url":"https:\/\/atmokpo.com\/w\/","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","description":"","publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/atmokpo.com\/w\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/atmokpo.com\/w\/#organization","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","url":"https:\/\/atmokpo.com\/w\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/","url":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","contentUrl":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","width":400,"height":400,"caption":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8"},"image":{"@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/bebubo4"]},{"@type":"Person","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7","name":"root","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","caption":"root"},"sameAs":["http:\/\/atmokpo.com\/w"],"url":"https:\/\/atmokpo.com\/w\/author\/root\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/36647","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/comments?post=36647"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/36647\/revisions"}],"predecessor-version":[{"id":36648,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/36647\/revisions\/36648"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=36647"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=36647"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=36647"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}