{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "colab": {}, "colab_type": "code", "id": "R8_IiKZZEU9i" }, "outputs": [], "source": [ "import torch\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from kmeans_pytorch import kmeans, kmeans_predict" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "colab": {}, "colab_type": "code", "id": "iyoljrh1FCxJ" }, "outputs": [], "source": [ "# set random seed\n", "np.random.seed(123)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "colab": {}, "colab_type": "code", "id": "tcnoTA16FHbJ" }, "outputs": [], "source": [ "# data\n", "data_size, dims, num_clusters = 1000, 2, 3\n", "x = np.random.randn(data_size, dims) / 6\n", "x = torch.from_numpy(x)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "colab": {}, "colab_type": "code", "id": "Ar-lcW3OFTXI" }, "outputs": [], "source": [ "# set device\n", "if torch.cuda.is_available():\n", " device = torch.device('cuda:0')\n", "else:\n", " device = torch.device('cpu')" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 71 }, "colab_type": "code", "id": "KsM9zQZ5FYKp", "outputId": "c37d7629-560f-4191-bbee-2f5523d2cda2" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "running k-means on cuda:0..\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[running kmeans]: 6it [00:00, 73.67it/s, center_shift=0.000068, iteration=7, tol=0.000100]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "device is :cuda:0\n", "device is :cuda:0\n", "device is :cuda:0\n", "device is :cuda:0\n", "device is :cuda:0\n", "device is :cuda:0\n", "device is :cuda:0\n" ] } ], "source": [ "# k-means\n", "cluster_ids_x, cluster_centers = kmeans(\n", " X=x, num_clusters=num_clusters, distance='soft_dtw', device=device, gamma_for_soft_dtw=0.0001\n", ")" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 797 }, "colab_type": "code", "id": "IdzkYHBEFdja", "outputId": "3bd48cc3-487c-40f7-826a-c8fccecfce89" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "tensor([2, 0, 2, 0, 1, 0, 1, 0, 1, 1, 2, 2, 0, 1, 0, 0, 0, 1, 2, 2, 0, 2, 1, 1,\n", " 2, 0, 1, 2, 2, 1, 2, 0, 1, 1, 2, 1, 1, 2, 0, 0, 1, 1, 0, 0, 1, 1, 2, 2,\n", " 0, 1, 0, 2, 1, 0, 0, 2, 2, 1, 0, 1, 0, 2, 1, 1, 1, 0, 2, 1, 2, 1, 2, 1,\n", " 1, 2, 2, 1, 0, 2, 1, 1, 1, 2, 1, 1, 1, 0, 2, 2, 1, 2, 2, 1, 0, 0, 2, 1,\n", " 1, 0, 0, 0, 1, 1, 1, 0, 2, 1, 0, 2, 1, 2, 0, 0, 1, 0, 2, 2, 2, 1, 1, 1,\n", " 1, 0, 1, 0, 2, 1, 0, 1, 1, 2, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 2,\n", " 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 1, 0, 2, 0, 0, 1, 0, 2, 2, 0, 0,\n", " 2, 1, 0, 1, 0, 2, 2, 0, 0, 0, 2, 0, 2, 2, 2, 1, 1, 0, 1, 2, 2, 0, 1, 0,\n", " 2, 2, 1, 1, 0, 0, 2, 2, 1, 0, 2, 0, 2, 1, 2, 1, 1, 0, 2, 0, 0, 2, 2, 2,\n", " 0, 1, 0, 1, 1, 2, 1, 2, 1, 0, 0, 2, 2, 2, 2, 0, 1, 1, 1, 2, 1, 0, 2, 0,\n", " 0, 2, 2, 1, 1, 0, 0, 2, 1, 1, 1, 2, 1, 0, 0, 1, 1, 2, 2, 1, 0, 0, 2, 1,\n", " 1, 0, 1, 2, 1, 2, 0, 2, 2, 0, 2, 1, 0, 1, 1, 1, 2, 0, 1, 2, 2, 1, 1, 1,\n", " 0, 1, 0, 1, 2, 0, 2, 1, 2, 1, 0, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 0, 2, 1,\n", " 0, 0, 2, 0, 2, 0, 1, 2, 1, 2, 0, 0, 2, 1, 1, 1, 1, 0, 2, 0, 2, 2, 1, 0,\n", " 1, 2, 2, 1, 1, 1, 2, 2, 0, 0, 1, 2, 1, 1, 0, 1, 2, 1, 2, 0, 0, 2, 0, 1,\n", " 1, 1, 2, 2, 1, 2, 0, 2, 0, 0, 2, 0, 2, 1, 2, 1, 1, 2, 2, 0, 1, 0, 0, 0,\n", " 0, 1, 0, 2, 2, 1, 0, 2, 0, 0, 2, 2, 2, 0, 1, 2, 0, 2, 2, 1, 2, 1, 2, 1,\n", " 0, 0, 0, 2, 0, 2, 2, 2, 0, 1, 1, 0, 2, 2, 0, 2, 2, 1, 0, 0, 2, 2, 0, 0,\n", " 1, 0, 1, 2, 0, 2, 0, 1, 0, 0, 0, 1, 2, 2, 1, 1, 2, 1, 1, 1, 0, 0, 2, 0,\n", " 0, 0, 2, 1, 1, 1, 2, 2, 2, 2, 0, 0, 1, 2, 0, 0, 1, 2, 1, 0, 1, 0, 2, 2,\n", " 0, 0, 0, 0, 2, 1, 0, 2, 1, 1, 2, 1, 0, 2, 0, 2, 0, 2, 1, 1, 2, 1, 0, 0,\n", " 0, 1, 2, 1, 1, 0, 2, 0, 2, 1, 2, 1, 1, 2, 0, 1, 0, 0, 2, 0, 2, 2, 2, 1,\n", " 1, 2, 1, 1, 2, 1, 1, 1, 1, 0, 0, 2, 1, 1, 2, 1, 1, 2, 0, 0, 2, 1, 2, 1,\n", " 1, 1, 1, 1, 0, 0, 2, 2, 1, 0, 1, 2, 2, 0, 1, 0, 2, 0, 2, 2, 2, 0, 1, 2,\n", " 2, 0, 1, 2, 1, 1, 2, 1, 2, 1, 0, 2, 0, 2, 1, 0, 2, 0, 1, 2, 1, 2, 1, 0,\n", " 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 2, 0, 0, 2, 1, 0, 1, 1, 1, 0, 0,\n", " 2, 1, 0, 2, 1, 1, 0, 2, 1, 2, 0, 2, 2, 1, 1, 0, 0, 2, 0, 2, 1, 1, 0, 1,\n", " 1, 0, 2, 2, 2, 1, 0, 0, 2, 1, 1, 1, 2, 1, 0, 1, 1, 1, 2, 2, 1, 1, 2, 1,\n", " 0, 1, 0, 0, 0, 2, 0, 1, 0, 0, 1, 1, 0, 1, 2, 1, 1, 1, 1, 0, 1, 0, 0, 2,\n", " 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 2, 2, 2, 0,\n", " 2, 2, 0, 2, 2, 1, 1, 1, 1, 0, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 0, 2,\n", " 2, 0, 2, 2, 0, 2, 1, 0, 0, 2, 0, 0, 1, 0, 2, 2, 0, 1, 2, 0, 0, 1, 1, 2,\n", " 2, 2, 0, 1, 2, 0, 0, 1, 2, 2, 0, 1, 0, 0, 2, 2, 0, 2, 1, 0, 1, 1, 2, 1,\n", " 0, 2, 1, 1, 0, 1, 1, 0, 2, 2, 2, 2, 1, 0, 0, 0, 2, 1, 2, 2, 0, 0, 0, 2,\n", " 1, 2, 1, 0, 2, 0, 0, 1, 1, 2, 2, 1, 2, 1, 2, 0, 0, 2, 1, 0, 1, 0, 0, 2,\n", " 2, 2, 2, 0, 1, 2, 2, 2, 2, 2, 1, 0, 0, 1, 1, 0, 2, 0, 2, 0, 2, 0, 0, 1,\n", " 0, 0, 0, 2, 0, 2, 1, 2, 0, 1, 0, 2, 0, 0, 0, 1, 0, 1, 1, 1, 0, 2, 2, 0,\n", " 1, 2, 0, 1, 1, 2, 2, 1, 2, 1, 0, 1, 0, 2, 1, 1, 2, 1, 1, 2, 2, 0, 1, 0,\n", " 2, 2, 0, 2, 2, 2, 1, 1, 0, 1, 2, 0, 2, 1, 0, 2, 1, 0, 1, 0, 2, 2, 2, 2,\n", " 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 0, 0, 1, 1, 2, 1, 0, 1, 1, 1, 0, 2, 2,\n", " 2, 2, 1, 2, 0, 1, 2, 0, 1, 1, 1, 1, 2, 2, 0, 0, 2, 1, 1, 1, 0, 2, 0, 2,\n", " 2, 2, 0, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0])\n", "tensor([[-0.1075, -0.1522],\n", " [ 0.1544, -0.0137],\n", " [-0.0833, 0.1454]])\n" ] } ], "source": [ "# cluster IDs and cluster centers\n", "print(cluster_ids_x)\n", "print(cluster_centers)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "colab": {}, "colab_type": "code", "id": "32XHxknWFayP" }, "outputs": [], "source": [ "# more data\n", "y = np.random.randn(5, dims) / 6\n", "y = torch.from_numpy(y)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 34 }, "colab_type": "code", "id": "gQB3jVTKFfsN", "outputId": "1f2f634a-4a32-4b05-ca7f-231165e974ea" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[running kmeans]: 7it [09:38, 82.70s/it, center_shift=0.000068, iteration=7, tol=0.000100]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "predicting on cuda:0..\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "# predict cluster ids for y\n", "cluster_ids_y = kmeans_predict(\n", " y, cluster_centers, 'soft_dtw', device=device\n", ")" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 34 }, "colab_type": "code", "id": "CGoD8s6_FiDp", "outputId": "7137fa6a-f5a8-4096-f5d2-fc74d45eaf2f" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "tensor([1, 2, 0, 1, 2])\n" ] } ], "source": [ "print(cluster_ids_y)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 481 }, "colab_type": "code", "id": "5V0vxpaUEnFd", "outputId": "a97b6261-034e-493a-d8a6-cf955ab5e8fd" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# plot\n", "plt.figure(figsize=(4, 3), dpi=160)\n", "plt.scatter(x[:, 0], x[:, 1], c=cluster_ids_x, cmap='cool')\n", "plt.scatter(y[:, 0], y[:, 1], c=cluster_ids_y, cmap='cool', marker='X')\n", "plt.scatter(\n", " cluster_centers[:, 0], cluster_centers[:, 1],\n", " c='white',\n", " alpha=0.6,\n", " edgecolors='black',\n", " linewidths=2\n", ")\n", "plt.axis([-1, 1, -1, 1])\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "BHkQ-zw9EnsN" }, "outputs": [], "source": [] } ], "metadata": { "accelerator": "GPU", "colab": { "collapsed_sections": [], "name": "example.ipynb", "provenance": [] }, "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.8" } }, "nbformat": 4, "nbformat_minor": 4 }