.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "examples/MachineLearning/k_means.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_examples_MachineLearning_k_means.py: k_means ======= KMeans using scikit-learn according to https://www.youtube.com/watch?v=i-gxm_ofjBo. .. GENERATED FROM PYTHON SOURCE LINES 12-69 .. rst-class:: sphx-glr-horizontal * .. image-sg:: /examples/MachineLearning/images/sphx_glr_k_means_001.png :alt: data :srcset: /examples/MachineLearning/images/sphx_glr_k_means_001.png :class: sphx-glr-multi-img * .. image-sg:: /examples/MachineLearning/images/sphx_glr_k_means_002.png :alt: k means :srcset: /examples/MachineLearning/images/sphx_glr_k_means_002.png :class: sphx-glr-multi-img * .. image-sg:: /examples/MachineLearning/images/sphx_glr_k_means_003.png :alt: sse :srcset: /examples/MachineLearning/images/sphx_glr_k_means_003.png :class: sphx-glr-multi-img * .. image-sg:: /examples/MachineLearning/images/sphx_glr_k_means_004.png :alt: silhouette score :srcset: /examples/MachineLearning/images/sphx_glr_k_means_004.png :class: sphx-glr-multi-img .. code-block:: Python :lineno-start: 13 import matplotlib.pyplot as plt import numpy as np from EasyFEA import Display from sklearn.cluster import KMeans from sklearn.datasets import make_blobs from sklearn.metrics import silhouette_score if __name__ == "__main__": # https://www.youtube.com/watch?v=i-gxm_ofjBo Display.Clear() N = 1000 K = 5 data = make_blobs(N, 2, centers=5, cluster_std=1, random_state=101)[0] kmeans = KMeans(K, n_init="auto") clusters = kmeans.fit_predict(data) ax = Display.Init_Axes() ax.plot(*data.T, "bo") ax.set_title("data") ax_c = Display.Init_Axes() for k in range(K): idx = np.where(clusters == k) ax_c.plot(*data[idx].T, "o") ax_c.plot(*np.mean(data[idx], 0), ls="", marker="+", c="black", zorder=10) sil_score = [] sse = [] array_k = np.arange(2, 20) for k in array_k: kmeans = KMeans(k, n_init="auto") clusters = kmeans.fit_predict(data) sse.append(kmeans.inertia_) sil_score.append(silhouette_score(data, clusters)) a_sse = Display.Init_Axes() a_sse.plot(array_k, sse) a_sse.set_title("sse") a_sil = Display.Init_Axes() a_sil.plot(array_k, sil_score) a_sil.set_title("silhouette score") plt.show() .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 1.748 seconds) .. _sphx_glr_download_examples_MachineLearning_k_means.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: k_means.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: k_means.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: k_means.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_