{ "cells": [ { "cell_type": "markdown", "id": "f5c4abc0", "metadata": {}, "source": [ "# Intel® Extension for Scikit-learn TSNE example" ] }, { "cell_type": "code", "execution_count": 1, "id": "23512089", "metadata": {}, "outputs": [], "source": [ "from timeit import default_timer as timer\n", "from sklearn import metrics\n", "from sklearn.datasets import make_blobs\n", "import matplotlib.pyplot as plt\n", "\n", "%matplotlib inline\n", "\n", "import warnings\n", "\n", "warnings.filterwarnings(\"ignore\")" ] }, { "cell_type": "markdown", "id": "b6e359f6", "metadata": {}, "source": [ "### Generate the data \n", "Generate isotropic Gaussian blobs for clustering.\n", "
\n", "With the number of samples: 20k
\n", "Number of features: 100
\n", "Number of blobs: 4
\n", "Source:
\n", "https://scikit-learn.org/stable/modules/generated/sklearn.datasets.make_blobs.html\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "27b99b44", "metadata": {}, "outputs": [], "source": [ "x, y = make_blobs(n_samples=20000, centers=4, n_features=100, random_state=0)" ] }, { "cell_type": "markdown", "id": "0341cac9", "metadata": {}, "source": [ "### Patch original Scikit-learn with Intel® Extension for Scikit-learn\n", "Intel® Extension for Scikit-learn (previously known as daal4py) contains drop-in replacement functionality for the stock Scikit-learn package. You can take advantage of the performance optimizations of Intel® Extension for Scikit-learn by adding just two lines of code before the usual Scikit-learn imports:" ] }, { "cell_type": "code", "execution_count": 3, "id": "244c5bc9", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Intel(R) Extension for Scikit-learn* enabled (https://github.com/uxlfoundation/scikit-learn-intelex)\n" ] } ], "source": [ "from sklearnex import patch_sklearn\n", "\n", "patch_sklearn()" ] }, { "cell_type": "markdown", "id": "6bb14ac8", "metadata": {}, "source": [ "Intel® Extension for Scikit-learn patching affects performance of specific Scikit-learn functionality. Refer to the [list of supported algorithms and parameters](https://uxlfoundation.github.io/scikit-learn-intelex/algorithms.html) for details. In cases when unsupported parameters are used, the package fallbacks into original Scikit-learn. If the patching does not cover your scenarios, [submit an issue on GitHub](https://github.com/uxlfoundation/scikit-learn-intelex/issues)." ] }, { "cell_type": "markdown", "id": "693b4e26", "metadata": {}, "source": [ "Training TSNE algorithm with Intel® Extension for Scikit-learn for generated dataset" ] }, { "cell_type": "code", "execution_count": 4, "id": "e9b8f06b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Intel® extension for Scikit-learn time: 12.63 s\n", "Intel® Extension for scikit-learn. Divergence: 4.289110606110757\n" ] } ], "source": [ "from sklearn.manifold import TSNE\n", "\n", "params = {\"n_components\": 2, \"random_state\": 42}\n", "start = timer()\n", "tsne = TSNE(**params)\n", "embedding_intelex = tsne.fit_transform(x)\n", "time_opt = timer() - start\n", "\n", "print(f\"Intel® extension for Scikit-learn time: {time_opt:.2f} s\")\n", "print(f\"Intel® Extension for scikit-learn. Divergence: {tsne.kl_divergence_}\")" ] }, { "cell_type": "markdown", "id": "bd8e7b0b", "metadata": {}, "source": [ " ### Train the same algorithm with original Scikit-learn\n", "In order to cancel optimizations, we use *unpatch_sklearn* and reimport the class TSNE." ] }, { "cell_type": "code", "execution_count": 5, "id": "5bb884d5", "metadata": {}, "outputs": [], "source": [ "from sklearnex import unpatch_sklearn\n", "\n", "unpatch_sklearn()" ] }, { "cell_type": "markdown", "id": "8cfa0dba", "metadata": {}, "source": [ "Training algorithm with original Scikit-learn library for generated dataset" ] }, { "cell_type": "code", "execution_count": 6, "id": "ae421d8e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Original Scikit-learn time: 37.66 s\n", "Original Scikit-learn. Divergence: 4.2955403327941895\n" ] } ], "source": [ "from sklearn.manifold import TSNE\n", "\n", "params = {\"n_components\": 2, \"random_state\": 42}\n", "start = timer()\n", "tsne = TSNE(**params)\n", "embedding_original = tsne.fit_transform(x)\n", "time_original = timer() - start\n", "\n", "print(f\"Original Scikit-learn time: {time_original:.2f} s\")\n", "print(f\"Original Scikit-learn. Divergence: {tsne.kl_divergence_}\")" ] }, { "cell_type": "markdown", "id": "8358d7c2", "metadata": {}, "source": [ "### Plot embeddings original scikit-learn and Intel® extension" ] }, { "cell_type": "code", "execution_count": 7, "id": "43ab1a96", "metadata": {}, "outputs": [], "source": [ "colors = [int(m) for m in y]" ] }, { "cell_type": "code", "execution_count": 8, "id": "35147d24", "metadata": {}, "outputs": [ { "data": { "image/png": "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QaPRoEePHjCZTIiKisLXX38tOxbZsTqVQ7D0nVcAAGazGQCg0WgQn2LAjJW7sevYeZtlcdEo6NK8Nt7v29Fm6yQiUhuHOdRlCzzURf/03sIt2LTvZIkv11WjYOnEV+HhrsWhs9fg7aHDE/WqwMVJBmETEdmSUx7qIpLhw/6dUL9KOSz4aR+SDRkA7gw07tG2Hjo3qQl3Ny3Kl/XFwq0HELP1ADKzcy2vbVi1PGa+0RW5uWa8939bceH6Dbi5uqDX4/XxSmSE5cysCmX1Ut4bEZEacY/PPbjHh+4nN88MIQS0ri4FPm82C6Teug2NRgM/L3deT4eIyEa4x4eoFDzoWkAajYIAX94slYjInnFAAREREakGiw8RERGpBosPERERqQaLDxEREakGiw8RERGpBosPERERqQaLDxEREakGiw8RERGpBosPERERqQaLDxEREakGiw8RERGpBosPERERqQaLDxEREakGiw8RERGpBosPERERqQaLDxEREakGiw8RERGpBosPERERqQaLDxEREakGiw8RERGpBosPERERqQaLDxEREakGiw8RERGpBosPERERqQaLDxEREakGiw8RERGpBosPERERqQaLDxEREakGiw8RERGpBosPERERqQaLDxEREakGiw8RERGpBosPERERqQaLDxEREakGiw8RERGpBosPERERqQaLDxEREakGiw8RERGpBosPERERqQaLDxEREakGiw8RERGpBosPERERqQaLDxEREakGiw8RERGpBosPERERqQaLDxEREakGiw8RERGpBosPERERqQaLDxEREakGiw8RERGpBosPERERqQaLDxEREakGiw8RERGpBosPERERqYbDFJ+pU6eiadOm8PHxQVBQELp3747Tp09bzZOVlYXo6GgEBATA29sbPXr0QGJioqTEREREZG8cpvjs3r0b0dHR+OOPP7Bt2zbk5OSgY8eOyMjIsMwzatQobNy4EStXrsTu3bsRHx+P559/XmJqIiIisieKEELIDvEwkpOTERQUhN27d+Pxxx+HwWBAYGAgli5dip49ewIATp06hVq1aiE2NhYtWrR44DKNRiP0ej0MBgN8fX1L+y0QERFRCSjO97fD7PH5J4PBAADw9/cHABw6dAg5OTmIjIy0zFOzZk1UqlQJsbGxBS7DZDLBaDRa/RAREZHzcsjiYzabMXLk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VixZskR4enqKH374wTLPJ598Ivz8/MT69evFsWPHRLdu3UR4eLjIzMyUmLxoWHwcSEHFRwghjh49Ktq0aSN0Op2oUKGC+OSTT+QEtHMxMTECQIE/9+L2LLo5c+aISpUqCTc3N9GsWTPxxx9/yI7kEAr7HMbExFjmyczMFMOGDRNlypQRnp6e4rnnnrMq6XR//yw+3J7Fs3HjRlG3bl2h0+lEzZo1xTfffGP1vNlsFu+++64IDg4WOp1OdOjQQZw+fVpS2uJRhBBCxp4mIiIiIlvjWV1ERESkGiw+REREpBosPkRERKQaLD5ERESkGiw+REREpBosPkRERKQaLD5ERESkGiw+REREpBosPkRERKQaLD5ERESkGiw+ROTUkpOTERISgilTplim7d27F25ubtixY4fEZEQkA+/VRURO76effkL37t2xd+9e1KhRAw0bNkS3bt3w2WefyY5GRDbG4kNEqhAdHY3t27ejSZMmOH78OA4cOACdTic7FhHZGIsPEalCZmYm6tati6tXr+LQoUOoV6+e7EhEJAHH+BCRKpw/fx7x8fEwm824dOmS7DhEJAn3+BCR08vOzkazZs3QsGFD1KhRA59//jmOHz+OoKAg2dGIyMZYfIjI6Y0bNw6rVq3C0aNH4e3tjSeeeAJ6vR6bNm2SHY2IbIyHuojIqe3atQuff/45Fi9eDF9fX2g0GixevBi//fYb5s6dKzseEdkY9/gQERGRanCPDxEREakGiw8RERGpBosPERERqQaLDxEREakGiw8RERGpBosPERERqQaLDxEREakGiw8RERGpBosPERERqQaLDxEREakGiw8RERGpBosPERERqcb/AzJ0sogSJIg/AAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for emb, title in zip(\n", " [embedding_intelex, embedding_original],\n", " [\"Intel® Extension for scikit-learn\", \"Original scikit-learn\"],\n", "):\n", " plt.scatter(emb[:, 0], emb[:, 1], c=colors)\n", " plt.title(title)\n", " plt.xlabel(\"x\")\n", " plt.ylabel(\"y\")\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 9, "id": "ffd79e96", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'Speedup for this run: 3.0'" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f\"Speedup for this run: {(time_original/time_opt):.1f}\"" ] } ], "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.9.15" } }, "nbformat": 4, "nbformat_minor": 5 }