{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "\n", "df = pd.read_csv(\"4-2_skill_level.csv\",index_col=0)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "from sklearn.cluster import KMeans\n", "vec = KMeans(n_clusters = 3)\n", "group_num = vec.fit_predict(df)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
コミュニケーションリーダーシッププログラミングネットワーク知識セキュリティ知識
グループ名
07.5000006.7500009.2500009.0000008.750000
14.0000003.2500005.5000005.3750005.375000
28.6666679.3333335.3333336.3333337.333333
\n", "
" ], "text/plain": [ " コミュニケーション リーダーシップ プログラミング ネットワーク知識 セキュリティ知識\n", "グループ名 \n", "0 7.500000 6.750000 9.250000 9.000000 8.750000\n", "1 4.000000 3.250000 5.500000 5.375000 5.375000\n", "2 8.666667 9.333333 5.333333 6.333333 7.333333" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_calc = df.copy()\n", "df_calc[\"グループ名\"] = group_num\n", "\n", "df_calc.groupby(\"グループ名\").mean()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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nTp1Up8+fVSrVi0lJiZq0aJFSktL09KlSy0R4D///LOSkpKUnZ2tYcOG6aGHHtKDDz5YpM2mTZv0yCOPqH379urdu7cCAwP10Ucfae3atRo3bpyGDRvmoerLdi5jW7dunR555BG1a9dO/fr1U2RkpPbv36/XX39doaGhWr58uWrWrOmhEZTuXMb2R1lZWerXr5/S09P166+/avfu3fL1rbrnFucyvtTUVA0ZMkROp1N9+/ZV06ZN9eOPP2revHmqVauW3n//fYWGhnpoBKU7l7FNmTJFb731lu68805dddVV8vPz0/fff68FCxaoYcOGWrJkiQICAjw0gtIdOnRIffv2Vc2aNTV06FA1btxYqampWrRokQ4ePKh33nlHLVu2tMZ7illNbdq0ybz00kvNbdu2Fdl+4sQJc+TIkebmzZs9VJl73HnnnWavXr1Mh8NRZHtqaqoZHx9vvvjiix6qrPyaN29uzpgxo8g2u91uXn/99ea9995r5ufnF253uVzmk08+abZu3do8ceJEZZd63koaW15entmxY0ezZ8+eZl5eXpF9n3zyidm8eXNz9erVlVlmuZQ0tj9yuVzm2LFjzS5duphz5841mzdvXuTvsqorbXzPPPOMef3115vHjx8vsv3bb78177nnHjMpKamySiy3ksaWk5NjXnrppebTTz9drP369evN5s2bm//5z38qq8TzMnLkSLNly5ZmcnJyke3p6enmpZdeak6ePNky7ynVds57wYIFuvHGG9WhQwdJkvnbBYhatWpp9uzZ6ty5syfLu2C5ubmqWbOmfHx8imwPCwuTr69v4Xit7tNPP9WRI0d03333FTlTMwxDQ4cOVW5urlavXu3BCssvPz9fl1xyif7+97/L39+/yL7w8HBJUnp6uidKc6uFCxfqo48+0vTp073m5zIzM1PLly8vMrVxZmyXXXaZ3nzzTTVo0MCTJZabw+FQfn6+IiIiiu07MxVQVf8eo6OjNWLECMXGxhbZHhISIj8/P6Wnp1vmPaXahve+ffvUtm1brV+/Xn369FGrVq101VVXaeTIkdq3b5+ny7tg/fv31/bt2zVr1iwdOXJEWVlZ2rt3rx555BGFhISoX79+ni7RLQ4fPixJatOmTbF9sbGxql27dmEbqwkJCdG8efN03XXXFdmekZGhGTNmyGaz6a9//atninOT7du3a+rU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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from sklearn.decomposition import TruncatedSVD\n", "\n", "model_svd = TruncatedSVD(n_components=2)\n", "vecs_list = model_svd.fit_transform(df)\n", "\n", "X = vecs_list[:,0]\n", "Y = vecs_list[:,1]\n", "\n", "sns.set(font=\"Hiragino Maru Gothic Pro\",context=\"talk\")\n", "plt.figure(figsize=(8, 8))\n", "\n", "color_codes = {0:\"red\",1:\"blue\",2:\"green\",3:\"yellow\"}\n", "colors = [color_codes[x] for x in group_num]\n", "plt.scatter(X,Y,color=colors)\n", "\n", "for i,(x_name,y_name) in enumerate(zip(X,Y)):\n", " plt.annotate(df.index[i],(x_name,y_name))\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "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.4" } }, "nbformat": 4, "nbformat_minor": 2 }