{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from sklearn import datasets\n", "iris = datasets.load_iris()\n", "\n", "from sklearn.cluster import KMeans\n", "from sklearn import metrics" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n", " 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2\n", " 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\n", " 2 2]\n" ] } ], "source": [ "print(iris.target)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
KMeans(init='random', n_clusters=3, n_init=1)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "KMeans(init='random', n_clusters=3, n_init=1)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "kmeans = KMeans(n_clusters=3, init='random', n_init=1)\n", "kmeans.fit(iris.data)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[(np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(0)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(0)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1))]\n" ] } ], "source": [ "print(list(zip(iris.target,kmeans.labels_)))" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.7514854021988338\n", "0.7649861514489815\n", "0.7302382722834697\n", "0.5528190123564095\n" ] } ], "source": [ "print(metrics.homogeneity_score(iris.target, kmeans.labels_))\n", "print(metrics.completeness_score(iris.target, kmeans.labels_))\n", "print(metrics.adjusted_rand_score(iris.target, kmeans.labels_))\n", "print(metrics.silhouette_score(iris.data, kmeans.labels_))" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
KMeans(init='random', n_clusters=3, n_init=10)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "KMeans(init='random', n_clusters=3, n_init=10)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "kmeans_init = KMeans(n_clusters=3, init='random', n_init=10)\n", "kmeans_init.fit(iris.data)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[(np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(0)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(0)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1))]\n" ] } ], "source": [ "print(list(zip(iris.target,kmeans.labels_)))" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.7514854021988338\n", "0.7649861514489815\n", "0.7302382722834697\n", "0.5528190123564095\n" ] } ], "source": [ "print(metrics.homogeneity_score(iris.target, kmeans_init.labels_))\n", "print(metrics.completeness_score(iris.target, kmeans_init.labels_))\n", "print(metrics.adjusted_rand_score(iris.target, kmeans_init.labels_))\n", "print(metrics.silhouette_score(iris.data, kmeans_init.labels_))" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
KMeans(n_clusters=3)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "KMeans(n_clusters=3)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "kmeans2 = KMeans(n_clusters=3)\n", "kmeans2.fit(iris.data)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[(np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(0)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(0)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1))]\n" ] } ], "source": [ "print(list(zip(iris.target,kmeans.labels_)))" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.7364192881252849\n", "0.7474865805095324\n", "0.7163421126838476\n", "0.551191604619592\n" ] } ], "source": [ "print(metrics.homogeneity_score(iris.target, kmeans2.labels_))\n", "print(metrics.completeness_score(iris.target, kmeans2.labels_))\n", "print(metrics.adjusted_rand_score(iris.target, kmeans2.labels_))\n", "print(metrics.silhouette_score(iris.data, kmeans2.labels_))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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.13.12" } }, "nbformat": 4, "nbformat_minor": 4 }