{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "JmzQnrj_qAK2" }, "source": [ "# 머신 러닝 교과서 3판" ] }, { "cell_type": "markdown", "metadata": { "id": "OrbmAIqKqAK6" }, "source": [ "# 2장 - 간단한 분류 알고리즘 훈련" ] }, { "cell_type": "markdown", "metadata": { "id": "6mi4HcBkqAK7" }, "source": [ "**아래 링크를 통해 이 노트북을 주피터 노트북 뷰어(nbviewer.jupyter.org)로 보거나 구글 코랩(colab.research.google.com)에서 실행할 수 있습니다.**\n", "\n", "<table class=\"tfo-notebook-buttons\" align=\"left\">\n", " <td>\n", " <a target=\"_blank\" href=\"https://nbviewer.org/github/rickiepark/python-machine-learning-book-3rd-edition/blob/master/ch02/ch02.ipynb\"><img src=\"https://jupyter.org/assets/share.png\" width=\"60\" />주피터 노트북 뷰어로 보기</a>\n", " </td>\n", " <td>\n", " <a target=\"_blank\" href=\"https://colab.research.google.com/github/rickiepark/python-machine-learning-book-3rd-edition/blob/master/ch02/ch02.ipynb\"><img src=\"https://www.tensorflow.org/images/colab_logo_32px.png\" />구글 코랩(Colab)에서 실행하기</a>\n", " </td>\n", "</table>" ] }, { "cell_type": "markdown", "metadata": { "id": "H6ohB3qhqAK7" }, "source": [ "### 목차\n", "\n", "- 인공 뉴런: 초기 머신 러닝의 간단한 역사\n", " - 인공 뉴런의 수학적 정의\n", " - 퍼셉트론 학습 규칙\n", "- 파이썬으로 퍼셉트론 학습 알고리즘 구현\n", " - 객체 지향 퍼셉트론 API\n", " - 붓꽃 데이터셋에서 퍼셉트론 훈련\n", "- 적응형 선형 뉴런과 학습의 수렴\n", " - 경사 하강법으로 비용 함수 최소화\n", " - 파이썬으로 아달린 구현\n", " - 특성 스케일을 조정하여 경사 하강법 결과 향상\n", " - 대규모 머신 러닝과 확률적 경사 하강법" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T05:49:14.421678Z", "iopub.status.busy": "2021-10-23T05:49:14.420609Z", "iopub.status.idle": "2021-10-23T05:49:14.423029Z", "shell.execute_reply": "2021-10-23T05:49:14.422347Z" }, "id": "H7hW_HzPqAK8" }, "outputs": [], "source": [ "from IPython.display import Image" ] }, { "cell_type": "markdown", "metadata": { "id": "hjRNovxBqAK8" }, "source": [ "<br>" ] }, { "cell_type": "markdown", "metadata": { "id": "Fr9HSqsoqAK9" }, "source": [ "# 2.1 인공 뉴런: 초기 머신 러닝의 간단한 역사" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 235 }, "execution": { "iopub.execute_input": "2021-10-23T05:49:14.434031Z", "iopub.status.busy": "2021-10-23T05:49:14.431909Z", "iopub.status.idle": "2021-10-23T05:49:14.437885Z", "shell.execute_reply": "2021-10-23T05:49:14.437327Z" }, "id": "-q5FhqX_qAK9", "outputId": "db77b568-f02d-420a-d7ce-f2445f9d6632" }, "outputs": [ { "data": { "text/html": [ "<img src=\"https://git.io/JtIbf\" width=\"500\"/>" ], "text/plain": [ "<IPython.core.display.Image object>" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Image(url='https://git.io/JtIbf', width=500)" ] }, { "cell_type": "markdown", "metadata": { "id": "SpLFrQkI-Iwh" }, "source": [ "- 1943년 워렌 맥컬록(Warren McCulloch)과 월터 피츠(Walter Pitts)가 맥컬록-피츠(MCP) 뉴런 발표\n", "- 프랑크 로젠블라트(Frank Rosenblatt)는 MCP 뉴런 모델을 기반으로 퍼셉트론 학습 개념을 발표" ] }, { "cell_type": "markdown", "metadata": { "id": "H98ahObaqALK" }, "source": [ "<br>" ] }, { "cell_type": "markdown", "metadata": { "id": "qcS1fpThqAK-" }, "source": [ "## 2.1.1 인공 뉴런의 수학적 정의" ] }, { "cell_type": "markdown", "metadata": { "id": "GT0gjzyV-Iwh" }, "source": [ "$\\boldsymbol{w}=\\begin{bmatrix} w_1 \\\\ \\vdots \\\\ w_m\\end{bmatrix}$ ,\n", "$\\boldsymbol{x}=\\begin{bmatrix} x_1 \\\\ \\vdots \\\\ x_m\\end{bmatrix}$\n", "\n", "최종 입력(net input) : $z = w_1x_1+w_2x_2+\\cdots+w_mx_m$\n", "\n", "\n", "벡터 점곱(dot product), 행렬 곱셈(matrix multiplication) :\n", "$\\begin{bmatrix}1&2&3\\end{bmatrix}\\times\\begin{bmatrix}4\\\\5\\\\6\\end{bmatrix}=1\\times4+2\\times5+3\\times6=32$\n", "\n", "점곱을 사용한 표현 : $z = w_1x_1+\\cdots+w_mx_m=\\sum_{j=1}^mx_jw_j=\\boldsymbol{w}^T\\boldsymbol{x}$\n", "\n", "퍼셉트론의 결정 함수 : $\\phi(z)=\\begin{cases}1&z\\ge\\theta\\mbox{ 일 때} \\\\ -1&\\mbox{그 외}\\end{cases}$\n", "$\\;\\;\\;\\;\\;$\n", "$\\phi(z)=\\begin{cases}1&z-\\theta\\ge0\\mbox{ 일 때} \\\\ -1&\\mbox{그 외}\\end{cases}$\n", "\n", "$w_0=-\\theta , x_0=1$ 일 때 : $z_{new} = w_0x_0+w_1x_1+\\cdots+w_mx_m=\\sum_{j=0}^mx_jw_j=\\boldsymbol{w}^T\\boldsymbol{x}$" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 301 }, "execution": { "iopub.execute_input": "2021-10-23T05:49:14.444031Z", "iopub.status.busy": "2021-10-23T05:49:14.443018Z", "iopub.status.idle": "2021-10-23T05:49:14.446779Z", "shell.execute_reply": "2021-10-23T05:49:14.447226Z" }, "id": "m2egC3TBqAK-", "outputId": "00775b03-9470-47a2-f222-3ec1f405794e" }, "outputs": [ { "data": { "text/html": [ "<img src=\"https://git.io/JtIbL\" width=\"500\"/>" ], "text/plain": [ "<IPython.core.display.Image object>" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 퍼셉트론 결정 함수(단위 계단 함수)와 결정 경계\n", "Image(url='https://git.io/JtIbL', width=500)" ] }, { "cell_type": "markdown", "metadata": { "id": "mAuPvuta-Iwi" }, "source": [ "<br>" ] }, { "cell_type": "markdown", "metadata": { "id": "q4CbGXjyqAK-" }, "source": [ "## 2.1.2 퍼셉트론 학습 규칙" ] }, { "cell_type": "markdown", "metadata": { "id": "y1smPkjyqAK_" }, "source": [ "$\\Delta w_j = \\eta(y^{(i)}-\\hat{y}^{(i)})x_j^{(i)}$\n", "\n", "$w_j := w_j + \\Delta w_j$" ] }, { "cell_type": "markdown", "metadata": { "id": "XApIteAcqAK_" }, "source": [ "클래스 레이블을 정확히 예측한 경우 :\n", "\n", "$y^{(i)}=-1,\\; \\hat{y}^{(i)}=-1, \\qquad \\Delta w_j=\\eta(-1-(-1))x_j^{(i)}=0$\n", "\n", "$y^{(i)}=1,\\; \\hat{y}^{(i)}=1, \\qquad \\Delta w_j=\\eta(1-1)x_j^{(i)}=0$" ] }, { "cell_type": "markdown", "metadata": { "id": "u55ceXR9qAK_" }, "source": [ "클래스 레이블을 잘못 예측한 경우 :\n", "\n", "$y^{(i)}=1,\\;\\hat{y}^{(i)}=-1, \\qquad \\Delta w_j=\\eta(1-(-1))x_j^{(i)}=\\eta(2)x_j^{(i)}$\n", "\n", "$y^{(i)}=-1,\\;\\hat{y}^{(i)}=1, \\qquad \\Delta w_j=\\eta(-1-1)x_j^{(i)}=\\eta(-2)x_j^{(i)}$" ] }, { "cell_type": "markdown", "metadata": { "id": "j6jDxcEoqAK_" }, "source": [ "예를 들어 $\\hat{y}^{(i)}=-1,\\;y^{(i)}=+1,\\;\\eta=1$ 이고, $x_j^{(i)}=0.5$ 일 때 :\n", "\n", "$\\Delta w_j=(1-(-1))0.5=(2)0.5=1$\n", "\n", "$x_j^{(i)}=2$ 일 때 :\n", "\n", "$\\Delta w_j=(1-(-1))2=(2)2=4$" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 192 }, "execution": { "iopub.execute_input": "2021-10-23T05:49:14.452950Z", "iopub.status.busy": "2021-10-23T05:49:14.452160Z", "iopub.status.idle": "2021-10-23T05:49:14.455702Z", "shell.execute_reply": "2021-10-23T05:49:14.456150Z" }, "id": "QeJHXlU4qAK_", "outputId": "27bd81b5-7346-4bcb-97f1-6275545d206a" }, "outputs": [ { "data": { "text/html": [ "<img src=\"https://git.io/JtIbq\" width=\"600\"/>" ], "text/plain": [ "<IPython.core.display.Image object>" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Image(url='https://git.io/JtIbq', width=600)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 260 }, "execution": { "iopub.execute_input": "2021-10-23T05:49:14.461662Z", "iopub.status.busy": "2021-10-23T05:49:14.460639Z", "iopub.status.idle": "2021-10-23T05:49:14.464422Z", "shell.execute_reply": "2021-10-23T05:49:14.464881Z" }, "id": "kRRcFM_BqALA", "outputId": "7acffa76-3881-4784-e689-f55a331d1581" }, "outputs": [ { "data": { "text/html": [ "<img src=\"https://git.io/JtIbO\" width=\"600\"/>" ], "text/plain": [ "<IPython.core.display.Image object>" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 퍼셉트론 알고리즘\n", "Image(url='https://git.io/JtIbO', width=600)" ] }, { "cell_type": "markdown", "metadata": { "id": "7g3fMsmaqALA" }, "source": [ "<br>" ] }, { "cell_type": "markdown", "metadata": { "id": "E813AMpDqALA" }, "source": [ "# 2.2 파이썬으로 퍼셉트론 학습 알고리즘 구현" ] }, { "cell_type": "markdown", "metadata": { "id": "X53-_PH3qALA" }, "source": [ "## 2.2.1 객체 지향 퍼셉트론 API" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T05:49:14.476082Z", "iopub.status.busy": "2021-10-23T05:49:14.473555Z", "iopub.status.idle": "2021-10-23T05:49:14.611511Z", "shell.execute_reply": "2021-10-23T05:49:14.612056Z" }, "id": "UYXKL2ixqALA" }, "outputs": [], "source": [ "import numpy as np\n", "\n", "\n", "class Perceptron(object):\n", " \"\"\"퍼셉트론 분류기\n", "\n", " 매개변수\n", " ------------\n", " eta : float\n", " 학습률 (0.0과 1.0 사이)\n", " n_iter : int\n", " 훈련 데이터셋 반복 횟수\n", " random_state : int\n", " 가중치 무작위 초기화를 위한 난수 생성기 시드\n", "\n", " 속성\n", " -----------\n", " w_ : 1d-array\n", " 학습된 가중치\n", " errors_ : list\n", " 에포크마다 누적된 분류 오류\n", "\n", " \"\"\"\n", " def __init__(self, eta=0.01, n_iter=50, random_state=1):\n", " self.eta = eta\n", " self.n_iter = n_iter\n", " self.random_state = random_state\n", "\n", " def fit(self, X, y):\n", " \"\"\"훈련 데이터 학습\n", "\n", " 매개변수\n", " ----------\n", " X : array-like, shape = [n_samples, n_features]\n", " n_samples개의 샘플과 n_features개의 특성으로 이루어진 훈련 데이터\n", " y : array-like, shape = [n_samples]\n", " 타깃값\n", "\n", " 반환값\n", " -------\n", " self : object\n", "\n", " \"\"\"\n", " rgen = np.random.RandomState(self.random_state)\n", " self.w_ = rgen.normal(loc=0.0, scale=0.01, size=1 + X.shape[1])\n", " self.errors_ = []\n", "\n", " for _ in range(self.n_iter):\n", " errors = 0\n", " for xi, target in zip(X, y):\n", " update = self.eta * (target - self.predict(xi))\n", " self.w_[1:] += update * xi\n", " self.w_[0] += update\n", " errors += int(update != 0.0)\n", " self.errors_.append(errors)\n", " return self\n", "\n", " def net_input(self, X):\n", " \"\"\"입력 계산\"\"\"\n", " return np.dot(X, self.w_[1:]) + self.w_[0]\n", "\n", " def predict(self, X):\n", " \"\"\"단위 계단 함수를 사용하여 클래스 레이블을 반환합니다\"\"\"\n", " return np.where(self.net_input(X) >= 0.0, 1, -1)" ] }, { "cell_type": "markdown", "metadata": { "id": "m-VI4sBt-Iwj" }, "source": [ "$\\boldsymbol{w}^{(1)} = \\boldsymbol{w}^{(0)}+\\mathit\\Delta\\boldsymbol{w}=\\boldsymbol{w}^{(0)}+\\eta(\\boldsymbol{y}-\\boldsymbol{\\hat{y}})\\boldsymbol{x}=\\eta(\\boldsymbol{y}-\\phi(\\boldsymbol{w}^{(0)}\\boldsymbol{x}))\\boldsymbol{x}=\\eta(\\boldsymbol{y}+1)\\boldsymbol{x}$\n", "\n", "$a\\cdot b =\\vert a\\vert\\vert b\\vert\\text{cos}\\theta$\n", "\n", "$\\theta=\\text{cos}^{-1}\\dfrac{a\\cdot b}{\\vert a\\vert\\vert b\\vert}$" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "execution": { "iopub.execute_input": "2021-10-23T05:49:14.616043Z", "iopub.status.busy": "2021-10-23T05:49:14.615368Z", "iopub.status.idle": "2021-10-23T05:49:14.620231Z", "shell.execute_reply": "2021-10-23T05:49:14.620702Z" }, "id": "Wi9_qzykqALB", "outputId": "4bacc9c2-8305-4c54-af4a-026e73987868" }, "outputs": [ { "data": { "text/plain": [ "0.0" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v1 = np.array([1, 2, 3])\n", "v2 = 0.5 * v1\n", "np.arccos(v1.dot(v2) / (np.linalg.norm(v1) * np.linalg.norm(v2)))" ] }, { "cell_type": "markdown", "metadata": { "id": "PETPUylh-Iwk" }, "source": [ "<br>" ] }, { "cell_type": "markdown", "metadata": { "id": "TXzkl6OdqALB" }, "source": [ "## 2.2.2 붓꽃 데이터셋에서 퍼셉트론 훈련" ] }, { "cell_type": "markdown", "metadata": { "id": "raRwqKBRqALC" }, "source": [ "### 붓꽃 데이터셋 읽기" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 224 }, "execution": { "iopub.execute_input": "2021-10-23T05:49:14.624758Z", "iopub.status.busy": "2021-10-23T05:49:14.624131Z", "iopub.status.idle": "2021-10-23T05:49:15.647834Z", "shell.execute_reply": "2021-10-23T05:49:15.647022Z" }, "id": "7fZajroDqALC", "outputId": "86e7f24a-e76c-4318-9627-22c5d7b59fe7" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "URL: https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data\n" ] }, { "data": { "text/html": [ "\n", " <div id=\"df-505023ef-98f6-46e1-b4eb-adb00dd164d5\" class=\"colab-df-container\">\n", " <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>0</th>\n", " <th>1</th>\n", " <th>2</th>\n", " <th>3</th>\n", " <th>4</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>145</th>\n", " <td>6.7</td>\n", " <td>3.0</td>\n", " <td>5.2</td>\n", " <td>2.3</td>\n", " <td>Iris-virginica</td>\n", " </tr>\n", " <tr>\n", " <th>146</th>\n", " <td>6.3</td>\n", " <td>2.5</td>\n", " <td>5.0</td>\n", " <td>1.9</td>\n", " <td>Iris-virginica</td>\n", " </tr>\n", " <tr>\n", " <th>147</th>\n", " <td>6.5</td>\n", " <td>3.0</td>\n", " <td>5.2</td>\n", " <td>2.0</td>\n", " <td>Iris-virginica</td>\n", " </tr>\n", " <tr>\n", " <th>148</th>\n", " <td>6.2</td>\n", " <td>3.4</td>\n", " <td>5.4</td>\n", " <td>2.3</td>\n", " <td>Iris-virginica</td>\n", " </tr>\n", " <tr>\n", " <th>149</th>\n", " <td>5.9</td>\n", " <td>3.0</td>\n", " <td>5.1</td>\n", " <td>1.8</td>\n", " <td>Iris-virginica</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>\n", " <div class=\"colab-df-buttons\">\n", "\n", " <div class=\"colab-df-container\">\n", " <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-505023ef-98f6-46e1-b4eb-adb00dd164d5')\"\n", " title=\"Convert this dataframe to an interactive table.\"\n", " style=\"display:none;\">\n", "\n", " <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n", " <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n", " </svg>\n", " </button>\n", "\n", " <style>\n", " .colab-df-container {\n", " display:flex;\n", " gap: 12px;\n", " }\n", "\n", " .colab-df-convert {\n", " background-color: #E8F0FE;\n", " border: none;\n", " border-radius: 50%;\n", " cursor: pointer;\n", " display: none;\n", " fill: #1967D2;\n", " height: 32px;\n", " padding: 0 0 0 0;\n", " width: 32px;\n", " }\n", "\n", " .colab-df-convert:hover {\n", " background-color: #E2EBFA;\n", " box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n", " fill: #174EA6;\n", " }\n", "\n", " .colab-df-buttons div {\n", " margin-bottom: 4px;\n", " }\n", "\n", " [theme=dark] .colab-df-convert {\n", " background-color: #3B4455;\n", " fill: #D2E3FC;\n", " }\n", "\n", " [theme=dark] .colab-df-convert:hover {\n", " background-color: #434B5C;\n", " box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n", " filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n", " fill: #FFFFFF;\n", " }\n", " </style>\n", "\n", " <script>\n", " const buttonEl =\n", " document.querySelector('#df-505023ef-98f6-46e1-b4eb-adb00dd164d5 button.colab-df-convert');\n", " buttonEl.style.display =\n", " google.colab.kernel.accessAllowed ? 'block' : 'none';\n", "\n", " async function convertToInteractive(key) {\n", " const element = document.querySelector('#df-505023ef-98f6-46e1-b4eb-adb00dd164d5');\n", " const dataTable =\n", " await google.colab.kernel.invokeFunction('convertToInteractive',\n", " [key], {});\n", " if (!dataTable) return;\n", "\n", " const docLinkHtml = 'Like what you see? Visit the ' +\n", " '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n", " + ' to learn more about interactive tables.';\n", " element.innerHTML = '';\n", " dataTable['output_type'] = 'display_data';\n", " await google.colab.output.renderOutput(dataTable, element);\n", " const docLink = document.createElement('div');\n", " docLink.innerHTML = docLinkHtml;\n", " element.appendChild(docLink);\n", " }\n", " </script>\n", " </div>\n", "\n", "\n", "<div id=\"df-d8bd3831-436b-43e5-ad8d-fe155bcf1a50\">\n", " <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-d8bd3831-436b-43e5-ad8d-fe155bcf1a50')\"\n", " title=\"Suggest charts\"\n", " style=\"display:none;\">\n", "\n", "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n", " width=\"24px\">\n", " <g>\n", " <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n", " </g>\n", "</svg>\n", " </button>\n", "\n", "<style>\n", " .colab-df-quickchart {\n", " --bg-color: #E8F0FE;\n", " --fill-color: #1967D2;\n", " --hover-bg-color: #E2EBFA;\n", " --hover-fill-color: #174EA6;\n", " --disabled-fill-color: #AAA;\n", " --disabled-bg-color: #DDD;\n", " }\n", "\n", " [theme=dark] .colab-df-quickchart {\n", " --bg-color: #3B4455;\n", " --fill-color: #D2E3FC;\n", " --hover-bg-color: #434B5C;\n", " --hover-fill-color: #FFFFFF;\n", " --disabled-bg-color: #3B4455;\n", " --disabled-fill-color: #666;\n", " }\n", "\n", " .colab-df-quickchart {\n", " background-color: var(--bg-color);\n", " border: none;\n", " border-radius: 50%;\n", " cursor: pointer;\n", " display: none;\n", " fill: var(--fill-color);\n", " height: 32px;\n", " padding: 0;\n", " width: 32px;\n", " }\n", "\n", " .colab-df-quickchart:hover {\n", " background-color: var(--hover-bg-color);\n", " box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n", " fill: var(--button-hover-fill-color);\n", " }\n", "\n", " .colab-df-quickchart-complete:disabled,\n", " .colab-df-quickchart-complete:disabled:hover {\n", " background-color: var(--disabled-bg-color);\n", " fill: var(--disabled-fill-color);\n", " box-shadow: none;\n", " }\n", "\n", " .colab-df-spinner {\n", " border: 2px solid var(--fill-color);\n", " border-color: transparent;\n", " border-bottom-color: var(--fill-color);\n", " animation:\n", " spin 1s steps(1) infinite;\n", " }\n", "\n", " @keyframes spin {\n", " 0% {\n", " border-color: transparent;\n", " border-bottom-color: var(--fill-color);\n", " border-left-color: var(--fill-color);\n", " }\n", " 20% {\n", " border-color: transparent;\n", " border-left-color: var(--fill-color);\n", " border-top-color: var(--fill-color);\n", " }\n", " 30% {\n", " border-color: transparent;\n", " border-left-color: var(--fill-color);\n", " border-top-color: var(--fill-color);\n", " border-right-color: var(--fill-color);\n", " }\n", " 40% {\n", " border-color: transparent;\n", " border-right-color: var(--fill-color);\n", " border-top-color: var(--fill-color);\n", " }\n", " 60% {\n", " border-color: transparent;\n", " border-right-color: var(--fill-color);\n", " }\n", " 80% {\n", " border-color: transparent;\n", " border-right-color: var(--fill-color);\n", " border-bottom-color: var(--fill-color);\n", " }\n", " 90% {\n", " border-color: transparent;\n", " border-bottom-color: var(--fill-color);\n", " }\n", " }\n", "</style>\n", "\n", " <script>\n", " async function quickchart(key) {\n", " const quickchartButtonEl =\n", " document.querySelector('#' + key + ' button');\n", " quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n", " quickchartButtonEl.classList.add('colab-df-spinner');\n", " try {\n", " const charts = await google.colab.kernel.invokeFunction(\n", " 'suggestCharts', [key], {});\n", " } catch (error) {\n", " console.error('Error during call to suggestCharts:', error);\n", " }\n", " quickchartButtonEl.classList.remove('colab-df-spinner');\n", " quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n", " }\n", " (() => {\n", " let quickchartButtonEl =\n", " document.querySelector('#df-d8bd3831-436b-43e5-ad8d-fe155bcf1a50 button');\n", " quickchartButtonEl.style.display =\n", " google.colab.kernel.accessAllowed ? 'block' : 'none';\n", " })();\n", " </script>\n", "</div>\n", " </div>\n", " </div>\n" ], "text/plain": [ " 0 1 2 3 4\n", "145 6.7 3.0 5.2 2.3 Iris-virginica\n", "146 6.3 2.5 5.0 1.9 Iris-virginica\n", "147 6.5 3.0 5.2 2.0 Iris-virginica\n", "148 6.2 3.4 5.4 2.3 Iris-virginica\n", "149 5.9 3.0 5.1 1.8 Iris-virginica" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import os\n", "import pandas as pd\n", "\n", "\n", "s = 'https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data'\n", "print('URL:', s)\n", "\n", "df = pd.read_csv(s, header=None, encoding='utf-8')\n", "df.tail()" ] }, { "cell_type": "markdown", "metadata": { "id": "YFUKi7gUqALC" }, "source": [ "<hr>\n", "\n", "### 노트:\n", "\n", "이 깃허브에는 붓꽃 데이터셋이 포함되어 있습니다(이 책에서 사용하는 다른 데이터셋도 모두 포함되어 있습니다). 인터넷에 연결되어 있지 않거나 이따금 UCI 서버(https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data)에 접근할 수 없을 때 사용할 수 있습니다. 이런 경우 로컬 디렉터리에서 붓꽃 데이터를 로드하려면 다음 코드를\n", "```python\n", " df = pd.read_csv('https://archive.ics.uci.edu/ml/'\n", " 'machine-learning-databases/iris/iris.data', header=None)\n", "```\n", "다음과 같이 바꿉니다.\n", "```python\n", " df = pd.read_csv('your/local/path/to/iris.data', header=None)\n", "```\n", "그다음 다음 코드를 실행합니다.\n", "```python\n", " df = pd.read_csv('iris.data', header=None, encoding='utf-8')\n", " df.tail()\n", "```\n", "\n", "<hr>" ] }, { "cell_type": "markdown", "metadata": { "id": "Lc6Bt3ogqALD" }, "source": [ "### 붓꽃 데이터 그래프 그리기" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 449 }, "execution": { "iopub.execute_input": "2021-10-23T05:49:15.658083Z", "iopub.status.busy": "2021-10-23T05:49:15.657338Z", "iopub.status.idle": "2021-10-23T05:49:16.078313Z", "shell.execute_reply": "2021-10-23T05:49:16.077583Z" }, "id": "XcshxMesqALD", "outputId": "305c61c2-6474-4e15-f1bf-aa5f9bcf6e77" }, "outputs": [ { "data": { "image/png": "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4L333sPf/vY3pKWlmU/2q1evRr9+/aw+56hNmzbhpZdewttvv43+/fsjIiICb731FtLS0uocd0lJCebNm4dRo0ZZzQsNDTX/d/UEQKfToaKios7fW5Ua6w4LC6vT97hzu4j8ARMVIi+i0+mQkJCAhIQEzJ49G61bt8bnn3+OGTNmoEWLFjh37hzGjRtX4zoOHz6MQYMGAVCuuBw5cgRTp04FAKSmpmLAgAGYPHmyeXlTZ9G66tWrF86ePYs77rijzuvo0KED/v3vf1tMS09Pt3gfHBwMo9FY5++oTbdu3bBu3Trcvn27xqsqRKQuJipEXiItLQ379+/H0KFDER0djbS0NPz666/o1KkTAGDevHl4/vnnodfrMXz4cJSWluKHH37A1atXMWPGDPN6li9fjnbt2qFTp0545513cPXqVUycOBEA0K5dO/zzn//E7t27ERcXh/Xr1yM9PR1xcXF1jnv27Nl46KGH0KpVK4wePRr16tXD8ePHcfLkSbzxxhsOrePpp5/GkiVL8Morr2DSpEnIyMhAUlISACV5A5TCbiUlJdi/fz+6d++O8PBw85UmNUydOhXvvfceHn30UcyaNQt6vR6HDx9G37590aFDB9W+h4gscXgykZeIjIzEwYMH8fvf/x7t27fHa6+9hrfffhsPPPAAAOCpp57CmjVrsHbtWnTt2hWJiYlISkqySjIWL16MxYsXo3v37vj222+xY8cONGnSBICSEIwaNQpjxoxBv379cOXKFYurK3UxbNgwfPnll9izZw/69OmDu+++G++88w5at27t8Dri4uKwZcsWbNu2Dd26dcOKFSvwt7/9DQAQEhICABgwYACeeeYZjBkzBk2bNsXf//53l+KurnHjxvj6669RUlKCxMRE3HXXXVi9ejWvrhC5mU4IIbQOgojc7/z584iLi8OxY8dc6hwriwULFmDlypXIzc1Vfd2DBw9Gjx49PFYxNikpCdOnT8e1a9c88n1E3oRXVIjIK3zwwQdIT0/HuXPnsH79erz11luYMGGCW7+vQYMGOHHihNu+AwAaNGiAZ555xq3fQeTN2EeFiLxCZmYm3njjDfz2229o1aoVXnzxRcyaNcst37VhwwbcvHkTANCqVSu3fIeJ6aGHzozOIvInvPVDRERE0uKtHyIiIpIWExUiIiKSFhMVIiIikhYTFSIiIpIWExUiIiKSFhMVIiIikhYTFSIiIpIWExUiIiKS1v8DhDZ1YzHEGWcAAAAASUVORK5CYII=", "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "# setosa와 versicolor를 선택합니다\n", "y = df.iloc[0:100, 4].values\n", "y = np.where(y == 'Iris-setosa', -1, 1)\n", "\n", "# 꽃받침 길이와 꽃잎 길이를 추출합니다\n", "X = df.iloc[0:100, [0, 2]].values\n", "\n", "# 산점도를 그립니다, setosa-음성, versicolor-양성\n", "plt.scatter(X[:50, 0], X[:50, 1],\n", " color='red', marker='o', label='setosa')\n", "plt.scatter(X[50:100, 0], X[50:100, 1],\n", " color='blue', marker='x', label='versicolor')\n", "\n", "plt.xlabel('sepal length [cm]')\n", "plt.ylabel('petal length [cm]')\n", "plt.legend(loc='upper left')\n", "\n", "# plt.savefig('images/02_06.png', dpi=300)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "i1Iv80F_qALD" }, "source": [ "### 퍼셉트론 모델 훈련하기" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 449 }, "execution": { "iopub.execute_input": "2021-10-23T05:49:16.137478Z", "iopub.status.busy": "2021-10-23T05:49:16.083504Z", "iopub.status.idle": "2021-10-23T05:49:16.234584Z", "shell.execute_reply": "2021-10-23T05:49:16.235431Z" }, "id": "i7rZoVY9qALE", "outputId": "c0f1ebeb-db51-49c7-8010-690e974d9daa" }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ppn = Perceptron(eta=0.1, n_iter=10)\n", "\n", "ppn.fit(X, y)\n", "\n", "plt.plot(range(1, len(ppn.errors_) + 1), ppn.errors_, marker='o')\n", "plt.xlabel('Epochs')\n", "plt.ylabel('Number of updates')\n", "\n", "# plt.savefig('images/02_07.png', dpi=300)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "uPBaThajqALE" }, "source": [ "### 결정 경계 그래프 함수" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T05:49:16.248170Z", "iopub.status.busy": "2021-10-23T05:49:16.246966Z", "iopub.status.idle": "2021-10-23T05:49:16.249608Z", "shell.execute_reply": "2021-10-23T05:49:16.248983Z" }, "id": "RKhIj0ynqALE" }, "outputs": [], "source": [ "from matplotlib.colors import ListedColormap\n", "\n", "\n", "def plot_decision_regions(X, y, classifier, resolution=0.02):\n", "\n", " # 마커와 컬러맵을 설정합니다\n", " markers = ('s', 'x', 'o', '^', 'v')\n", " colors = ('red', 'blue', 'lightgreen', 'gray', 'cyan')\n", " cmap = ListedColormap(colors[:len(np.unique(y))])\n", "\n", " # 결정 경계를 그립니다\n", " x1_min, x1_max = X[:, 0].min() - 1, X[:, 0].max() + 1 # 꽃받침 길이 최소/최대\n", " x2_min, x2_max = X[:, 1].min() - 1, X[:, 1].max() + 1 # 꽃잎 길이 최소/최대\n", " xx1, xx2 = np.meshgrid(np.arange(x1_min, x1_max, resolution),\n", " np.arange(x2_min, x2_max, resolution))\n", " Z = classifier.predict(np.array([xx1.ravel(), xx2.ravel()]).T)\n", " Z = Z.reshape(xx1.shape)\n", " plt.contourf(xx1, xx2, Z, alpha=0.3, cmap=cmap)\n", " plt.xlim(xx1.min(), xx1.max())\n", " plt.ylim(xx2.min(), xx2.max())\n", "\n", " # 샘플의 산점도를 그립니다\n", " for idx, cl in enumerate(np.unique(y)):\n", " plt.scatter(x=X[y == cl, 0],\n", " y=X[y == cl, 1],\n", " alpha=0.8,\n", " c=colors[idx],\n", " marker=markers[idx],\n", " label=cl,\n", " edgecolor=None if idx==1 else 'black')" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 450 }, "execution": { "iopub.execute_input": "2021-10-23T05:49:16.255014Z", "iopub.status.busy": "2021-10-23T05:49:16.254186Z", "iopub.status.idle": "2021-10-23T05:49:16.462238Z", "shell.execute_reply": "2021-10-23T05:49:16.462696Z" }, "id": "ux8HGXQSqALE", "outputId": "a844ee8a-0b72-4d34-c96c-a9368bfe5535" }, "outputs": [ { "data": { "image/png": "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AADgWgQVAADgWgQVAADgWgQVAADgWgQVAADgWgQVAADgWgQVAADgWgQVAADgWgQVAADgWgQVAADgWgQVAADgWgQVAADgWgQVAADgWgQVAADgWgQVAADgWgQVAADgWgQVAADgWgQVAADgWgQVAADgWgQVAADgWgQVAADgWgQVAADgWgQVAADgWgQVAADgWgQVAADgWgQVAADgWgQVAADgWgQVAADgWgQVAADgWgQVAADgWq4IKvPmzVP37t3Vpk0bnXXWWVq3bp3TQwIAAC7geFB54403NHHiRE2dOlWffvqpBg4cqEsvvVSFhYVODw0AADjM8aAyZ84c3X777brlllt06qmn6oUXXlBqaqp+//vfOz00AADgsAQnL15VVaUNGzZo8uTJgW1xcXG66KKLtHbt2ibHV1ZWqrKyMvC6uLhYklRSXm7/YAEAQFj4f28bhnHUYx0NKj/88INqamp04oknBm0/8cQTtXXr1ibHz5w5U9OmTWuyveutt9o2RgAAYI/S0lKlp6e3eIyjQcWqyZMna+LEiYHXtbW1OnDggNq1ayePx+PgyNytpKREXbt21a5du5SWlub0cNAMfk6RgZ9TZODn5G6GYai0tFSdO3c+6rGOBpX27dsrPj5e33//fdD277//Xh07dmxyfHJyspKTk4O2ZWRk2DnEqJKWlsZf2AjAzyky8HOKDPyc3OtoT1L8HJ1Mm5SUpDPOOEMrV64MbKutrdXKlSs1bNgwB0cGAADcwPGPfiZOnKixY8dqyJAhGjp0qObOnatDhw7plltucXpoAADAYY4Hleuuu0779u3TlClT9N1332nQoEH629/+1mSCLVovOTlZU6dObfKxGdyFn1Nk4OcUGfg5RQ+PYaY2CAAAwAGON3wDAABoDkEFAAC4FkEFAAC4FkEFAAC4FkElhsyaNUsej0f33HOP00NBA4888og8Hk/QV58+fZweFkLYs2ePxowZo3bt2iklJUUDBgzQf/7zH6eHhQa6d+/e5O+Tx+PR+PHjnR4aWsnx8mQcH+vXr9eLL76o0047zemhIIR+/frp73//e+B1QgJ/Nd2mqKhIw4cP1wUXXKAVK1aoQ4cO2rZtmzIzM50eGhpYv369ampqAq+3bNmiiy++WD//+c8dHBWOBf83jAFlZWUaPXq0Fi5cqMcee8zp4SCEhISEkMtGwD2eeOIJde3aVYsWLQpsy83NdXBECKVDhw5Br2fNmqWTTz5Z559/vkMjwrHio58YMH78eF1++eW66KKLnB4KmrFt2zZ17txZPXr00OjRo5Wfn+/0kNDI8uXLNWTIEP385z9Xdna2Tj/9dC1cuNDpYaEFVVVVWrJkiW699VYWro1gBJUot2zZMn366aeaOXOm00NBM8466ywtXrxYf/vb3zR//nzt3LlT5557rkpLS50eGhrYsWOH5s+fr549e+q9997Tr3/9a91999165ZVXnB4amvHHP/5RBw8e1M033+z0UHAM6EwbxXbt2qUhQ4bogw8+CMxNGTFihAYNGqS5c+c6Ozg06+DBg+rWrZvmzJmjcePGOT0c1ElKStKQIUO0Zs2awLa7775b69ev19q1ax0cGZpz6aWXKikpSX/+85+dHgqOAU9UotiGDRtUWFiowYMHKyEhQQkJCVq9erWeffZZJSQkBE04g3tkZGSoV69e+uabb5weChro1KmTTj311KBtffv25WM6l/r222/197//XbfddpvTQ8ExYjJtFLvwwgu1efPmoG233HKL+vTpo0mTJik+Pt6hkaElZWVl2r59u2688Uanh4IGhg8frq+++ipo29dff61u3bo5NCK0ZNGiRcrOztbll1/u9FBwjAgqUczr9ap///5B20444QS1a9euyXY45/7779eVV16pbt26ae/evZo6dari4+N1/fXXOz00NHDvvffq7LPP1owZM/SLX/xC69at04IFC7RgwQKnh4ZGamtrtWjRIo0dO5ZS/yjATxBw2O7du3X99ddr//796tChg8455xz9+9//blJmCWedeeaZevfddzV58mQ9+uijys3N1dy5czV69Ginh4ZG/v73vys/P1+33nqr00NBGDCZFgAAuBaTaQEAgGsRVAAAgGsRVAAAgGsRVAAAgGsRVAAAgGsRVAAAgGsRVAAAgGsRVAAAgGsRVABYcvPNN+uqq65qdv/ixYuVkZFx3MZzNN27d7e8WviIESPk8Xjk8Xi0ceNGW8bl57+Om+4Z4CYEFQBRIdwB6fbbb1dBQYHt62IVFBRYDlJALGGtHwAIITU1VR07drT9Oh07dlR6errt1wEiFU9UgAjy1ltvacCAAUpJSVG7du100UUX6dChQ4H9L730kvr27as2bdqoT58++t3vfhfYl5eXJ4/Ho2XLlunss89WmzZt1L9/f61evTpwTE1NjcaNG6fc3FylpKSod+/eeuaZZ4553H/60580ePBgtWnTRj169NC0adNUXV0d2O/xePTSSy/p6quvVmpqqnr27Knly5cHnWP58uXq2bOn2rRpowsuuECvvPKKPB6PDh48qFWrVumWW25RcXFx4KOURx55JPC95eXluvXWW+X1epWTk9PqFY//7//+T1dccYXS0tLk9Xp17rnnavv27ZLqPxKbMWOGTjzxRGVkZOjRRx9VdXW1/vu//1tZWVnq0qWLFi1a1KprAzHLABAR9u7dayQkJBhz5swxdu7caXz++efGvHnzjNLSUsMwDGPJkiVGp06djLffftvYsWOH8fbbbxtZWVnG4sWLDcMwjJ07dxqSjC5duhhvvfWW8cUXXxi33Xab4fV6jR9++MEwDMOoqqoypkyZYqxfv97YsWOHsWTJEiM1NdV44403AuMYO3as8dOf/rTZcS5atMhIT08PvP7oo4+MtLQ0Y/Hixcb27duN999/3+jevbvxyCOPBI7xj+v11183tm3bZtx9991G27Ztjf379xuGYRg7duwwEhMTjfvvv9/YunWrsXTpUuOkk04yJBlFRUVGZWWlMXfuXCMtLc0oKCgwCgoKAvelW7duRlZWljFv3jxj27ZtxsyZM424uDhj69atzb6H888/35gwYULQtt27dxtZWVnGNddcY6xfv9746quvjN///veB84wdO9bwer3G+PHjja1btxovv/yyIcm49NJLjccff9z4+uuvjenTpxuJiYnGrl27WrxnAOoRVIAIsWHDBkOSkZeXF3L/ySefbLz++utB26ZPn24MGzbMMIz6oDJr1qzA/iNHjhhdunQxnnjiiWavO378eOPaa68NvLYaVC688EJjxowZQce8+uqrRqdOnQKvJRkPP/xw4HVZWZkhyVixYoVhGIYxadIko3///kHneOihhwJBJdR1/bp162aMGTMm8Lq2ttbIzs425s+f3+x7CBVUJk+ebOTm5hpVVVUhv2fs2LFGt27djJqamsC23r17G+eee27gdXV1tXHCCScYS5cuDfpeggrQPOaoABFi4MCBuvDCCzVgwABdeumluuSSS/Szn/1MmZmZOnTokLZv365x48bp9ttvD3xPdXV1k/kPw4YNC/x3QkKChgwZoi+//DKwbd68efr973+v/Px8VVRUqKqqSoMGDWr1uDdt2qR//etfevzxxwPbampqdPjwYZWXlys1NVWSdNpppwX2n3DCCUpLS1NhYaEk6auvvtKZZ54ZdN6hQ4eaHkPDc3s8HnXs2DFwbrM2btyoc889V4mJic0e069fP8XF1X+ifuKJJwZNxo2Pj1e7du0sXxuIZQQVIELEx8frgw8+0Jo1a/T+++/rueee00MPPaRPPvkk8Mt+4cKFOuuss5p8n1nLli3T/fffr6eeekrDhg2T1+vVk08+qU8++aTV4y4rK9O0adN0zTXXNNnXpk2bwH83DgAej0e1tbWtvm5D4Th3SkpKq65j5/sCYgFBBYggHo9Hw4cP1/DhwzVlyhR169ZN7777riZOnKjOnTtrx44dGj16dIvn+Pe//63zzjtPku+Jy4YNG3TnnXdKkv71r3/p7LPP1v/7f/8vcLx/smhrDR48WF999ZVOOeWUVp+jd+/e+utf/xq0bf369UGvk5KSVFNT0+prHM1pp52mV155RUeOHGnxqQqA8CKoABHik08+0cqVK3XJJZcoOztbn3zyifbt26e+fftKkqZNm6a7775b6enpuuyyy1RZWan//Oc/Kioq0sSJEwPnmTdvnnr27Km+ffvq6aefVlFRkW699VZJUs+ePfWHP/xB7733nnJzc/Xqq69q/fr1ys3NbfW4p0yZoiuuuEI5OTn62c9+pri4OG3atElbtmzRY489Zuocv/zlLzVnzhxNmjRJ48aN08aNG7V48WJJvvAm+Rq7lZWVaeXKlRo4cKBSU1MDT5rC4c4779Rzzz2nUaNGafLkyUpPT9e///1vDR06VL179w7bdQAEozwZiBBpaWn66KOP9JOf/ES9evXSww8/rKeeekojR46UJN1222166aWXtGjRIg0YMEDnn3++Fi9e3CRkzJo1S7NmzdLAgQP18ccfa/ny5Wrfvr0kXyC45pprdN111+mss87S/v37g56utMall16qv/zlL3r//fd15pln6kc/+pGefvppdevWzfQ5cnNz9dZbb+mdd97Raaedpvnz5+uhhx6SJCUnJ0uSzj77bP3qV7/Sddddpw4dOmj27NnHNO7G2rVrp3/84x8qKyvT+eefrzPOOEMLFy7k6QpgM49hGIbTgwBgv7y8POXm5uqzzz47psmxbvH444/rhRde0K5du8J+7hEjRmjQoEHHrWPs4sWLdc899+jgwYPH5XpAJOGJCoCI8Lvf/U7r16/Xjh079Oqrr+rJJ5/U2LFjbb1e27ZttXnzZtuuIUlt27bVr371K1uvAUQy5qgAiAjbtm3TY489pgMHDignJ0f33XefJk+ebMu1XnvtNVVUVEiScnJybLmGn3/RQyvVWUAs4aMfAADgWnz0AwAAXIugAgAAXIugAgAAXIugAgAAXIugAgAAXIugAgAAXIugAgAAXIugAgAAXOv/A33qqGwqcTBtAAAAAElFTkSuQmCC", "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_decision_regions(X, y, classifier=ppn)\n", "plt.xlabel('sepal length [cm]')\n", "plt.ylabel('petal length [cm]')\n", "plt.legend(loc='upper left')\n", "\n", "# plt.savefig('images/02_08.png', dpi=300)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "WEdYJwaXqALF" }, "source": [ "<br>" ] }, { "cell_type": "markdown", "metadata": { "id": "VwzhuiRWqALF" }, "source": [ "# 2.3 적응형 선형 뉴런과 학습의 수렴" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 451 }, "execution": { "iopub.execute_input": "2021-10-23T05:49:16.468172Z", "iopub.status.busy": "2021-10-23T05:49:16.467421Z", "iopub.status.idle": "2021-10-23T05:49:16.471404Z", "shell.execute_reply": "2021-10-23T05:49:16.470761Z" }, "id": "H3SPVRtIqALF", "outputId": "ed24d50f-2f48-4090-c8d9-787c427c56c9" }, "outputs": [ { "data": { "text/html": [ "<img src=\"https://git.io/JtIbn\" width=\"600\"/>" ], "text/plain": [ "<IPython.core.display.Image object>" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Image(url='https://git.io/JtIbn', width=600)" ] }, { "cell_type": "markdown", "metadata": { "id": "T_QZBd5q-Iwq" }, "source": [ "아달린의 활성화 함수 : $\\phi(z) = z$" ] }, { "cell_type": "markdown", "metadata": { "id": "RqhqlofW-Iwq" }, "source": [ "<br>" ] }, { "cell_type": "markdown", "metadata": { "id": "GhERmxUDqALF" }, "source": [ "## 2.3.1 경사 하강법으로 비용 함수 최소화" ] }, { "cell_type": "markdown", "metadata": { "id": "EqUN1U7m-Iwq" }, "source": [ "목적 함수 == 비용 함수 == 손실 함수\n", "\n", "$J(\\boldsymbol{w})=\\dfrac{1}{2}\\sum_i\\left(y^{(i)}-\\phi(z^{(i)})\\right)^2$" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 276 }, "execution": { "iopub.execute_input": "2021-10-23T05:49:16.476935Z", "iopub.status.busy": "2021-10-23T05:49:16.476018Z", "iopub.status.idle": "2021-10-23T05:49:16.479602Z", "shell.execute_reply": "2021-10-23T05:49:16.478970Z" }, "id": "tJS1Uk5ZqALF", "outputId": "24c2fe8b-fec2-4f7f-a334-a344232bc28e", "scrolled": true }, "outputs": [ { "data": { "text/html": [ "<img src=\"https://git.io/JtIbc\" width=\"500\"/>" ], "text/plain": [ "<IPython.core.display.Image object>" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Image(url='https://git.io/JtIbc', width=500)" ] }, { "cell_type": "markdown", "metadata": { "id": "3gqRpFrG-Iwr" }, "source": [ "$\\\n", "\\begin{align*}\n", "\\dfrac{\\partial J}{\\partial w_j}\\\n", "&=\\dfrac{\\partial}{\\partial w_j}\\dfrac{1}{2}\\sum_i\\left(y^{(i)}-\\phi(z^{(i)})\\right)^2 \\\\\n", "&=\\dfrac{1}{2}\\dfrac{\\partial}{\\partial w_j}\\sum_i\\left(y^{(i)}-\\phi(z^{(i)})\\right)^2 \\\\\n", "&=\\dfrac{1}{2}\\sum_i2\\left(y^{(i)}-\\phi(z^{(i)})\\right)\\dfrac{\\partial}{\\partial w_j}\\left(y^{(i)}-\\phi(z^{(i)})\\right) \\\\\n", "&=\\sum_i\\left(y^{(i)}-\\phi(z^{(i)})\\right)\\dfrac{\\partial}{\\partial w_j}\\left(y^{(i)}-\\sum(w_kx_k^{(i)})\\right) \\\\\n", "&=\\sum_i\\left(y^{(i)}-\\phi(z^{(i)})\\right)\\left(-x_j^{(i)}\\right) \\\\\n", "&=-\\sum_i\\left(y^{(i)}-\\phi(z^{(i)})\\right)x_j^{(i)} \\\\\n", "\\end{align*}\n", "$\n", "\n", "$\\mathit\\Delta w_j=-\\eta\\dfrac{\\partial J}{\\partial w_j}=\\eta\\sum_i\\left(y^{(i)}-\\phi(z^{(i)})\\right)x_j^{(i)}$\n", "\n", "$\\boldsymbol{w} := \\boldsymbol{w} + \\mathit\\Delta \\boldsymbol{w}$" ] }, { "cell_type": "markdown", "metadata": { "id": "csOcD18f-Iwr" }, "source": [ "<br>" ] }, { "cell_type": "markdown", "metadata": { "id": "tJ0OEDXpqALG" }, "source": [ "## 2.3.2 파이썬으로 아달린 구현하기" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T05:49:16.490203Z", "iopub.status.busy": "2021-10-23T05:49:16.488420Z", "iopub.status.idle": "2021-10-23T05:49:16.492385Z", "shell.execute_reply": "2021-10-23T05:49:16.492812Z" }, "id": "r_X9q8k_qALG" }, "outputs": [], "source": [ "class AdalineGD(object):\n", " \"\"\"적응형 선형 뉴런 분류기\n", "\n", " 매개변수\n", " ------------\n", " eta : float\n", " 학습률 (0.0과 1.0 사이)\n", " n_iter : int\n", " 훈련 데이터셋 반복 횟수\n", " random_state : int\n", " 가중치 무작위 초기화를 위한 난수 생성기 시드\n", "\n", " 속성\n", " -----------\n", " w_ : 1d-array\n", " 학습된 가중치\n", " cost_ : list\n", " 에포크마다 누적된 비용 함수의 제곱합\n", "\n", " \"\"\"\n", " def __init__(self, eta=0.01, n_iter=50, random_state=1):\n", " self.eta = eta\n", " self.n_iter = n_iter\n", " self.random_state = random_state\n", "\n", " def fit(self, X, y):\n", " \"\"\"훈련 데이터 학습\n", "\n", " 매개변수\n", " ----------\n", " X : array-like, shape = [n_samples, n_features]\n", " n_samples 개의 샘플과 n_features 개의 특성으로 이루어진 훈련 데이터\n", " y : array-like, shape = [n_samples]\n", " 타깃값\n", "\n", " 반환값\n", " -------\n", " self : object\n", "\n", " \"\"\"\n", " rgen = np.random.RandomState(self.random_state)\n", " self.w_ = rgen.normal(loc=0.0, scale=0.01, size=1 + X.shape[1])\n", " self.cost_ = []\n", "\n", " for i in range(self.n_iter):\n", " net_input = self.net_input(X)\n", " # 이 코드의 활성화 함수는 항등 함수(identity function)이기 때문에\n", " # 아무런 효과가 없습니다.\n", " # 이 대신 `output = self.net_input(X)`로 바로 쓸 수 있습니다.\n", " # 이 활성화 함수는 개념적인 목적을 위해 만들었습니다.\n", " # (잠시 후에 보게 될) 로지스틱 회귀의 경우 이 함수를 시그모이드 함수로\n", " # 바꾸어 로지스틱 회귀 분류기를 구현합니다.\n", " output = self.activation(net_input)\n", " errors = (y - output)\n", " self.w_[1:] += self.eta * X.T.dot(errors)\n", " self.w_[0] += self.eta * errors.sum()\n", " cost = (errors**2).sum() / 2.0\n", " self.cost_.append(cost)\n", " return self\n", "\n", " def net_input(self, X):\n", " \"\"\"최종 입력 계산\"\"\"\n", " return np.dot(X, self.w_[1:]) + self.w_[0]\n", "\n", " def activation(self, X):\n", " \"\"\"선형 활성화 계산\"\"\"\n", " return X\n", "\n", " def predict(self, X):\n", " \"\"\"단위 계단 함수를 사용하여 클래스 레이블을 반환합니다\"\"\"\n", " return np.where(self.activation(self.net_input(X)) >= 0.0, 1, -1)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 410 }, "execution": { "iopub.execute_input": "2021-10-23T05:49:16.536447Z", "iopub.status.busy": "2021-10-23T05:49:16.535626Z", "iopub.status.idle": "2021-10-23T05:49:16.722476Z", "shell.execute_reply": "2021-10-23T05:49:16.722981Z" }, "id": "duwyjN71qALG", "outputId": "b328e63d-bb21-42ed-f1ac-d6c06855ca19" }, "outputs": [ { "data": { "image/png": "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smHDBiQkJKBFixbihCIiohKJbQ4VB7yTREQ4efIkxo0bh549e8LOzg6hoaFYvXo1vL29cenSpTwnoiMiIiootjlUHHDgBiJCxYoV4ebmhkWLFiEhIQG2trbo168fZs+ezcaKiIj0im0OFQe8k0RERERERPQGPpNERERERET0BhZJREREREREbyjxzySp1Wo8ffoUVlZWHzRBGRERFYwgCEhOToarqyukUl6TexPbJiIiceS7bRJrgiZBEISlS5cK1atXF6ysrAQrKyuhYcOGwoEDBzTrX758KYwYMUKwtbUVLCwshG7dugkxMTEF+o5Hjx69c6I2vvjiiy++Cvf16NEjfTcfxR7bJr744osvcV/va5tEHbhh3759kMlkqFy5MgRBwPr16/Hrr7/i8uXLqFatGoYPH45//vkH69atg0KhwKhRoyCVSnH27Nl8f4dSqUSZMmXw6NEjWFtbF+LfhoiI3pSUlAQ3NzckJiZCoVCIHcegsG0iIhJHftsmgxvdztbWFr/++it69OgBBwcHbNmyBT169AAA3L59G97e3ggKCkLDhg3ztb+kpCQoFAoolUo2RERERYjn37zx2BARiSO/51+D6SSuUqmwdetWpKamolGjRrh06RKysrLQunVrzTZeXl4oX748goKC8txPRkYGkpKStF5ERERERET5JXqRdP36dVhaWsLU1BTDhg3D7t274ePjg5iYGJiYmKBMmTJa2zs5OSEmJibP/c2aNQsKhULzcnNzK+S/ARERERERlSSiF0lVq1bFlStXcOHCBQwfPhz9+/fHzZs3dd7f5MmToVQqNa9Hjx7pMS0REREREZV0og8BbmJiAk9PTwBA3bp1ERISgoULF6J3797IzMxEYmKi1t2kZ8+ewdnZOc/9mZqawtTUtLBjExERERFRCSX6naS3qdVqZGRkoG7dujA2NsaxY8c06+7cuYOoqCg0atRIxIRERERERFSSiXonafLkyWjfvj3Kly+P5ORkbNmyBSdPnsS///4LhUKBwYMHY/z48bC1tYW1tTW+/vprNGrUKN8j2xERERERERWUqEVSbGws+vXrh+joaCgUCtSoUQP//vsv2rRpAwBYsGABpFIpunfvjoyMDLRr1w5Lly4VMzIRUamgUgsIjkxAbHI6HK3k8HO3hUwqETsWgf82RERFweDmSdI3zkVBRFQwh8KiMW3f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", "text/plain": [ "<Figure size 1000x400 with 2 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(nrows=1, ncols=2, figsize=(10, 4))\n", "\n", "ada1 = AdalineGD(n_iter=10, eta=0.01).fit(X, y)\n", "ax[0].plot(range(1, len(ada1.cost_) + 1), np.log10(ada1.cost_), marker='o')\n", "ax[0].set_xlabel('Epochs')\n", "ax[0].set_ylabel('log(Sum-squared-error)')\n", "ax[0].set_title('Adaline - Learning rate 0.01')\n", "\n", "ada2 = AdalineGD(n_iter=10, eta=0.0001).fit(X, y)\n", "ax[1].plot(range(1, len(ada2.cost_) + 1), ada2.cost_, marker='o')\n", "ax[1].set_xlabel('Epochs')\n", "ax[1].set_ylabel('Sum-squared-error')\n", "ax[1].set_title('Adaline - Learning rate 0.0001')\n", "\n", "# plt.savefig('images/02_11.png', dpi=300)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 261 }, "execution": { "iopub.execute_input": "2021-10-23T05:49:16.728868Z", "iopub.status.busy": "2021-10-23T05:49:16.728186Z", "iopub.status.idle": "2021-10-23T05:49:16.732377Z", "shell.execute_reply": "2021-10-23T05:49:16.731441Z" }, "id": "4w5q2QKqqALH", "outputId": "521781cb-885a-4c25-854b-a7ef6c77b12e" }, "outputs": [ { "data": { "text/html": [ "<img src=\"https://git.io/JtIb4\" width=\"700\"/>" ], "text/plain": [ "<IPython.core.display.Image object>" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Image(url='https://git.io/JtIb4', width=700)" ] }, { "cell_type": "markdown", "metadata": { "id": "kq7qlF0A-Iws" }, "source": [ "<br>" ] }, { "cell_type": "markdown", "metadata": { "id": "6u0jOIB3qALH" }, "source": [ "## 2.3.3 특성 스케일을 조정하여 경사 하강법 결과 향상시키기" ] }, { "cell_type": "markdown", "metadata": { "id": "Rw3sByh0-Iws" }, "source": [ "표준화(standardization) : $\\boldsymbol{x}'_j=\\dfrac{\\boldsymbol{x}_j-\\mu_j}{\\sigma_j}$" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 346 }, "execution": { "iopub.execute_input": "2021-10-23T05:49:16.739316Z", "iopub.status.busy": "2021-10-23T05:49:16.738133Z", "iopub.status.idle": "2021-10-23T05:49:16.742617Z", "shell.execute_reply": "2021-10-23T05:49:16.743133Z" }, "id": "PZ5nowNeqALI", "outputId": "808bb6e9-d3b6-4ed7-e452-9e28f86ee910", "scrolled": true }, "outputs": [ { "data": { "text/html": [ "<img src=\"https://git.io/JtIbB\" width=\"700\"/>" ], "text/plain": [ "<IPython.core.display.Image object>" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Image(url='https://git.io/JtIbB', width=700)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T05:49:16.750242Z", "iopub.status.busy": "2021-10-23T05:49:16.749194Z", "iopub.status.idle": "2021-10-23T05:49:16.752265Z", "shell.execute_reply": "2021-10-23T05:49:16.751380Z" }, "id": "nEBXmUTkqALI" }, "outputs": [], "source": [ "# 특성을 표준화합니다.\n", "X_std = np.copy(X)\n", "X_std[:, 0] = (X[:, 0] - X[:, 0].mean()) / X[:, 0].std()\n", "X_std[:, 1] = (X[:, 1] - X[:, 1].mean()) / X[:, 1].std()" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 957 }, "execution": { "iopub.execute_input": "2021-10-23T05:49:16.764833Z", "iopub.status.busy": "2021-10-23T05:49:16.759885Z", "iopub.status.idle": "2021-10-23T05:49:17.130905Z", "shell.execute_reply": "2021-10-23T05:49:17.131810Z" }, "id": "OGiKd5kvqALI", "outputId": "3b79faae-8710-4831-ec9d-2d6e59b1198b" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHWCAYAAAD6oMSKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABeRUlEQVR4nO3dd3gUVdsG8HsTSLIhXRIghjS6gqFXaYJi+VCKBQVMsCFSRaW8IhBAULCAiCDqS5RiLBDEgspLVZEiTZCEmhhKIIH0QkJ2z/fHsks22YSd2ZadvX/XtZfs1GdmYng4c55zVEIIASIiIiJyem6ODoCIiIiIrIOJHREREZFCMLEjIiIiUggmdkREREQKwcSOiIiISCGY2BEREREpBBM7IiIiIoVgYkdERESkEEzsiIiIiBSCiR2RAiUkJEClUiEtLU3yvnFxcYiMjDRaplKpMHv2bKvE5ipmz54NlUpltCwyMhJxcXGOCYiIXAITO6Ja7KOPPoJKpUKXLl0cHYrTyMzMxLRp09CmTRv4+PjAy8sLTZs2xahRo/D77787Ojyb++mnnyQl4X369IFKpYJKpYKbmxv8/PzQokULjBw5Elu2bLFdoA5UXFyM2bNnY8eOHY4Ohcjq6jg6ACKq3tq1axEZGYl9+/bh9OnTaNq0qUPiKCkpQZ06tf/Xxb59+/DQQw+hoKAAw4YNw4svvghPT0+kpqZi48aNSEhIwM6dO9GrVy+HxHfixAm4udn239M//fQTli1bJim5CwsLw4IFCwAARUVFOH36NDZs2IA1a9bg8ccfx5o1a1C3bl0bRWx/xcXFiI+PB6BLbImUpPb/piZyUampqdi9ezc2bNiA0aNHY+3atZg1a5ZDYvHy8nLIeaXIycnBoEGDUKdOHRw+fBgtW7Y0Wj9v3jwkJiZCrVbXeJyioiLUq1fPJjF6enra5LiW8vf3x4gRI4yWvfXWW5gwYQI++ugjREZG4u2333ZQdEQkBV/FEtVSa9euRWBgIB566CE8+uijWLt2rcnt/vnnH9xzzz1Qq9UICwvDvHnzoNVqq2z33Xff4aGHHkJoaCg8PT3RpEkTzJ07FxqN5paxVO5jp+8/dvr0acTFxSEgIAD+/v4YNWoUiouLq+y/Zs0adOjQAWq1GkFBQRg2bBjOnTtn/s0ww4oVK5CRkYHFixdXSer01/Dkk0+iU6dOVa7j+PHjeOqppxAYGIi7774bAPD3338jLi4O0dHR8PLyQsOGDfHMM8/g6tWrVY79+++/o1OnTvDy8kKTJk3w8ccfm4zRVB+73NxcTJo0CY0bN4anpyeaNm2Kt99+2+gZpqWlQaVS4Z133sHKlSvRpEkTeHp6olOnTti/f79hu7i4OCxbtsxwvfqPHO7u7vjggw9wxx134MMPP0ReXp7RenOe6alTpzB06FA0bNgQXl5eCAsLw7Bhw0weq3PnzvD29kZgYCB69eqFX3/91WibzZs3o2fPnqhXrx58fX3x0EMP4Z9//jHaJi4uDj4+Prhw4QIGDRoEHx8fBAcH49VXXzX8nKelpSE4OBgAEB8fb7hH7ENKSsEWO6Jaau3atRgyZAg8PDzw5JNPYvny5di/f79RYnLp0iX07dsX5eXlmDZtGurVq4eVK1eabJVKSEiAj48PJk+eDB8fH2zbtg0zZ85Efn4+Fi1aJCvGxx9/HFFRUViwYAEOHjyITz/9FCEhIUatO2+++SbeeOMNPP7443juueeQlZWFpUuXolevXjh06BACAgJknbuy77//Hmq1GkOGDJG872OPPYZmzZph/vz5EEIAALZs2YKzZ89i1KhRaNiwIf755x+sXLkS//zzD/bs2WNImI4ePYr77rsPwcHBmD17NsrLyzFr1iw0aNDgluctLi5G7969ceHCBYwePRrh4eHYvXs3pk+fbkhSK1q3bh0KCgowevRoqFQqLFy4EEOGDMHZs2dRt25djB49GhcvXsSWLVuwevVqyfehMnd3dzz55JN444038Pvvv+Ohhx4CYN4zLSsrw4ABA1BaWorx48ejYcOGuHDhAn744Qfk5ubC398fgC65mj17Nrp37445c+bAw8MDe/fuxbZt23DfffcBAFavXo3Y2FgMGDAAb7/9NoqLi7F8+XLcfffdOHTokFGxj0ajwYABA9ClSxe88847+N///od3330XTZo0wZgxYxAcHIzly5djzJgxGDx4sOHn5a677rL4fhHVCoKIap2//vpLABBbtmwRQgih1WpFWFiYmDhxotF2kyZNEgDE3r17DcsyMzOFv7+/ACBSU1MNy4uLi6ucZ/To0cLb21tcu3bNsCw2NlZEREQYbQdAzJo1y/B91qxZAoB45plnjLYbPHiwuO222wzf09LShLu7u3jzzTeNtjt69KioU6dO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", "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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Pj311FOnvWbfvn1V/uFTpkzRVVddpYSEBOXm5mrOnDlaunSpvv76azkcDo0bN06TJk1SVFSUIiIidO+99yopKanKK2LhHrvN0J2XtdTTX/ysWSvT9Puezas8WgsAAKzj1jV2H3/8se64447Tjt9222365JNPqvw+mZmZuuOOO9SuXTsNHjxY69at09dff60rrrhCkvTSSy/p2muv1ciRI9W/f3/FxsZq7ty57kRGNd3Us7lCA+zafihPK3YesToOAACoArfuFRscHKyVK1eqTZs2lY6vXLmyWgsp3nnnnXOeDwoK0j//+U/985//dCcmaiAiyF839Wyu2St3650VaerXponVkQAAwHm4VewmTpyo8ePHKyUlRb169ZIkrVmzRrNmzdJjjz3m0YCwzp2XtdS7q3Zraeph7czM04XR3ncvYAAA8Cu3it3DDz+sVq1a6eWXX9Z7770nSbrooos0e/Zs3XTTTR4NCOu0aByqKy6K0TdbD2n2yjQ9c0NnqyMBAIBzqPEtxbwdtxSrmdW/HNXNb65WkL9NyQ8PVmRogNWRAABoUOrklmLZ2dl6++239cgjjygrK0tS6f51Bw6wPYYv6Z0YpY7xESoodumDdXutjgMAAM7BrWK3adMmtW3bVs8995xeeOEFZWdnS5Lmzp2rKVOmeDIfLGYYhu7qkyhJ+veqPSoucVmcCAAAnI1bxW7SpEm68847tWPHjkqrYK+++motX77cY+HgHa7tGqcm4YHKyCnQl5vTrY4DAADOwq1it27dOv3pT3867XjTpk2VkZFR41DwLoF+dt1+aQtJ0qwVafLxyzIBAKi33Cp2gYGBysnJOe349u3b1aQJ+535otG9ExTgZ9PG/U6l7D1mdRwAAHAGbhW76667Tk8++aSKi4sllV6HtXfvXj300EMaOXKkRwPCOzQOC9QNFzeVJL2zIs3iNAAA4EzcKnYvvvii8vLyFB0drRMnTmjAgAG68MILFR4ermeeecbTGeEl7upbuohi4ZYM7T923OI0AADgt9zaoNjhcGjRokVauXKlNm7cqLy8PHXr1k1DhgzxdD54kXax4ep74QVasfOI/rVqtx69poPVkQAAQAXVLnbFxcUKDg7Whg0b1KdPH/Xp06c2csFLjeubqBU7j+jDdft0/5C2Cgt0698GAACgFlR7Ktbf318JCQkqKSmpjTzwcgPa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cjqdatKkiebMmaNRo0ZJkrZt26aLLrpIycnJuvTSS8/7nhQ73/HMF1v11vdpiokI1DcTB7BKFgDQIFSny7i1Knb58uXnPN+/f3933lZOp1OSyvfCW79+vYqLizVkyJDy17Rv314JCQlnLXaFhYUqLCwsf841f77jwSvbafHPmfrlSL6eXLBVL97EqmwAACpyq9gNHDjwtGMV97IrKSmp9nu6XC5NnDhRffr0UadOnSRJGRkZCggIUKNGjSq9NiYmRhkZGWd8n+nTp2vatGnV/vnwfkH+dr3wuy4a9XqyPknZr2u6xDIlCwBABW4tnjh27FilR2ZmphYuXKiePXvqm2++cSvIhAkTtGXLFn344YdufX+ZKVOmyOl0lj/27dtXo/eDd+neIkrj+iRKYpUsAAC/5daIncPhOO3YFVdcoYCAAE2aNEnr16+v1vvdc889WrBggZYvX65mzZqVH4+NjVVRUZGys7MrjdodOnRIsbGxZ3yvwMBABQYGVuvno36ZPLSdvttWOiX71Bdb9bffMSULAIDk5ojd2cTExJy2Xcm5mKape+65R/PmzdN3332nxMTESue7d+8uf39/LV68uPxYamqq9u7dq6SkJI/lRv0S5G/X86O6yDCk/67fr++2sf0NAACSmyN2mzZtqvTcNE2lp6fr2Wef1cUXX1zl95kwYYLmzJmjzz77TOHh4eXXzTkcDgUHB8vhcGjcuHGaNGmSoqKiFBERoXvvvVdJSUlVWhEL39WjZemU7Nsr0jRl7mZ980CUHMGskgUANGxubXdis9lkGIZ++62XXnqpZs2apfbt21fth1dYcFHR7Nmzdeedd0oq3aD4wQcf1AcffKDCwkINHTpUr7322lmnYn+L7U5814miEl39yvdKO5Kv33VvpheYkgUA+KBa38duz549lZ7bbDY1adJEQUFB1X2rWkex820/7M7S795IlmlKs+/sqUHto62OBACAR1Wny1TrGrvk5GQtWLBALVq0KH+UbSackJCgP/7xj5X2kANqW4+WUbqr4irZE6ySBQA0XNUqdk8++aR++umn8uebN2/WuHHjNGTIED388MOaP3++pk+f7vGQwLlMvrKdEi8IVUZOgZ7mXrIAgAasWsVuw4YNGjx4cPnzDz/8UL1799Zbb72lSZMm6ZVXXtFHH33k8ZDAuQQH2PXCqVWyH6/fryWpmVZH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", "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ada_gd = AdalineGD(n_iter=15, eta=0.01)\n", "ada_gd.fit(X_std, y)\n", "\n", "plot_decision_regions(X_std, y, classifier=ada_gd)\n", "plt.title('Adaline - Gradient Descent')\n", "plt.xlabel('sepal length [standardized]')\n", "plt.ylabel('petal length [standardized]')\n", "plt.legend(loc='upper left')\n", "plt.tight_layout()\n", "# plt.savefig('images/02_14_1.png', dpi=300)\n", "plt.show()\n", "\n", "plt.plot(range(1, len(ada_gd.cost_) + 1), ada_gd.cost_, marker='o')\n", "plt.xlabel('Epochs')\n", "plt.ylabel('Sum-squared-error')\n", "\n", "plt.tight_layout()\n", "# plt.savefig('images/02_14_2.png', dpi=300)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "l9aKnN4fqALJ" }, "source": [ "<br>" ] }, { "cell_type": "markdown", "metadata": { "id": "hj-m4ewrqALJ" }, "source": [ "## 2.3.4 대규모 머신 러닝과 확률적 경사 하강법" ] }, { "cell_type": "markdown", "metadata": { "id": "exqIOEeO-Iws" }, "source": [ "배치 경사 하강법 : $\\mathit\\Delta \\boldsymbol{w}=\\eta\\sum_i\\left(y^{(i)}-\\phi(z^{(i)})\\right)\\boldsymbol{x}^{(i)}$\n", "\n", "확률적 경사 하강법 : $\\mathit\\Delta \\boldsymbol{w}=\\eta\\left(y^{(i)}-\\phi(z^{(i)})\\right)\\boldsymbol{x}^{(i)}$" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T05:49:17.150367Z", "iopub.status.busy": "2021-10-23T05:49:17.148625Z", "iopub.status.idle": "2021-10-23T05:49:17.151833Z", "shell.execute_reply": "2021-10-23T05:49:17.152692Z" }, "id": "Fmyd49AbqALJ" }, "outputs": [], "source": [ "class AdalineSGD(object):\n", " \"\"\"ADAptive LInear NEuron 분류기\n", "\n", " Parameters\n", " ------------\n", " eta : float\n", " 학습률 (0.0과 1.0 사이)\n", " n_iter : int\n", " 훈련 데이터셋 반복 횟수\n", " shuffle : bool (default: True)\n", " True로 설정하면 같은 반복이 되지 않도록 에포크마다 훈련 데이터를 섞습니다\n", " random_state : int\n", " 가중치 무작위 초기화를 위한 난수 생성기 시드\n", "\n", " Attributes\n", " -----------\n", " w_ : 1d-array\n", " 학습된 가중치\n", " cost_ : list\n", " 모든 훈련 샘플에 대해 에포크마다 누적된 평균 비용 함수의 제곱합\n", "\n", " \"\"\"\n", " def __init__(self, eta=0.01, n_iter=10, shuffle=True, random_state=None):\n", " self.eta = eta\n", " self.n_iter = n_iter\n", " self.w_initialized = False\n", " self.shuffle = shuffle\n", " self.random_state = random_state\n", "\n", " def fit(self, X, y):\n", " \"\"\"훈련 데이터 학습\n", "\n", " Parameters\n", " ----------\n", " X : {array-like}, shape = [n_samples, n_features]\n", " n_samples 개의 샘플과 n_features 개의 특성으로 이루어진 훈련 데이터\n", " y : array-like, shape = [n_samples]\n", " 타깃 벡터\n", "\n", " 반환값\n", " -------\n", " self : object\n", "\n", " \"\"\"\n", " self._initialize_weights(X.shape[1])\n", " self.cost_ = []\n", " for i in range(self.n_iter):\n", " if self.shuffle:\n", " X, y = self._shuffle(X, y)\n", " cost = []\n", " for xi, target in zip(X, y):\n", " cost.append(self._update_weights(xi, target))\n", " avg_cost = sum(cost) / len(y)\n", " self.cost_.append(avg_cost)\n", " return self\n", "\n", " def partial_fit(self, X, y):\n", " \"\"\"가중치를 다시 초기화하지 않고 훈련 데이터를 학습합니다\"\"\"\n", " if not self.w_initialized:\n", " self._initialize_weights(X.shape[1])\n", " if y.ravel().shape[0] > 1:\n", " for xi, target in zip(X, y):\n", " self._update_weights(xi, target)\n", " else:\n", " self._update_weights(X, y)\n", " return self\n", "\n", " def _shuffle(self, X, y):\n", " \"\"\"훈련 데이터를 섞습니다\"\"\"\n", " r = self.rgen.permutation(len(y))\n", " return X[r], y[r]\n", "\n", " def _initialize_weights(self, m):\n", " \"\"\"랜덤한 작은 수로 가중치를 초기화합니다\"\"\"\n", " self.rgen = np.random.RandomState(self.random_state)\n", " self.w_ = self.rgen.normal(loc=0.0, scale=0.01, size=1 + m)\n", " self.w_initialized = True\n", "\n", " def _update_weights(self, xi, target):\n", " \"\"\"아달린 학습 규칙을 적용하여 가중치를 업데이트합니다\"\"\"\n", " output = self.activation(self.net_input(xi))\n", " error = (target - output)\n", " self.w_[1:] += self.eta * xi.dot(error)\n", " self.w_[0] += self.eta * error\n", " cost = 0.5 * error**2\n", " return cost\n", "\n", " def net_input(self, X):\n", " \"\"\"입력 계산\"\"\"\n", " return np.dot(X, self.w_[1:]) + self.w_[0]\n", "\n", " def activation(self, X):\n", " \"\"\"선형 활성화 계산\"\"\"\n", " return X\n", "\n", " def predict(self, X):\n", " \"\"\"단위 계단 함수를 사용하여 클래스 레이블을 반환합니다\"\"\"\n", " return np.where(self.activation(self.net_input(X)) >= 0.0, 1, -1)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 957 }, "execution": { "iopub.execute_input": "2021-10-23T05:49:17.166778Z", "iopub.status.busy": "2021-10-23T05:49:17.163351Z", "iopub.status.idle": "2021-10-23T05:49:17.626666Z", "shell.execute_reply": "2021-10-23T05:49:17.627707Z" }, "id": "CL_zIPSEqALJ", "outputId": "bed5464f-8870-4ef7-a05f-6507cba3024c" }, "outputs": [ { "data": { "image/png": "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1dXVYPuFCxcaDMVj6s97STFfvXrVaH/L3NxcXYWuFNox+EydeaI0s2bNwtatW/HSSy/pui507doVPj4+mDFjhtGf7ZSUFABATk4O7t69q7euZs2aUKlUup+Np556CiqVCjNnzjTYVnvvmzZtipo1a+KTTz7RvRY2dj6pSvr/jagottiRLG3evBmZmZl47rnnjK5v1aoVAgMDsWbNGrz00kt4//33sWrVKjz99NMYM2aMbviH8PBw/Pfff7r92rRpA39/f0RHR2P06NFQKBRYtWqV1V+X1KxZEx9//DEmTJiAxMRE9OzZEyqVCgkJCdi4cSOGDh2Kd9991yLnmj17Ng4dOoTevXvjscceA6ApPFi5ciUCAgL0ZmJo2rQpFi9ejI8//hi1atVCUFAQnnzySYwfPx7ffvstunXrhtGjRyMgIAArVqxAQkIC1q9fDxcXze+Ur776KlauXIlx48bhwIEDeOKJJ5CdnY0//vgDw4cPx/PPP29y3D4+PmjXrh3mzJmDe/fuoXr16ti6datBa2pmZiZCQkLQt29fREVFwdvbG3/88QcOHjyo19LVtGlTfPfddxg3bhyaN28Ob29v9OjRw+i5P//8czz++ONo0qSJrh9iYmIifvnlFxw9erTEmN3c3LBx40Z07doVjz/+OHr37q0bZ+3q1avYvHkzkpKS0L17d5PuwbPPPotVq1bB19cXjzzyCPbt24c//vgDlSpV0tvO1J93YwYOHIjvv/8eb775Jnbu3Im2bduisLAQ8fHx+P777/H777/rWndN1bRpUwCaopF+/frBzc0NPXr0KHXQ5YKCAqxevRqAplXy0qVL2Lx5M/777z907NgRS5cu1W3r4+ODxYsXY+DAgWjSpAn69euHwMBAJCUl4ZdffkHbtm3xxRdf4OzZs+jUqZMu4a5QoQI2btyImzdvol+/frpjzZs3D6+//jqaN2+OV155Bf7+/jh27BhycnKwYsUKuLi4YNmyZejWrRseffRRDB48GNWrV8fVq1exc+dO+Pj46Ia6kXqf/vjjD3z22WcIDg5GZGQkp0kkQzavwyWygR49eghPT0+jQ3RoDRo0SLi5uYlbt24JIYT477//RPv27YWnp6eoXr26mDZtmvjmm28MhmH4+++/RatWrYRSqRTBwcHi/fffF7///rsAIHbu3KnbTspwJykpKXrbaYe0KD78w/r168Xjjz8uKlasKCpWrCjq1asnRowYIc6cOSPp/pTm77//FiNGjBANGjQQvr6+ws3NTYSFhYlBgwaJCxcu6G1748YN0b17d6FSqQQAvWExLly4IPr27Sv8/PyEp6enaNGihfj5558NzpeTkyMmTpwoIiMjhZubm6hataro27ev7lza4UWMDUFR/H5euXJF9OrVS/j5+QlfX1/xwgsviGvXrultl5eXJ9577z0RFRUlVCqVqFixooiKihJffvml3rGzsrLEK6+8Ivz8/AQA3bM0NtyJEJphYrTn9vT0FHXr1hWTJ0826Z6npaWJjz76SDRu3Fh4e3sLd3d3ERoaKvr27as3nIsQD342Dh48aHCc1NRUMXjwYFG5cmXh7e0tunbtKuLj40V4eLjBMBmm/rwXH+5ECCHy8/PF7NmzxaOPPio8PDyEv7+/aNq0qYiJidEbmgWA0WFljMUzbdo0Ub16deHi4vLQoU+io6MFAN3Hy8tLREREiD59+oh169bphtMpbufOnaJr167C19dXeHp6ipo1a4pBgwaJf//9VwghxK1bt8SIESNEvXr1RMWKFYWvr69o2bKl+P777w2OtXnzZtGmTRuhVCqFj4+PaNGihfj222/1tjly5Ijo3bu3qFSpkvDw8BDh4eHixRdfFNu3b9dtI+XvgPj4eNGuXTvdcEQc+oSMUQjBnplEREREcsA+dkREREQywcSOiIiISCaY2BERERHJBBM7IiIiIplgYkdEREQkE0zsiIiIiGTCqQYoVqvVuHbtGlQqFadmISIiIocghEBmZiaCg4N1A7yXxKkSu2vXrhlMUE1ERETkCC5fvoyQkJBSt3GqxE6lUgEA/ve/y/Dy8rFzNEREREQPl5OTgSFDQnV5TGmcKrHTvn718vJhYkdEREQOxZRuZCyeICIiIpIJJnZEREREMsHEjoiIiEgmnKqPnakUikK4uNyDM4yIIgRQWOgO5vhERESOj4mdHgFv7xvw9k7DQ4aJkZWCAhfcuhUJtdrd3qEQERFRGTCxK8Lb+wb8/NJQuXIQ3N29nGIQYyHUuHXrGvLzryMtLQyA/K+ZiIhIrpjY3adQFMLbW5PUqVSV7B2OTfn7ByI39xoyMgqgVrvZOxwiIiIykxO9cCydi8s9uLgA7u5e9g7F5ipUcIdCoUluiYiIyHExsbtP+9bVGV6/GtJcs1NeOhERkYwwsSMiIiKSCSZ2RERERDLBxE6GfvppA3r3fgo1alSCv78Cx48ftXdIREREZAOsirWQy5eTkJubU+J6pdILoaFhNoklOzsbrVo9jp49X8SYMW/Y5JxERERkf0zsLODy5SRE930ayMkueSOvilix7jebJHf9+g0EACQlJVr9XERERFR+MLGzgNzcHCAnGx+5uyPC3cNgfWJ+HqbkZJfaokdERERUVkzsLCjC3QP1PD2Nr8zPt20wRERE5HRYPOHgvv9+DUJCvHWfvXv/tHdIREREZCdssXNw3bo9h2bNWuq+V6tW3Y7REBERkT0xsXNwKpUKKpXK3mEQERFROcDEToZSU+/gypUkXL9+DQBw7twZAEBQUFVUqVLVnqERERGRFTGxs6DE/DxJy61ly5bNGDFisO77a6/1AwB88MFUjB//oU1jISIiItthYmcBSqUX4FURU3KyS65+9aqo2c4GXnllEF55ZZBNzkVERETlBxM7CwgNDcOKdb+Vm5kniIiIyDkxsbMQJm1ERERkbxzHjoiIiEgmmNgRERERyQQTOyIiIiKZYGJHREREJBNM7IiIiIhkgokdERERkUwwsSMiIiKSCSZ2RERERDLBxE4G/v57D/r164H69YPh76/AL79ssndIREREZAdM7CwkKwtISTG+LiVFs95acnKy0aBBFObOXWS9kxAREVG5xynFLCArC/jgAyA1FZg/HwgKerAuORkYOxbw9wdmzwa8vS1//i5duqFLl26WPzARERE5FLbYWUBuriapu35dk8QlJ2uWa5O669c163Nz7RklERERyZ3DJHYzZ85E8+bNoVKpEBQUhJ49e+LMmTP2DgsAEBioaamrVu1BcnfixIOkrlo1zfrAQPvGSURERPLmMInd7t27MWLECPzzzz/Ytm0b7t27h6eeegrZ2dn2Dg2A5vVr0eRu1Cj9pK7o61kiIiIia3CYPna//fab3vfY2FgEBQXh0KFDaNeunZ2i0hcUBPzf/2mSOq3/+z8mdURERGQbDtNiV1x6ejoAICAgwM6RPJCcDMyYob9sxowHfe6IiIiIrMkhEzu1Wo2xY8eibdu2aNCgQYnb5eXlISMjQ+9jLUULJapVAxYu1O9zZ83kLisrC8ePH8Xx40cBAJcuJeD48aO4fDnJeiclIiKicschE7sRI0bgxIkTiIuLK3W7mTNnwtfX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", "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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uHCh277o6GjX74MHD3Y7NnjwYG3evFmStH37dvXt21etWrVyHb/88svldDq1c+dOWSwWHTx4UNddd90Za+jTp4/r91atWikiIkKHDh2SJE2YMEEjR45UVlaWrr/+eo0YMUKXXXbZOX1WAP6DYAcAdWjVqlWtodHGEhoa2qB2gYGBbq8tFoucTqck6YYbbtC+ffv0ySefaNWqVbruuus0ceJEzZkzp9HrBeA7uMcOAM7B2rVra72+6KKLJEkXXXSRvv32W5WUlLiO/9///Z+sVqu6d++u8PBwJSUlKSMj47xqaNeuncaOHau3335b8+bN0yuvvHJe1wPg++ixA4A6lJeXKy8vz21fQECAa4LCsmXLNGDAAF1xxRV65513tH79er322muSpNGjR2v69OkaO3asnn76aR0+fFiTJk3S3XffrdjYWEnS008/rQceeEDt27fXDTfcoKKiIv3f//2fJk2a1KD6nnrqKfXv318XX3yxysvLtWLFClewBNByEewAoA4rV65UfHy8277u3btrx44dkqpnrC5ZskS///3vFR8fr3fffVc9e/aUJIWFhel//ud/9PDDD2vgwIEKCwvTyJEjNXfuXNe1xo4dq7KyMr344ot69NFHFRMTo1tuuaXB9QUFBWnatGnau3evQkNDdeWVV2rJkiWN8MkB+DKLYRiG2UUAgC+xWCz68MMPNWLECLNLAQA33GMHAADgJwh2AAAAfoJ77ADAQ9zBAsBb0WMHAADgJwh2AAAAfoJgBwAA4CcIdgAAAH6CYAcAAOAnCHYAAAB+gmAHAADgJwh2AAAAfoJgBwAA4Cf+P8ZHUEzfv7/uAAAAAElFTkSuQmCC", "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ada_sgd = AdalineSGD(n_iter=15, eta=0.01, random_state=1)\n", "ada_sgd.fit(X_std, y)\n", "\n", "plot_decision_regions(X_std, y, classifier=ada_sgd)\n", "plt.title('Adaline - Stochastic Gradient Descent')\n", "plt.xlabel('sepal length [standardized]')\n", "plt.ylabel('petal length [standardized]')\n", "plt.legend(loc='upper left')\n", "\n", "plt.tight_layout()\n", "# plt.savefig('images/02_15_1.png', dpi=300)\n", "plt.show()\n", "\n", "plt.plot(range(1, len(ada_sgd.cost_) + 1), ada_sgd.cost_, marker='o')\n", "plt.xlabel('Epochs')\n", "plt.ylabel('Average Cost')\n", "\n", "plt.tight_layout()\n", "# plt.savefig('images/02_15_2.png', dpi=300)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "execution": { "iopub.execute_input": "2021-10-23T05:49:17.633926Z", "iopub.status.busy": "2021-10-23T05:49:17.632735Z", "iopub.status.idle": "2021-10-23T05:49:17.638571Z", "shell.execute_reply": "2021-10-23T05:49:17.639385Z" }, "id": "8MIHsvCsqALK", "outputId": "4806c8a6-38c7-41a6-f3f5-269f131d0298" }, "outputs": [ { "data": { "text/plain": [ "<__main__.AdalineSGD at 0x79cc186d2f80>" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ada_sgd.partial_fit(X_std[0, :], y[0])" ] }, { "cell_type": "markdown", "metadata": { "id": "gdf0YMrA-Iwt" }, "source": [ "<br>" ] } ], "metadata": { "anaconda-cloud": {}, "colab": { "name": "ch02.ipynb", "provenance": [] }, "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": 0 }