You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

539 lines
87 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"\n",
"seeds_df = pd.read_csv(\"https://raw.githubusercontent.com/vihar/unsupervised-learning-with-python/master/seeds-less-rows.csv\")"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"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>area</th>\n",
" <th>perimeter</th>\n",
" <th>compactness</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>asymmetry_coefficient</th>\n",
" <th>groove_length</th>\n",
" <th>grain_variety</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>14.88</td>\n",
" <td>14.57</td>\n",
" <td>0.8811</td>\n",
" <td>5.554</td>\n",
" <td>3.333</td>\n",
" <td>1.018</td>\n",
" <td>4.956</td>\n",
" <td>Kama wheat</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>14.69</td>\n",
" <td>14.49</td>\n",
" <td>0.8799</td>\n",
" <td>5.563</td>\n",
" <td>3.259</td>\n",
" <td>3.586</td>\n",
" <td>5.219</td>\n",
" <td>Kama wheat</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>14.03</td>\n",
" <td>14.16</td>\n",
" <td>0.8796</td>\n",
" <td>5.438</td>\n",
" <td>3.201</td>\n",
" <td>1.717</td>\n",
" <td>5.001</td>\n",
" <td>Kama wheat</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>13.99</td>\n",
" <td>13.83</td>\n",
" <td>0.9183</td>\n",
" <td>5.119</td>\n",
" <td>3.383</td>\n",
" <td>5.234</td>\n",
" <td>4.781</td>\n",
" <td>Kama wheat</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>14.11</td>\n",
" <td>14.26</td>\n",
" <td>0.8722</td>\n",
" <td>5.520</td>\n",
" <td>3.168</td>\n",
" <td>2.688</td>\n",
" <td>5.219</td>\n",
" <td>Kama wheat</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" area perimeter compactness length width asymmetry_coefficient \\\n",
"0 14.88 14.57 0.8811 5.554 3.333 1.018 \n",
"1 14.69 14.49 0.8799 5.563 3.259 3.586 \n",
"2 14.03 14.16 0.8796 5.438 3.201 1.717 \n",
"3 13.99 13.83 0.9183 5.119 3.383 5.234 \n",
"4 14.11 14.26 0.8722 5.520 3.168 2.688 \n",
"\n",
" groove_length grain_variety \n",
"0 4.956 Kama wheat \n",
"1 5.219 Kama wheat \n",
"2 5.001 Kama wheat \n",
"3 4.781 Kama wheat \n",
"4 5.219 Kama wheat "
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"seeds_df.head()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Rosa wheat 14\n",
"Kama wheat 14\n",
"Canadian wheat 14\n",
"Name: grain_variety, dtype: int64"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"seeds_df.grain_variety.value_counts() # grain_variety是标签分成了3个类别"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"varieties = list(seeds_df.pop('grain_variety')) # 先去掉它,不然就是有监督了\n",
"\n",
"samples = seeds_df.values"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[14.88 , 14.57 , 0.8811, 5.554 , 3.333 , 1.018 , 4.956 ],\n",
" [14.69 , 14.49 , 0.8799, 5.563 , 3.259 , 3.586 , 5.219 ],\n",
" [14.03 , 14.16 , 0.8796, 5.438 , 3.201 , 1.717 , 5.001 ],\n",
" [13.99 , 13.83 , 0.9183, 5.119 , 3.383 , 5.234 , 4.781 ],\n",
" [14.11 , 14.26 , 0.8722, 5.52 , 3.168 , 2.688 , 5.219 ],\n",
" [13.02 , 13.76 , 0.8641, 5.395 , 3.026 , 3.373 , 4.825 ],\n",
" [15.49 , 14.94 , 0.8724, 5.757 , 3.371 , 3.412 , 5.228 ],\n",
" [16.2 , 15.27 , 0.8734, 5.826 , 3.464 , 2.823 , 5.527 ],\n",
" [13.5 , 13.85 , 0.8852, 5.351 , 3.158 , 2.249 , 5.176 ],\n",
" [15.36 , 14.76 , 0.8861, 5.701 , 3.393 , 1.367 , 5.132 ],\n",
" [15.78 , 14.91 , 0.8923, 5.674 , 3.434 , 5.593 , 5.136 ],\n",
" [14.46 , 14.35 , 0.8818, 5.388 , 3.377 , 2.802 , 5.044 ],\n",
" [11.23 , 12.63 , 0.884 , 4.902 , 2.879 , 2.269 , 4.703 ],\n",
" [14.34 , 14.37 , 0.8726, 5.63 , 3.19 , 1.313 , 5.15 ],\n",
" [16.84 , 15.67 , 0.8623, 5.998 , 3.484 , 4.675 , 5.877 ],\n",
" [17.32 , 15.91 , 0.8599, 6.064 , 3.403 , 3.824 , 5.922 ],\n",
" [18.72 , 16.19 , 0.8977, 6.006 , 3.857 , 5.324 , 5.879 ],\n",
" [18.88 , 16.26 , 0.8969, 6.084 , 3.764 , 1.649 , 6.109 ],\n",
" [18.76 , 16.2 , 0.8984, 6.172 , 3.796 , 3.12 , 6.053 ],\n",
" [19.31 , 16.59 , 0.8815, 6.341 , 3.81 , 3.477 , 6.238 ],\n",
" [17.99 , 15.86 , 0.8992, 5.89 , 3.694 , 2.068 , 5.837 ],\n",
" [18.85 , 16.17 , 0.9056, 6.152 , 3.806 , 2.843 , 6.2 ],\n",
" [19.38 , 16.72 , 0.8716, 6.303 , 3.791 , 3.678 , 5.965 ],\n",
" [18.96 , 16.2 , 0.9077, 6.051 , 3.897 , 4.334 , 5.75 ],\n",
" [18.14 , 16.12 , 0.8772, 6.059 , 3.563 , 3.619 , 6.011 ],\n",
" [18.65 , 16.41 , 0.8698, 6.285 , 3.594 , 4.391 , 6.102 ],\n",
" [18.94 , 16.32 , 0.8942, 6.144 , 3.825 , 2.908 , 5.949 ],\n",
" [17.36 , 15.76 , 0.8785, 6.145 , 3.574 , 3.526 , 5.971 ],\n",
" [13.32 , 13.94 , 0.8613, 5.541 , 3.073 , 7.035 , 5.44 ],\n",
" [11.43 , 13.13 , 0.8335, 5.176 , 2.719 , 2.221 , 5.132 ],\n",
" [12.01 , 13.52 , 0.8249, 5.405 , 2.776 , 6.992 , 5.27 ],\n",
" [11.34 , 12.87 , 0.8596, 5.053 , 2.849 , 3.347 , 5.003 ],\n",
" [12.02 , 13.33 , 0.8503, 5.35 , 2.81 , 4.271 , 5.308 ],\n",
" [12.44 , 13.59 , 0.8462, 5.319 , 2.897 , 4.924 , 5.27 ],\n",
" [11.55 , 13.1 , 0.8455, 5.167 , 2.845 , 6.715 , 4.956 ],\n",
" [11.26 , 13.01 , 0.8355, 5.186 , 2.71 , 5.335 , 5.092 ],\n",
" [12.46 , 13.41 , 0.8706, 5.236 , 3.017 , 4.987 , 5.147 ],\n",
" [11.81 , 13.45 , 0.8198, 5.413 , 2.716 , 4.898 , 5.352 ],\n",
" [11.27 , 12.86 , 0.8563, 5.091 , 2.804 , 3.985 , 5.001 ],\n",
" [12.79 , 13.53 , 0.8786, 5.224 , 3.054 , 5.483 , 4.958 ],\n",
" [12.67 , 13.32 , 0.8977, 4.984 , 3.135 , 2.3 , 4.745 ],\n",
" [11.23 , 12.88 , 0.8511, 5.14 , 2.795 , 4.325 , 5.003 ]])"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"samples"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"# 距离计算\n",
"from scipy.cluster.hierarchy import linkage, dendrogram\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"# 层次聚类\n",
"mergings = linkage(samples, method='complete')"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 720x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# 树状图结果\n",
"fig = plt.figure(figsize=(10,6))\n",
"dendrogram(mergings,\n",
" labels=varieties, # 指定标签x轴\n",
" leaf_rotation=90,\n",
" leaf_font_size=6,\n",
" )\n",
"plt.show() # 从上往下看"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"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>varieties</th>\n",
" <th>Canadian wheat</th>\n",
" <th>Kama wheat</th>\n",
" <th>Rosa wheat</th>\n",
" </tr>\n",
" <tr>\n",
" <th>labels</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>14</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>14</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0</td>\n",
" <td>11</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"varieties Canadian wheat Kama wheat Rosa wheat\n",
"labels \n",
"1 14 3 0\n",
"2 0 0 14\n",
"3 0 11 0"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 得到标签结果\n",
"from scipy.cluster.hierarchy import fcluster\n",
"#指定结果、高度等指定在6那里可以看到上图是分成3类\n",
"labels = fcluster(mergings, 6, criterion='distance') \n",
"\n",
"df = pd.DataFrame({'labels':labels, 'varieties':varieties})\n",
"ct = pd.crosstab(df['labels'], df['varieties'])\n",
"ct # 可以看到只有label 1的结果里面多分了3个Kama wheat其它都能分的清"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 不同距离的选择产生不同的结果\n"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"\n",
"# 获取数据并补0\n",
"df = pd.read_csv('https://s3.amazonaws.com/assets.datacamp.com/production/course_2072/datasets/eurovision-2016.csv').fillna(0)\n",
"\n",
"# 打分满分12\n",
"scores = pd.crosstab(index=df['From country'], columns=df['To country'], values=df['Televote Points'], aggfunc='first').fillna(12)\n",
"samples = scores.values\n",
"country_names = list(scores.index)"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [],
"source": [
"# 归一化因为数据可能某些很大可以看到Points的值小\n",
"# 越大的值,在计算种贡献越多,算法会认为值越大,越重要\n",
"\n",
"from sklearn.preprocessing import normalize\n",
"samples = normalize(samples) # 数据压缩到0-1之间"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[0.09449112, 0.56694671, 0. , ..., 0. , 0.28347335,\n",
" 0. ],\n",
" [0.49319696, 0. , 0.16439899, ..., 0. , 0.41099747,\n",
" 0. ],\n",
" [0. , 0.49319696, 0.12329924, ..., 0. , 0.32879797,\n",
" 0.16439899],\n",
" ...,\n",
" [0.32879797, 0.20549873, 0.24659848, ..., 0.49319696, 0.28769823,\n",
" 0. ],\n",
" [0.28769823, 0.16439899, 0. , ..., 0. , 0.49319696,\n",
" 0. ],\n",
" [0. , 0.24659848, 0. , ..., 0. , 0.20549873,\n",
" 0.49319696]])"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"samples"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Perform the necessary imports\n",
"import matplotlib.pyplot as plt\n",
"from scipy.cluster.hierarchy import linkage, dendrogram\n",
"\n",
"# Calculate the linkage: mergings\n",
"mergings = linkage(samples, method='single') # 计算最小\n",
"fig = plt.figure(figsize=(8, 6))\n",
"# Plot the dendrogram\n",
"dendrogram(mergings,\n",
" labels=country_names,\n",
" leaf_rotation=90,\n",
" leaf_font_size=10,\n",
" )\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**选择另一种方法**"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Modified by Jinny: compare different methods\n",
"\n",
"# Calculate the linkage: mergings\n",
"mergings = linkage(samples, method='complete') # 计算最小\n",
"fig = plt.figure(figsize=(8, 6))\n",
"# Plot the dendrogram\n",
"dendrogram(mergings,\n",
" labels=country_names,\n",
" leaf_rotation=90,\n",
" leaf_font_size=10,\n",
" )\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}