.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/plot_kernel_rim.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_auto_examples_plot_kernel_rim.py: ============================================================== Comparative clustering of circles dataset with kernel change ============================================================== We show here a simple dataset consisting in two centred circle that can be challenging for some clustering algorithms. This dataset can be challenging for GEMINI as well, unless we change the kernel adequately. .. GENERATED FROM PYTHON SOURCE LINES 9-15 .. code-block:: Python from matplotlib import pyplot as plt from sklearn import datasets from sklearn import metrics from gemclus.linear import KernelRIM .. GENERATED FROM PYTHON SOURCE LINES 16-18 Draw samples for the circle dataset ------------------------------------- .. GENERATED FROM PYTHON SOURCE LINES 20-26 .. code-block:: Python # We start by generating samples distributed on two circles noise = 0.05 factor = 0.1 X, y = datasets.make_circles(n_samples=200, noise=noise, factor=factor, random_state=0) .. GENERATED FROM PYTHON SOURCE LINES 27-29 Training clustering model --------------------------- .. GENERATED FROM PYTHON SOURCE LINES 31-35 .. code-block:: Python model_kernel = KernelRIM(n_clusters=2, base_kernel="laplacian", max_iter=1000, reg=4/len(X), random_state=0) y_pred = model_kernel.fit_predict(X) print(f"ARI = {metrics.adjusted_rand_score(y, y_pred)}") .. rst-class:: sphx-glr-script-out .. code-block:: none ARI = 1.0 .. GENERATED FROM PYTHON SOURCE LINES 36-38 Show predictions on similar samples ------------------------------------ .. GENERATED FROM PYTHON SOURCE LINES 38-49 .. code-block:: Python # Create a novel set of samples and cluster them new_X, new_y = datasets.make_circles(n_samples=200, noise=noise, factor=factor, random_state=1) new_pred = model_kernel.predict(new_X) print(f"ARI = {metrics.adjusted_rand_score(new_y, new_pred)}") plt.scatter(X[:, 0], X[:, 1], c=y_pred, marker="+", label="Training samples") plt.scatter(new_X[:, 0], new_X[:, 1], c=new_pred, marker="o", label="Testing samples") plt.legend() plt.show() .. image-sg:: /auto_examples/images/sphx_glr_plot_kernel_rim_001.png :alt: plot kernel rim :srcset: /auto_examples/images/sphx_glr_plot_kernel_rim_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none ARI = 1.0 .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 1.959 seconds) .. _sphx_glr_download_auto_examples_plot_kernel_rim.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_kernel_rim.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_kernel_rim.py ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_