{ "cells": [ { "cell_type": "markdown", "id": "07463a5f", "metadata": {}, "source": [ "# サポートベクトルマシン\n", "\n", "サポートベクトルマシン全般については次を確認してください。\n", "[https://scikit-learn.org/stable/modules/svm.html](https://scikit-learn.org/stable/modules/svm.html)" ] }, { "cell_type": "markdown", "id": "22ae72e6", "metadata": {}, "source": [ "**データとモジュールのロード**" ] }, { "cell_type": "code", "execution_count": 1, "id": "4f42c570", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "from sklearn import model_selection\n", "\n", "data = pd.read_csv(\"input/pn_same_judge_preprocessed.csv\")\n", "train, test = model_selection.train_test_split(data, test_size=0.1, random_state=0)" ] }, { "cell_type": "code", "execution_count": 2, "id": "55fdf55a", "metadata": {}, "outputs": [], "source": [ "from sklearn.pipeline import Pipeline\n", "from sklearn.feature_extraction.text import TfidfVectorizer\n", "from sklearn.metrics import ConfusionMatrixDisplay\n", "from sklearn.metrics import PrecisionRecallDisplay" ] }, { "cell_type": "markdown", "id": "310d666d", "metadata": {}, "source": [ "## SVC" ] }, { "cell_type": "markdown", "id": "ea30df74", "metadata": {}, "source": [ "[sklearn.svm.LinearSVC](https://scikit-learn.org/stable/modules/generated/sklearn.svm.LinearSVC.html)\n", "を使います。" ] }, { "cell_type": "code", "execution_count": 3, "id": "79cc90a0", "metadata": {}, "outputs": [], "source": [ "from sklearn.svm import LinearSVC" ] }, { "cell_type": "code", "execution_count": 4, "id": "bb3dbb21", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Pipeline(steps=[('vect',\n",
       "                 TfidfVectorizer(tokenizer=<method 'split' of 'str' objects>)),\n",
       "                ('clf', LinearSVC())])
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": [ "Pipeline(steps=[('vect',\n", " TfidfVectorizer(tokenizer=)),\n", " ('clf', LinearSVC())])" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pipe = Pipeline([\n", " (\"vect\", TfidfVectorizer(tokenizer=str.split)),\n", " (\"clf\", LinearSVC())\n", "])\n", "\n", "pipe.fit(train[\"tokens\"], train[\"label_num\"])" ] }, { "cell_type": "code", "execution_count": 5, "id": "441429d6", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "pred = pipe.predict(test[\"tokens\"])\n", "ConfusionMatrixDisplay.from_predictions(y_true=test[\"label_num\"], y_pred=pred)" ] }, { "cell_type": "code", "execution_count": 6, "id": "dd63ab0c", "metadata": {}, "outputs": [], "source": [ "# SVC では predict_proba ではなく decision_function を使います\n", "score = pipe.decision_function(test[\"tokens\"])" ] }, { "cell_type": "code", "execution_count": 7, "id": "2b58a9c2", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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SNJkYDLAkCGVW8XHzKzYjhzeH4A7znv/67Hci9WUMhFkEhE3ADdImgj8M/C5DspMAaYANDU1udZgZjUjNwFUSikTwSpgcM72oHRfZ6YD/741N3r33XdpbW3lrbfe2prTrYfp27cvgwYNok+fPpUOxawulDIRLARGSGogSQBnAhNzC0gaERHPp5snAs+zFVpbW9lpp50YOnQokrYlZquwiGDt2rW0trbS0NBQ6XDM6kLJEkFEbJR0ITAH6AVMjYilkq4EmiNiFnChpGOBd4FX6aBZKIu33nrLSaBGSGKPPfZgzZo1lQ7FrG6UtI8gImYDs/P2XZrz+WvFupeTQO3wv6VZefnNYjOzOudEUCTf//732X///TnwwANpbGxkwYIFXHHFFXznO99pV27x4sV85CMfAeCNN97gi1/8IsOGDeOQQw5hzJgxLFiwYItrRwTHHHMM69e//9rFPffcgyT+/Oc/b963YsUK+vXrR2NjIyNHjuSCCy7gvffe26bnevvttxk/fjzDhw9n9OjRrFixosNyP/7xj9l///0ZNWoUEyZM2Nxxf9RRR9HY2EhjYyN77703n/rUpwC47777uPTSSzu8lpmVlxNBETz66KPcd999PPHEEyxZsoQHHniAwYMHM2HCBO666652ZadPn86ECRMAOO+889h99915/vnnWbRoEbfeeiuvvPLKFtefPXs2Bx10EDvvvPPmfdOmTePII49k2rRp7coOGzaMxYsXs2TJElpaWrjnnnu26dluueUWdtttN5YtW8bFF1/Mt7/97S3KrFq1iuuvv57m5maefvppNm3axPTp0wGYP38+ixcvZvHixRx++OGceuqpAJx44once++9bNiwYZviM7NtV/H3CIrtinuX0vLy+sIFu2Hk3jtz2cn7d3p89erV9O/fn+233x6A/v37bz622267sWDBAkaPTsYK33333cyZM4cXXniBBQsWcOedd7Lddkk+bmho6HCkzJ133snkyZM3b7/xxhv8/ve/Z+7cuZx88slcccUVW5zTu3dvjjjiCJYtW7Z1D52aOXMml19+OQCnn346F154IRGxRTv+xo0befPNN+nTpw8bNmxg7733bnd8/fr1PPTQQ9x6661A0g8wZswY7rvvPj7zmc9sU4xmtm1cIyiC4447jpUrV7Lffvvx5S9/mXnz5m0+NmHChM2/HT/22GPs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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "PrecisionRecallDisplay.from_predictions(\n", " y_true=test[\"label_num\"],\n", " y_pred=score,\n", " name=\"SVC\",\n", ")" ] }, { "cell_type": "markdown", "id": "8b54610a", "metadata": {}, "source": [ "## 不均衡データに対応する\n", "\n", "`class_weight` パラメータで不均衡データに対応できます。" ] }, { "cell_type": "code", "execution_count": 8, "id": "b0ed478e", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Pipeline(steps=[('vect',\n",
       "                 TfidfVectorizer(tokenizer=<method 'split' of 'str' objects>)),\n",
       "                ('clf', LinearSVC(class_weight='balanced'))])
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": [ "Pipeline(steps=[('vect',\n", " TfidfVectorizer(tokenizer=)),\n", " ('clf', LinearSVC(class_weight='balanced'))])" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pipe_weight = Pipeline([\n", " (\"vect\", TfidfVectorizer(tokenizer=str.split)),\n", " (\"clf\", LinearSVC(class_weight=\"balanced\"))\n", "])\n", "\n", "pipe_weight.fit(train[\"tokens\"], train[\"label_num\"])" ] }, { "cell_type": "code", "execution_count": 9, "id": "0a600cfd", "metadata": {}, "outputs": [], "source": [ "score_weight = pipe_weight.decision_function(test[\"tokens\"])" ] }, { "cell_type": "markdown", "id": "1d160f50", "metadata": {}, "source": [ "class_weightオプションを付けないモデルと比較します。" ] }, { "cell_type": "code", "execution_count": 10, "id": "9935b0d8", "metadata": {}, "outputs": [ { "data": { "image/png": "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6VLmz5/PhAkT+Oyzzyq9//Tp0znkkEPYe++dD3JPnDiRo48+mokTJ1Yo27VrV4qLi1m4cCFLlizh6aefrtW9PfDAA+y7774sW7aMa6+9ll/+8peVyqxevZo///nPFBUVsXjxYnbs2MGkSZMAmD17NsXFxRQXF9O/f3/OOeccAE4//XSeeeYZNm/eXKv4RKT28qaPoMzoZ0pY8snG9AVroGfbvbn5zF5VHl+zZg2tW7dm9913B6B16/L1dth3332ZO3cu/fr1A+Dxxx/nhRde4MMPP2Tu3Lk8+uij7LZbkI87d+6cckTJo48+ysiRI8u3N23axOuvv87MmTM588wzGT16dKVzGjduzFFHHcWyZct27aZDU6dO5ZZbbgFg8ODBXHnllbh7pfbu7du3s2XLFpo0acLmzZtp27ZtheMbN27klVdeYcKECUDQXj5gwACeffZZfvSjH9UqRhGpHdUI6sApp5zCqlWrOOigg/jpT3/Kq6++Wn5s6NCh5d+O58yZw3777Uf37t0pKSmhb9++NGqUfhaPN954g8MPP7x8e+rUqQwcOJCDDjqIVq1aMX/+/ErnbN68mRkzZtCnT59KxxKbaxJ/Xn755UplV69eTYcOwYqjjRs3pmXLlqxbt65CmXbt2vHzn/+cjh07csABB9CyZUtOOeWUCmWefvppTjzxxAq1msLCQmbPnp32/kUkXnlXI6jum3tc9tprL+bPn8/s2bOZOXMmQ4YMYezYsQwbNowhQ4Zw1FFHceedd1ZoFqqJ9evX06JFi/LtiRMncs011wBw/vnnM3HixPJE8eGHH9K3b1/MjEGDBvGDH/yg0vvV9Yfv559/ztSpU/noo4/YZ599OO+883jkkUe48MILK8R82WWXVThv//3355NPPqnTWESk5mJNBGY2EPgTwVKV97v72KTjlwM/A3YAm4CR7r4kzpji0qhRIwYMGMCAAQPo06cPDz30EMOGDaNDhw507tyZV199lSeffJK33grmIO/VqxcLFixgx44daWsFjRs35ttvv2W33XZj/fr1vPLKKyxatAgzY8eOHZgZt99+O7Czj6A6xxxzDF9++WWl/XfccQcnnXRShX3t2rVj1apVtG/fnu3bt7NhwwZatWpVoczLL79M586dadOmDQDnnHMOb775Znki+Oyzz3j77bd56qmnKpz39ddf07x582pjFZH4xZYIzKwRcDdwMlAKzDOzaUkf9I+5+71h+bOAu4CBccUUl/fff5/ddtuN7t27A8HIoAMPPLD8+NChQ7n22mvp0qUL7du3B4IP7MLCQm6++WZuvfVWzIwVK1ZQUlLC6adXfJjku9/9LsuXL6dbt25MmTKFiy66iPvuu6/8+HHHHcfs2bPp2LEjUdSkRnDWWWfx0EMP0b9/f6ZMmcIJJ5xQqX+gY8eOzJkzh82bN9O8eXNmzJhBYWFh+fEpU6Zwxhln0KxZswrnffDBB/Tu3TtyLCL5aO5H6wHKF6qBzC9WE2cfwRHAMndf7u5bgUnAoMQC7p7Yq7sn4DHGE5tNmzZxySWX0LNnTwoKCliyZEl5ByvAeeedR0lJSaVmofvvv5///Oc/dOvWjd69ezNs2DD233//Su9/+umnM2vWLCBoYjn77LMrHD/33HMrjR6qK5deeinr1q2jW7du3HXXXYwdG1TqPvnkE0477TQA+vXrx+DBgznssMPo06cP3377bYXO7aqaxGbOnFkp6YnIzsVqMsXc4/nsNbPBwEB3vyzcvgjo5+5XJpX7GXAd0BQ4wd2XpnivkcBIgI4dOx7+8ccfVzj+3nvvlY/Nz0dr1qzh4osv5qWXXsp2KHXmP//5DxdccAEzZszIdigZle//VqXmLrw/eHbokcv6le8r+e3RAPS68fU6u46ZzXf3wlTHsj5qyN3vdveuwC+BX1dRZpy7F7p7YVk7dENywAEHMGLEiAoPlOW6lStXcuedd2Y7DJGse+SyfhWSQDbE2Vm8GuiQsN0+3FeVScA9McaT0/JtrP33vve9bIcgIqE4awTzgO5m1tnMmgLnA9MSC5hZ94TN04FKzUIiIhKv2GoE7r7dzK4EXiAYPjre3UvMbAxQ5O7TgCvN7CRgG/A5cElc8YiISGqxPkfg7tOB6Un7RiW8vibO64uISHpZ7ywWEZHsUiKoI3FOQ53KgAEDKCoqihzfrFmzOOOMM6LfUB2qLtbBgwezfPny8u3i4mLMjOeff75CuUaNGtG3b1969+7NeeedV+tZS92dq6++mm7dulFQUMA777yTstzEiRPp06cPBQUFDBw4sHx22AULFtC/f3/69OnDmWeeWT6ia9GiRQwbNqxWsYlkmhJBHYhzGupZs2bl7QdLSUkJO3bsoEuXLuX7qppeu3nz5hQXF7N48WKaNm3KvffeW6trP/fccyxdupSlS5cybtw4rrjiikpltm/fzjXXXMPMmTNZuHAhBQUF/OUvfwGCv7uxY8eyaNEizj777PIpPvr06UNpaSkrV66sVXwimZR3k87x3K92LvxcV/5PH/jB2CoPxz0NdVX+/ve/c9lll7F9+3bGjx/PEUccwdtvv80111xTPo/PhAkT+O53v1vhvKrKPPjgg0ybNo3Nmzfz4YcfcvbZZ/OHP/wBgOeff54bb7yRHTt20Lp1a2bMmMFXX33FVVddxeLFi9m2bRu33HILgwYNYsuWLQwfPpwFCxbQo0cPtmzZkjL+Rx99lEGDdj5s7u488cQTvPTSSxxzzDF8/fXXlaalgGCupIULF0b+c0pl6tSpXHzxxZgZRx55JF988QVr1qzhgAMOqBCPu/PVV1/RqlUrNm7cSLdu3YBgeoxjjz0WgJNPPplTTz2VW2+9FYAzzzyTSZMmcf3119cqRpFMUY2gDsQ9DXVVNm/eTHFxMX/961/58Y9/DECPHj2YPXs27777LmPGjOHGG2+sdF51ZYqLi5k8eTKLFi1i8uTJrFq1irVr1zJixAiefPJJFixYwBNPPAEEzWEnnHACb7/9NjNnzuQXv/gFX331Fffccw977LEH7733HqNHj045TTZUnl77zTffpHPnznTt2pUBAwbwz3/+s9I527dv57nnnks5vfaQIUNSTq/98MMPVyqbOL02QPv27Vm9uuJjLk2aNOGee+6hT58+tG3bliVLlnDppZcCwaSBU6dOBeCJJ55g1apV5edpem3JNflXI6jmm3tc4piGul+/fnzzzTds2rSJ9evX07dvXwB+//vfc+qppwKUv9exxx7Lxo0b+eKLL/jyyy+55JJLWLp0KWbGtm3bKr33hg0bqixz4okn0rJlSwB69uzJxx9/zOeff86xxx5bXlvZb7/9AHjxxReZNm0ad9xxBxDMJrpy5Upee+01rr76agAKCgooKChIeY9r1qwh8UnxiRMncv755wPB9NoPP/ww5557LgBbtmwp/zM45phjyj+QEyU3w9XWtm3buOeee3j33Xfp0qULV111Fb/73e/49a9/zfjx47n66qu59dZbOeuss2jatGn5eZpeW2qr19awVWNC0lxcaVondlX+JYIsqetpqMs6jWfNmsWDDz7Igw8+WKlM8iygZsZNN93E8ccfz1NPPcWKFSsY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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "_, ax = plt.subplots()\n", "for name, pred in [\n", " (\"SVC\", score),\n", " (\"SVC+balanced\", score_weight),\n", "]:\n", " PrecisionRecallDisplay.from_predictions(ax=ax, y_true=test[\"label_num\"], y_pred=pred, name=name)" ] } ], "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.8.6" } }, "nbformat": 4, "nbformat_minor": 5 }