{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "name": "02_machine_learning_enshu02.ipynb", "provenance": [], "collapsed_sections": [], "include_colab_link": true }, "kernelspec": { "name": "python3", "display_name": "Python 3" } }, "cells": [ { "cell_type": "markdown", "metadata": { "id": "view-in-github", "colab_type": "text" }, "source": [ "<a href=\"https://colab.research.google.com/github/rkti498/e_shikaku/blob/main/02_machine_learning_enshu02.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>" ] }, { "cell_type": "markdown", "metadata": { "id": "qvBSQgmhJxNc" }, "source": [ "## 機械学習 演習 つづき\n", "\n", "### 後半 主成分分析、サポートベクターマシン" ] }, { "cell_type": "markdown", "metadata": { "id": "7L-SYR9eJ4Cj" }, "source": [ "#### 主成分分析\n", "\n" ] }, { "cell_type": "code", "metadata": { "id": "VwoxZLNsp0od" }, "source": [ "from sklearn.datasets import load_boston\n", "from sklearn.linear_model import LinearRegression\n", "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import re\n", "import requests\n", "from pprint import pprint\n", "import lightgbm" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "9QQsxjmhqAAy", "outputId": "547d9661-8043-4085-8d57-b25f3cdf1fa4" }, "source": [ "print(np.__version__)\n", "print(pd.__version__)" ], "execution_count": null, "outputs": [ { "output_type": "stream", "text": [ "1.19.5\n", "1.1.5\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 353 }, "id": "RDsuN8oHJ3y1", "outputId": "19fde58f-eaab-4320-fca7-e052f077261e" }, "source": [ "x_1 = [np.random.rand() + 2 for x in range(30)]\n", "x_2 = [np.random.rand() + 3 for x in range(30)]\n", "x_1_mean = np.array(x_1).mean()\n", "print(\"x_1_mean: \", x_1_mean)\n", "x_2_mean = np.array(x_2).mean()\n", "print(\"x_2_mean: \", x_2_mean)\n", "x_3 = x_1 - x_1_mean\n", "x_4 = x_2 - x_2_mean\n", "x_1.extend(x_3.tolist())\n", "x_2.extend(x_4.tolist())\n", "print(x_1)\n", "plt.scatter(x_1, x_2)" ], "execution_count": null, "outputs": [ { "output_type": "stream", "text": [ "x_1_mean: 2.4788976136540706\n", "x_2_mean: 3.575013308992982\n", "[2.739137061993336, 2.297726638350044, 2.0465701504695466, 2.5123187144322308, 2.0142383981079313, 2.0999984969854766, 2.3025907206822316, 2.1269114517080814, 2.9578184107081, 2.637733881417911, 2.0509559274116818, 2.9246823363324674, 2.0648582859454243, 2.707127302741993, 2.211676899817596, 2.6667216111796037, 2.9605484280248695, 2.443463223026553, 2.8583839139399596, 2.668642439399084, 2.928738778262046, 2.433515229091165, 2.1667413669575817, 2.450858534195633, 2.9219576323221776, 2.839891632521834, 2.023154121011913, 2.7020891166705274, 2.0630896902065943, 2.5447880157085403, 0.2602394483392656, -0.1811709753040267, -0.432327463184524, 0.033421100778160184, -0.4646592155461393, -0.378899116668594, -0.176306892971839, -0.3519861619459892, 0.47892079705402946, 0.1588362677638404, -0.4279416862423888, 0.44578472267839686, -0.41403932770864627, 0.22822968908792252, -0.2672207138364744, 0.18782399752553314, 0.48165081437079893, -0.03543439062751741, 0.37948630028588903, 0.1897448257450134, 0.4498411646079754, -0.04538238456290555, -0.3121562466964889, -0.028039079458437755, 0.44306001866810707, 0.3609940188677636, -0.45574349264215774, 0.22319150301645685, -0.4158079234474763, 0.06589040205446972]\n" ], "name": "stdout" }, { "output_type": "execute_result", "data": { "text/plain": [ "<matplotlib.collections.PathCollection at 0x7efdab3e8750>" ] }, "metadata": { "tags": [] }, "execution_count": 40 }, { "output_type": "display_data", "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "tags": [], "needs_background": "light" } } ] }, { "cell_type": "code", "metadata": { "id": "p3vuROMX0gfg" }, "source": [ "" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "GQw0X_tu0nj9" }, "source": [ "" ], "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "1ECzk9wy0li2" }, "source": [ "# サポートベクターマシン\n", "\n", "####非線形分類" ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "sBWBFanj06h5", "outputId": "fce8c13e-af91-4062-bf28-8e8f84967b0c" }, "source": [ "!pip install mglearn" ], "execution_count": 2, "outputs": [ { "output_type": "stream", "text": [ "Collecting mglearn\n", "\u001b[?25l Downloading https://files.pythonhosted.org/packages/65/38/8aced26fce0b2ae82c3c87cd3b6105f38ca6d9d51704ecc44aa54473e6b9/mglearn-0.1.9.tar.gz (540kB)\n", "\r\u001b[K |▋ | 10kB 12.6MB/s eta 0:00:01\r\u001b[K |█▏ | 20kB 12.5MB/s eta 0:00:01\r\u001b[K |█▉ | 30kB 8.9MB/s eta 0:00:01\r\u001b[K |██▍ | 40kB 7.5MB/s eta 0:00:01\r\u001b[K |███ | 51kB 4.2MB/s eta 0:00:01\r\u001b[K |███▋ | 61kB 4.8MB/s eta 0:00:01\r\u001b[K |████▎ | 71kB 4.9MB/s eta 0:00:01\r\u001b[K |████▉ | 81kB 5.3MB/s eta 0:00:01\r\u001b[K |█████▌ | 92kB 5.6MB/s eta 0:00:01\r\u001b[K |██████ | 102kB 5.7MB/s eta 0:00:01\r\u001b[K |██████▊ | 112kB 5.7MB/s eta 0:00:01\r\u001b[K |███████▎ | 122kB 5.7MB/s eta 0:00:01\r\u001b[K |███████▉ | 133kB 5.7MB/s eta 0:00:01\r\u001b[K |████████▌ | 143kB 5.7MB/s eta 0:00:01\r\u001b[K |█████████ | 153kB 5.7MB/s eta 0:00:01\r\u001b[K |█████████▊ | 163kB 5.7MB/s eta 0:00:01\r\u001b[K |██████████▎ | 174kB 5.7MB/s eta 0:00:01\r\u001b[K |███████████ | 184kB 5.7MB/s eta 0:00:01\r\u001b[K |███████████▌ | 194kB 5.7MB/s eta 0:00:01\r\u001b[K |████████████▏ | 204kB 5.7MB/s eta 0:00:01\r\u001b[K |████████████▊ | 215kB 5.7MB/s eta 0:00:01\r\u001b[K |█████████████▍ | 225kB 5.7MB/s eta 0:00:01\r\u001b[K |██████████████ | 235kB 5.7MB/s eta 0:00:01\r\u001b[K |██████████████▋ | 245kB 5.7MB/s eta 0:00:01\r\u001b[K |███████████████▏ | 256kB 5.7MB/s eta 0:00:01\r\u001b[K |███████████████▊ | 266kB 5.7MB/s eta 0:00:01\r\u001b[K |████████████████▍ | 276kB 5.7MB/s eta 0:00:01\r\u001b[K |█████████████████ | 286kB 5.7MB/s eta 0:00:01\r\u001b[K |█████████████████▋ | 296kB 5.7MB/s eta 0:00:01\r\u001b[K |██████████████████▏ | 307kB 5.7MB/s eta 0:00:01\r\u001b[K |██████████████████▉ | 317kB 5.7MB/s eta 0:00:01\r\u001b[K |███████████████████▍ | 327kB 5.7MB/s eta 0:00:01\r\u001b[K |████████████████████ | 337kB 5.7MB/s eta 0:00:01\r\u001b[K |████████████████████▋ | 348kB 5.7MB/s eta 0:00:01\r\u001b[K |█████████████████████▎ | 358kB 5.7MB/s eta 0:00:01\r\u001b[K |█████████████████████▉ | 368kB 5.7MB/s eta 0:00:01\r\u001b[K |██████████████████████▌ | 378kB 5.7MB/s eta 0:00:01\r\u001b[K |███████████████████████ | 389kB 5.7MB/s eta 0:00:01\r\u001b[K |███████████████████████▋ | 399kB 5.7MB/s eta 0:00:01\r\u001b[K |████████████████████████▎ | 409kB 5.7MB/s eta 0:00:01\r\u001b[K |████████████████████████▉ | 419kB 5.7MB/s eta 0:00:01\r\u001b[K |█████████████████████████▌ | 430kB 5.7MB/s eta 0:00:01\r\u001b[K |██████████████████████████ | 440kB 5.7MB/s eta 0:00:01\r\u001b[K |██████████████████████████▊ | 450kB 5.7MB/s eta 0:00:01\r\u001b[K |███████████████████████████▎ | 460kB 5.7MB/s eta 0:00:01\r\u001b[K |████████████████████████████ | 471kB 5.7MB/s eta 0:00:01\r\u001b[K |████████████████████████████▌ | 481kB 5.7MB/s eta 0:00:01\r\u001b[K |█████████████████████████████▏ | 491kB 5.7MB/s eta 0:00:01\r\u001b[K |█████████████████████████████▊ | 501kB 5.7MB/s eta 0:00:01\r\u001b[K |██████████████████████████████▍ | 512kB 5.7MB/s eta 0:00:01\r\u001b[K |███████████████████████████████ | 522kB 5.7MB/s eta 0:00:01\r\u001b[K |███████████████████████████████▌| 532kB 5.7MB/s eta 0:00:01\r\u001b[K |████████████████████████████████| 542kB 5.7MB/s \n", "\u001b[?25hRequirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from mglearn) (1.19.5)\n", "Requirement already satisfied: matplotlib in /usr/local/lib/python3.7/dist-packages (from mglearn) (3.2.2)\n", "Requirement already satisfied: scikit-learn in /usr/local/lib/python3.7/dist-packages (from mglearn) (0.22.2.post1)\n", "Requirement already satisfied: pandas in /usr/local/lib/python3.7/dist-packages (from mglearn) (1.1.5)\n", "Requirement already satisfied: pillow in /usr/local/lib/python3.7/dist-packages (from mglearn) (7.1.2)\n", "Requirement already satisfied: cycler in /usr/local/lib/python3.7/dist-packages (from mglearn) (0.10.0)\n", "Requirement already satisfied: imageio in /usr/local/lib/python3.7/dist-packages (from mglearn) (2.4.1)\n", "Requirement already satisfied: joblib in /usr/local/lib/python3.7/dist-packages (from mglearn) (1.0.1)\n", "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mglearn) (1.3.1)\n", "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mglearn) (2.8.1)\n", "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mglearn) (2.4.7)\n", "Requirement already satisfied: scipy>=0.17.0 in /usr/local/lib/python3.7/dist-packages (from scikit-learn->mglearn) (1.4.1)\n", "Requirement already satisfied: pytz>=2017.2 in /usr/local/lib/python3.7/dist-packages (from pandas->mglearn) (2018.9)\n", "Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from cycler->mglearn) (1.15.0)\n", "Building wheels for collected packages: mglearn\n", " Building wheel for mglearn (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for mglearn: filename=mglearn-0.1.9-py2.py3-none-any.whl size=582638 sha256=4ce4abb8ea8b78cfa0eef820d1d4fced83dae298521ffa0df25d8f3f9d16a433\n", " Stored in directory: /root/.cache/pip/wheels/eb/a6/ea/a6a3716233fa62fc561259b5cb1e28f79e9ff3592c0adac5f0\n", "Successfully built mglearn\n", "Installing collected packages: mglearn\n", "Successfully installed mglearn-0.1.9\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "id": "QKth9UMg0oNu" }, "source": [ "import mglearn\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from sklearn.datasets import make_moons\n", "\n" ], "execution_count": 3, "outputs": [] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "VeU5FRoV1Irw", "outputId": "1ffe15a6-077d-46d0-bc70-52c2b866ac9a" }, "source": [ "moons = make_moons(n_samples=200, noise=0.1, random_state=0)\n", "moons" ], "execution_count": 4, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "(array([[ 7.92357355e-01, 5.02648573e-01],\n", " [ 1.63158315e+00, -4.63896705e-01],\n", " [-6.71092674e-02, 2.67767057e-01],\n", " [-1.04412427e+00, -1.82607610e-01],\n", " [ 1.76704822e+00, -1.98609868e-01],\n", " [ 1.90607398e+00, -7.10915927e-02],\n", " [ 9.62192129e-01, 2.61986075e-01],\n", " [ 8.86813848e-01, -4.84896235e-01],\n", " [ 8.68935196e-01, 3.61092776e-01],\n", " [ 1.15352953e+00, -5.72352929e-01],\n", " [-3.70714493e-01, 7.21655833e-01],\n", " [ 1.95523229e-01, -2.64439358e-01],\n", " [ 1.80949658e+00, -1.94707885e-01],\n", " [ 1.29046617e+00, -3.23893778e-01],\n", " [-8.23662620e-01, 7.17643700e-01],\n", " [ 9.85881879e-01, 1.96706218e-01],\n", " [ 5.81943503e-01, 9.06311048e-01],\n", " [ 2.76118902e-01, -2.87451069e-01],\n", " [ 3.17284813e-01, 8.54200996e-01],\n", " [-8.52697952e-01, 9.32383274e-01],\n", " [ 1.97796688e+00, 1.04796611e-02],\n", " [ 8.64249290e-01, -4.63242870e-01],\n", " [ 2.57499053e-01, 1.00362573e+00],\n", " [ 1.28213982e+00, -2.86519496e-01],\n", " [-2.29884751e-01, 1.10576822e+00],\n", " [ 2.29022777e-01, 1.42127683e-02],\n", " [ 1.89450511e+00, -1.02565542e-01],\n", " [ 1.86521084e+00, 1.96753138e-02],\n", " [ 9.76884442e-02, -2.94749068e-02],\n", " [ 1.03579202e-01, 8.07972963e-01],\n", " [ 9.07891105e-01, 5.59120905e-01],\n", " [-2.82483560e-01, 6.97029880e-01],\n", " [ 9.49718195e-01, -4.29281289e-01],\n", " [ 2.44475950e-02, 2.31178102e-01],\n", " [ 7.62407790e-01, 7.01679032e-01],\n", " [ 1.87210764e+00, 2.35600223e-01],\n", " [ 4.77778324e-01, -1.64382571e-01],\n", " [ 9.31783953e-01, 7.18760735e-02],\n", " [-8.12884298e-01, 5.62089952e-01],\n", " [-1.00520615e-01, 4.03688699e-01],\n", " [ 5.82424127e-01, -4.68412597e-01],\n", " [-3.77657209e-01, 8.52782368e-01],\n", " [ 6.28019791e-01, 6.90115928e-01],\n", " [ 1.21605162e-01, 3.53588146e-02],\n", " [ 1.54344475e+00, -3.47674056e-01],\n", " [-3.30952410e-01, 1.00049623e+00],\n", " [ 1.06619086e+00, 1.33052899e-01],\n", " [-7.14739658e-01, 6.19454519e-01],\n", " [ 1.63968968e-01, -1.74798733e-01],\n", " [ 9.33487565e-01, -4.40111162e-01],\n", " [-7.63797985e-01, 8.26528213e-01],\n", " [ 3.79557530e-01, -2.02301374e-01],\n", " [ 2.07209923e+00, 3.52001635e-02],\n", " [-8.11609003e-01, 5.10548387e-02],\n", " [ 1.10617390e+00, -5.00532861e-01],\n", " [ 7.83108552e-01, 6.23681079e-01],\n", " [ 5.19314634e-01, 6.58138927e-01],\n", " [ 1.15369377e+00, -5.06557246e-01],\n", " [ 2.01456988e-01, 9.30021747e-01],\n", " [-2.10315426e-01, 1.00700943e+00],\n", " [ 2.56648130e-01, -2.48738776e-01],\n", " [-1.03710314e+00, 2.30748836e-01],\n", " [ 1.72148759e+00, -2.08345383e-01],\n", " [ 9.24799914e-01, 4.94247065e-01],\n", " [ 1.08911468e+00, -4.40836789e-01],\n", " [-1.16502510e+00, 2.52779074e-01],\n", " [-1.75082328e-01, 1.04012819e+00],\n", " [ 1.51596993e+00, -3.52163413e-01],\n", " [ 1.08086088e-01, 9.56975505e-01],\n", " [-9.57080149e-01, 5.12567989e-01],\n", " [ 6.47834107e-01, -4.86523627e-01],\n", " [-1.02340159e+00, 5.31509316e-01],\n", " [ 3.13142058e-01, -5.09754017e-01],\n", " [-2.64515467e-01, 5.80672612e-01],\n", " [ 8.04988122e-01, -3.71624596e-01],\n", " [-9.46347813e-01, 4.42308479e-01],\n", " [ 6.54970714e-02, 1.53680672e-01],\n", " [ 9.50046139e-01, 3.89984583e-01],\n", " [ 5.58939215e-01, 8.09836879e-01],\n", " [ 7.25701640e-01, -2.80462884e-01],\n", " [ 2.03083726e+00, 1.20170801e-01],\n", " [-1.51916239e-01, 9.58192690e-01],\n", " [ 6.33253492e-01, -5.64187401e-01],\n", " [ 2.02082877e+00, 5.18545302e-01],\n", " [ 1.42594806e-02, 2.31861328e-01],\n", " [-3.31332409e-01, 1.13198237e+00],\n", " [ 9.10306386e-01, 2.01247355e-02],\n", " [-3.81510263e-01, 9.71275515e-01],\n", " [ 6.14424862e-01, -3.85865038e-01],\n", " [ 1.98240620e+00, 3.50624890e-01],\n", " [ 4.57707908e-01, 8.94353953e-01],\n", " [ 1.03913732e+00, 3.89233822e-01],\n", " [ 1.98947025e+00, 1.83673590e-01],\n", " [-6.70964946e-01, 7.93803059e-01],\n", " [ 2.01955021e+00, 3.25289242e-01],\n", " [ 1.77991353e+00, -1.11649028e-01],\n", " [ 1.74859902e+00, -2.65552069e-01],\n", " [ 4.91433723e-01, -2.73866374e-01],\n", " [-1.06817822e+00, 2.97496839e-01],\n", " [ 5.66538453e-02, 2.68583098e-02],\n", " [ 1.33536908e+00, -6.97952991e-01],\n", " [ 1.98056273e+00, 3.68945922e-01],\n", " [ 8.04337273e-02, 1.15888076e+00],\n", " [ 1.06172312e+00, -4.77816364e-02],\n", " [-8.13810949e-01, 4.55071382e-01],\n", " [ 1.11442338e-01, 3.94660905e-01],\n", " [-9.84200490e-01, 8.13605456e-02],\n", " [-5.03822097e-01, 1.02687047e+00],\n", " [ 1.56581318e+00, -3.50444504e-01],\n", " [ 2.00175240e-01, 8.29137530e-01],\n", " [-5.89576838e-01, 7.91803173e-01],\n", " [ 5.91096314e-02, 1.04656810e+00],\n", " [-8.64462243e-02, 1.14115330e+00],\n", " [-8.03546811e-01, 3.68143826e-01],\n", " [ 9.36602233e-01, 3.52975983e-01],\n", " [ 1.50812484e+00, -5.68831767e-01],\n", " [ 4.67190679e-01, 6.57821620e-01],\n", " [ 1.97192261e+00, 1.74641987e-01],\n", " [ 6.03754895e-01, -4.01384358e-01],\n", " [ 6.81080119e-01, 4.27058398e-01],\n", " [ 8.53498280e-01, 6.23877292e-01],\n", " [-6.34861812e-01, 5.27478557e-01],\n", " [-6.96765462e-02, 2.99484737e-01],\n", " [ 1.95489528e-02, 9.94207504e-01],\n", " [-1.26266935e-01, 3.43883486e-01],\n", " [-8.39199835e-01, 7.00314293e-01],\n", " [ 8.46496761e-01, -1.16350315e-02],\n", " [ 2.29736915e-01, 7.69345906e-02],\n", " [ 1.25462994e+00, -3.92336633e-01],\n", " [ 1.96824632e+00, 5.49696837e-01],\n", " [ 1.02016913e+00, 3.53917835e-01],\n", " [-5.31164727e-01, 6.92582395e-01],\n", " [-1.10496675e+00, 4.86301545e-01],\n", " [ 2.54223306e-01, -1.89474183e-01],\n", " [ 1.25509219e+00, -3.32432682e-01],\n", " [ 1.57148223e+00, -8.26665774e-02],\n", " [ 1.11207737e+00, -3.29369368e-01],\n", " [-1.05050177e+00, 1.81123803e-01],\n", " [ 2.03731913e+00, 5.06268525e-01],\n", " [ 8.37104705e-01, 4.38321722e-01],\n", " [ 2.70944977e-02, 4.29302511e-02],\n", " [-2.68526403e-02, 5.04722011e-01],\n", " [ 4.47263472e-01, 9.95926194e-01],\n", " [-4.78109868e-01, 9.94572554e-01],\n", " [-4.04629660e-01, 8.86029986e-01],\n", " [ 1.03118702e+00, 1.02021446e-01],\n", " [ 2.67391648e-01, 1.15977827e-01],\n", " [ 1.31563032e+00, -4.68055845e-01],\n", " [ 2.72709481e-01, 1.06929344e+00],\n", " [-2.42902398e-02, 1.56393942e-01],\n", " [ 4.77795869e-01, -3.90843212e-01],\n", " [ 1.68292595e+00, -4.60914204e-01],\n", " [ 8.33302236e-01, 3.98915558e-01],\n", " [ 3.27488923e-01, 8.78131092e-01],\n", " [ 6.74827352e-01, -3.35549427e-01],\n", " [-2.45527648e-01, 9.38992348e-01],\n", " [ 1.28155163e+00, -4.76190226e-01],\n", " [ 3.01408950e-01, -8.43203922e-02],\n", " [ 5.80344402e-01, 1.01606800e+00],\n", " [ 6.54257532e-01, 7.78195644e-01],\n", " [ 2.18332379e-01, 2.39832599e-02],\n", " [ 1.17599534e+00, -5.14188256e-01],\n", " [ 6.53498000e-01, 8.42628380e-01],\n", " [ 1.46494235e+00, -2.88413814e-01],\n", " [ 4.50729150e-01, -4.81782194e-01],\n", " [ 1.59955423e+00, -1.97918553e-02],\n", " [ 4.23800432e-01, 8.61219660e-01],\n", " [ 6.47861265e-01, -3.73026171e-01],\n", " [ 1.54832195e+00, -3.82636573e-01],\n", " [ 9.59507036e-01, -6.53322764e-01],\n", " [ 6.22396337e-01, 8.80914616e-01],\n", " [-1.14279515e+00, 5.33863108e-02],\n", " [-9.68196502e-01, 5.38851311e-01],\n", " [-6.91219117e-01, 4.43566916e-01],\n", " [ 1.82600270e-01, 1.76667308e-02],\n", " [ 9.34822203e-01, -3.97721167e-01],\n", " [ 1.70786789e+00, 5.01289734e-01],\n", " [-6.81686209e-01, 6.25964062e-01],\n", " [-7.06439154e-01, 5.56250067e-01],\n", " [ 5.01454747e-01, 7.38339946e-01],\n", " [ 1.47648298e+00, -3.69367080e-01],\n", " [-9.33946572e-01, 4.76649526e-01],\n", " [ 1.91815067e+00, 2.06055971e-01],\n", " [ 1.87199356e+00, -3.36720051e-01],\n", " [ 1.94311158e+00, 3.13223536e-01],\n", " [ 3.42365360e-01, 1.01614096e+00],\n", " [-7.12211574e-02, 8.20286056e-01],\n", " [ 8.38200245e-01, -5.80104512e-01],\n", " [-8.34317448e-01, 3.91907169e-01],\n", " [-6.52120149e-01, 7.85982383e-01],\n", " [-9.31767725e-01, 4.03435241e-01],\n", " [ 4.33542139e-01, 9.55743482e-01],\n", " [ 8.31174752e-01, 4.53839488e-01],\n", " [ 9.20525579e-01, 2.60496062e-01],\n", " [-3.67116967e-02, 3.42448285e-01],\n", " [-5.45442229e-01, 8.70811316e-01],\n", " [ 1.79020519e+00, 2.09022313e-01],\n", " [ 2.09486633e-01, -7.84617937e-04],\n", " [ 1.69222125e-01, 1.01894845e+00],\n", " [ 1.58819062e+00, -1.90820935e-01]]),\n", " array([0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1,\n", " 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1,\n", " 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0,\n", " 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0,\n", " 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0,\n", " 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0,\n", " 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0,\n", " 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1,\n", " 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,\n", " 0, 1]))" ] }, "metadata": { "tags": [] }, "execution_count": 4 } ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 486 }, "id": "SQIHyk0a1gbl", "outputId": "0c8265b0-2108-4e39-d13f-fa03feba1c16" }, "source": [ "X = moons[0]\n", "y = moons[1]\n", "plt.figure(figsize=(12, 8))\n", "plt.scatter(X[:, 0], X[:, 1])\n", "plt.show()" ], "execution_count": 10, "outputs": [ { "output_type": "display_data", "data": { "image/png": "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\n", "text/plain": [ "<Figure size 864x576 with 1 Axes>" ] }, "metadata": { "tags": [], "needs_background": "light" } } ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 485 }, "id": "6_YGbd1o2uJZ", "outputId": "0b1691c0-a6a0-495d-a451-cfaae17e35e9" }, "source": [ "X = moons[0]\n", "y = moons[1]\n", "plt.figure(figsize=(12, 8))\n", "mglearn.discrete_scatter(X[:, 0], X[:, 1], y)\n", "plt.show()" ], "execution_count": 18, "outputs": [ { "output_type": "display_data", "data": { "image/png": "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\n", "text/plain": [ "<Figure size 864x576 with 1 Axes>" ] }, "metadata": { "tags": [], "needs_background": "light" } } ] }, { "cell_type": "markdown", "metadata": { "id": "7kGJtjH23aIC" }, "source": [ "### 非線形分類\n", "2次元空間を10次元特徴空間に写像して分類する。\n", "(カーネル法は使用しない)\n", "\n", "\n" ] }, { "cell_type": "code", "metadata": { "id": "H3lo5MZv23WD" }, "source": [ "from sklearn.model_selection import train_test_split\n", "from sklearn.preprocessing import StandardScaler\n", "from sklearn.preprocessing import PolynomialFeatures\n", "from sklearn.svm import LinearSVC" ], "execution_count": 19, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "H2N11hhW4bhu" }, "source": [ "X_train, X_test, y_train, y_test = train_test_split(X, y, stratify=y, random_state=0)\n", "\n", "scaler = StandardScaler()\n", "X_train_scaled = scaler.fit_transform(X_train)\n", "X_test_scaled = scaler.fit_transform(X_test)\n" ], "execution_count": 20, "outputs": [] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 507 }, "id": "ql5QQeJk46vP", "outputId": "0564a452-6b15-4c42-9758-9c52ebe7bb22" }, "source": [ "lin_svm = LinearSVC().fit(X_train_scaled, y_train)\n", "plt.figure(figsize=(12, 8))\n", "mglearn.plots.plot_2d_separator(lin_svm, X)\n", "mglearn.discrete_scatter(X[:, 0], X[:, 1], y)\n", "plt.xlabel(\"$x_0s\", fontsize=20)\n", "plt.ylabel(\"$x_1s\", fontsize=20)\n", "\n", "# 線形分離不可能であることを、いちおう確認" ], "execution_count": 22, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "Text(0, 0.5, '$x_1s')" ] }, "metadata": { "tags": [] }, "execution_count": 22 }, { "output_type": "display_data", "data": { "image/png": "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\n", "text/plain": [ "<Figure size 864x576 with 1 Axes>" ] }, "metadata": { "tags": [] } } ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "fNZhrIMW4Lo_", "outputId": "160a4220-a285-4f19-cc03-538a86c0026c" }, "source": [ "poly = PolynomialFeatures(degree=3)\n", "X_train_poly = poly.fit_transform(X_train)\n", "X_test_poly = poly.fit_transform(X_test)\n", "\n", "print(X_train_poly.shape) # 10次元になっていることがわかる。\n", "\n", "print(X_train_poly)\n" ], "execution_count": 23, "outputs": [ { "output_type": "stream", "text": [ "(150, 10)\n", "[[ 1.00000000e+00 8.86813848e-01 -4.84896235e-01 ... -3.81341214e-01\n", " 2.08511538e-01 -1.14010917e-01]\n", " [ 1.00000000e+00 9.24799914e-01 4.94247065e-01 ... 4.22707215e-01\n", " 2.25910272e-01 1.20734753e-01]\n", " [ 1.00000000e+00 -7.63797985e-01 8.26528213e-01 ... 4.82186114e-01\n", " -5.21787743e-01 5.64641828e-01]\n", " ...\n", " [ 1.00000000e+00 -9.68196502e-01 5.38851311e-01 ... 5.05121626e-01\n", " -2.81126249e-01 1.56461263e-01]\n", " [ 1.00000000e+00 -6.70964946e-01 7.93803059e-01 ... 3.57365342e-01\n", " -4.22790644e-01 5.00193800e-01]\n", " [ 1.00000000e+00 -2.68526403e-02 5.04722011e-01 ... 3.63937020e-04\n", " -6.84055729e-03 1.28575060e-01]]\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "uRQdAjA-7BxJ", "outputId": "f77750b1-0255-498b-f567-c80c6023f028" }, "source": [ "# これで10次元がどのように構成されているかが分かる。\n", "poly.get_feature_names()" ], "execution_count": 24, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "['1',\n", " 'x0',\n", " 'x1',\n", " 'x0^2',\n", " 'x0 x1',\n", " 'x1^2',\n", " 'x0^3',\n", " 'x0^2 x1',\n", " 'x0 x1^2',\n", " 'x1^3']" ] }, "metadata": { "tags": [] }, "execution_count": 24 } ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "JxJVD_777Qqa", "outputId": "95f1b15a-e7ef-4c3e-ba8e-f9c9223e0e08" }, "source": [ "X_train_scaled_poly = scaler.fit_transform(X_train_poly)\n", "X_test_scaled_poly = scaler.fit_transform(X_test_poly)\n", "\n", "lin_svm = LinearSVC().fit(X_train_scaled_poly, y_train)\n", "lin_svm.predict(X_test_scaled_poly) == y_test\n", "# 的中率をみる → パーフェクト" ], "execution_count": 26, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "array([ True, True, True, True, True, True, True, True, True,\n", " True, True, True, True, True, True, True, True, True,\n", " True, True, True, True, True, True, True, True, True,\n", " True, True, True, True, True, True, True, True, True,\n", " True, True, True, True, True, True, True, True, True,\n", " True, True, True, True, True])" ] }, "metadata": { "tags": [] }, "execution_count": 26 } ] } ] }