Skip to content

Instantly share code, notes, and snippets.

@QuantumDamage
Last active January 26, 2019 18:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save QuantumDamage/c25d0683b1af98cb201ae478f604cc1e to your computer and use it in GitHub Desktop.
Save QuantumDamage/c25d0683b1af98cb201ae478f604cc1e to your computer and use it in GitHub Desktop.
Silhouette Coefficient - czy dobrze pogrupowałem obserwacje?
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {
"scrolled": true,
"trusted": true
},
"cell_type": "code",
"source": "import pandas as pd\n\nznaczki = pd.read_excel(\"../input/wykaz-zt-polski.xls\", skiprows = 4)\n\nznaczki.rename(columns={\"GPS\":\"lat\", \"Unnamed: 5\":\"lon\"}, inplace=True)\n\nznaczki[\"lat\"] = znaczki[\"lat\"].astype(float)\nznaczki[\"lon\"] = znaczki[\"lon\"].astype(float)",
"execution_count": 1,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "from sklearn.cluster import KMeans\n\nn_clusters = 12\n\nkmeans = KMeans(n_clusters = n_clusters, random_state = 42)\n\ncoordinates = znaczki[[\"lat\", \"lon\"]]\n\nkmeans.fit(coordinates)\n\nznaczki[\"grupa\"] = kmeans.labels_\n\nznaczki.head()",
"execution_count": 2,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 2,
"data": {
"text/plain": " LP. Numer znaczka Nazwa znaczka \\\n0 1 No. 001 Rysy – najwyższy szczyt polskich Tatr \n1 2 No. 002 Schronisko \"Murowaniec\" na Hali Gąsienicowej \n2 3 No. 003 Babia Góra – najwyższy szczyt Beskidu Żywieckiego \n3 4 No. 004 Schronisko Morskie Oko \n4 5 No. 005 Schronisko Głodówka \n\n Województwo lat lon grupa \n0 małopolskie 49.179628 20.087987 1 \n1 małopolskie 49.244167 20.007222 1 \n2 małopolskie 49.573055 19.529444 4 \n3 małopolskie 49.201378 20.071276 1 \n4 małopolskie 49.302124 20.116664 1 ",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>LP.</th>\n <th>Numer znaczka</th>\n <th>Nazwa znaczka</th>\n <th>Województwo</th>\n <th>lat</th>\n <th>lon</th>\n <th>grupa</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>1</td>\n <td>No. 001</td>\n <td>Rysy – najwyższy szczyt polskich Tatr</td>\n <td>małopolskie</td>\n <td>49.179628</td>\n <td>20.087987</td>\n <td>1</td>\n </tr>\n <tr>\n <th>1</th>\n <td>2</td>\n <td>No. 002</td>\n <td>Schronisko \"Murowaniec\" na Hali Gąsienicowej</td>\n <td>małopolskie</td>\n <td>49.244167</td>\n <td>20.007222</td>\n <td>1</td>\n </tr>\n <tr>\n <th>2</th>\n <td>3</td>\n <td>No. 003</td>\n <td>Babia Góra – najwyższy szczyt Beskidu Żywieckiego</td>\n <td>małopolskie</td>\n <td>49.573055</td>\n <td>19.529444</td>\n <td>4</td>\n </tr>\n <tr>\n <th>3</th>\n <td>4</td>\n <td>No. 004</td>\n <td>Schronisko Morskie Oko</td>\n <td>małopolskie</td>\n <td>49.201378</td>\n <td>20.071276</td>\n <td>1</td>\n </tr>\n <tr>\n <th>4</th>\n <td>5</td>\n <td>No. 005</td>\n <td>Schronisko Głodówka</td>\n <td>małopolskie</td>\n <td>49.302124</td>\n <td>20.116664</td>\n <td>1</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# kod 1\nfrom sklearn.metrics import silhouette_score\nsilhouette_score(X = coordinates, labels = znaczki[\"grupa\"])",
"execution_count": 13,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 13,
"data": {
"text/plain": "0.450639136417191"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# kod 2 \nsilhouette_averages = []\nfor ilosc_grup in range(2,len(znaczki)):\n n_clusters = ilosc_grup\n kmeans = KMeans(n_clusters = n_clusters, \n random_state = 42)\n kmeans.fit(coordinates)\n znaczki[\"grupa\"] = kmeans.labels_\n sil_sco = silhouette_score(X = coordinates, \n labels = znaczki[\"grupa\"])\n silhouette_averages.append(sil_sco)\n if ilosc_grup % 10 == 0:\n print(ilosc_grup,sil_sco)",
"execution_count": 50,
"outputs": [
{
"output_type": "stream",
"text": "10 0.4414132828753228\n20 0.44058327835141947\n30 0.4538771864033944\n40 0.47266042687421567\n50 0.48266687262597\n60 0.4993816232672794\n70 0.5044715377903637\n80 0.5077644072529796\n90 0.5158986440745873\n100 0.5297141020047416\n110 0.5277911607622169\n120 0.5454616249331111\n130 0.539129063779735\n140 0.5536761609291103\n150 0.5580628610213431\n160 0.5645657410311796\n170 0.5701974656932992\n180 0.5783162478358502\n190 0.5709873719579736\n200 0.5723340580127944\n210 0.5766784328328961\n220 0.5881459330910309\n230 0.588837942380066\n240 0.5931334811769141\n250 0.5893427059136105\n260 0.6036059401757289\n270 0.6092348723358586\n280 0.6026894911310365\n290 0.6037853342406011\n300 0.6009959823794525\n310 0.6009650894849635\n320 0.6012345395044343\n330 0.5988163799662259\n340 0.5868131570508178\n350 0.5866953958788685\n360 0.5867281618603429\n370 0.5822697667110571\n380 0.5641549249693714\n390 0.5620795793047825\n400 0.5609647765412068\n410 0.5608638526819211\n420 0.5542612675262899\n430 0.5411053873626841\n440 0.5343564438353051\n450 0.5303899402437036\n460 0.5204653891791396\n470 0.5056420751205427\n480 0.4909855319320274\n490 0.4770085241649209\n500 0.46007987045913934\n510 0.44916528309074744\n520 0.4358432673463338\n530 0.4152421037169779\n540 0.4001538236102473\n550 0.38452943342565277\n560 0.35991073669130375\n570 0.3451362652901065\n580 0.3280827062777076\n590 0.30820250629854945\n600 0.2911908081623258\n610 0.27462817041815657\n620 0.2506229676946552\n630 0.22270819074984513\n640 0.2081454624564019\n650 0.18855651774295545\n660 0.1687476603764477\n670 0.14983495012192982\n680 0.13617200110919506\n690 0.12143601425977638\n700 0.10196364174718407\n710 0.0852391034384813\n720 0.06595986704659981\n730 0.0435861415409139\n740 0.02090973189214212\n",
"name": "stdout"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "import pylab",
"execution_count": 51,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "pylab.plot(range(2,len(silhouette_averages)+2),silhouette_averages, )",
"execution_count": 52,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 52,
"data": {
"text/plain": "[<matplotlib.lines.Line2D at 0x7f35e748d438>]"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 432x288 with 1 Axes>",
"image/png": "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\n"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "import operator\nmin_index, min_value = min(enumerate(silhouette_averages), key=operator.itemgetter(1))\nmax_index, max_value = max(enumerate(silhouette_averages), key=operator.itemgetter(1))\nprint(min_index+2, min_value)\nprint(max_index+2, max_value)",
"execution_count": 53,
"outputs": [
{
"output_type": "stream",
"text": "746 0.0053475935828877\n266 0.6116557772535383\n",
"name": "stdout"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "len(znaczki)",
"execution_count": 54,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 54,
"data": {
"text/plain": "748"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"_draft": {
"nbviewer_url": "https://gist.github.com/c25d0683b1af98cb201ae478f604cc1e"
},
"gist": {
"id": "c25d0683b1af98cb201ae478f604cc1e",
"data": {
"description": "Silhouette Coefficient - czy dobrze pogrupowałem obserwacje?",
"public": true
}
},
"kernelspec": {
"name": "conda-env-jakbadacdane.pl-py",
"display_name": "Python [conda env:jakbadacdane.pl]",
"language": "python"
},
"language_info": {
"name": "python",
"version": "3.6.7",
"mimetype": "text/x-python",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"pygments_lexer": "ipython3",
"nbconvert_exporter": "python",
"file_extension": ".py"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment