{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    },
    "tags": []
   },
   "source": [
    "<figure>\n",
    "<img src=\"../imagenes/logo-final-ap.png\"  width=\"80\" height=\"80\" align=\"left\"/> \n",
    "</figure>\n",
    "\n",
    "# <span style=\"color:blue\"><left>Aprendizaje Profundo</left></span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# <span style=\"color:red\"><center>Diplomado en Inteligencia Artificial y Aprendizaje Profundo</center></span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## <span style=\"color:green\"><center>Herramientas Digitales<center></span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### <span style=\"color:black\"><center>Entornos de programación, desarrollo local y en la nube<center></span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    },
    "tags": []
   },
   "source": [
    "## <span style=\"color:blue\">Profesores</span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1. Alvaro  Montenegro, PhD, ammontenegrod@unal.edu.co\n",
    "1. Camilo José Torres Jiménez, Msc, cjtorresj@unal.edu.co\n",
    "1. Daniel  Montenegro, Msc, dextronomo@gmail.com "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    },
    "tags": []
   },
   "source": [
    "## <span style=\"color:blue\">Asesora Medios y Marketing digital</span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "4. Maria del Pilar Montenegro, pmontenegro88@gmail.com\n",
    "5. Jessica López Mejía, jelopezme@unal.edu.co"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    },
    "tags": []
   },
   "source": [
    "## <span style=\"color:blue\">Jefe Jurídica</span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "6. Paula Andrea Guzmán, guzmancruz.paula@gmail.com"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    },
    "tags": []
   },
   "source": [
    "## <span style=\"color:blue\">Coordinador Jurídico</span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "7. David Fuentes, fuentesd065@gmail.com"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    },
    "tags": []
   },
   "source": [
    "## <span style=\"color:blue\">Desarrolladores Principales</span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "8. Dairo Moreno, damoralesj@unal.edu.co\n",
    "9. Joan Castro, jelopezme@unal.edu.co\n",
    "10. Bryan Riveros, briveros@unal.edu.co\n",
    "11. Rosmer Vargas, rovargasc@unal.edu.co\n",
    "12. Venus Puertas, vpuertasg@unal.edu.co"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    },
    "tags": []
   },
   "source": [
    "## <span style=\"color:blue\">Expertos en Bases de Datos</span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "13. Giovvani Barrera, udgiovanni@gmail.com\n",
    "14. Camilo Chitivo, cchitivo@unal.edu.co"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    },
    "tags": []
   },
   "source": [
    "## <span style=\"color:blue\">Contenido</span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1. [Habilidades Necesarias](#Habilidades-Necesarias)\n",
    "1. [Herramientas Básicas](#Herramientas-Básicas)\n",
    "1. [Herramientas de Manipulación de Datos](#Herramientas-de-Manipulación-de-Datos)\n",
    "1. [Herramientas de modelos Estadísticos y Machine Learning](#Herramientas-de-modelos-Estadísticos-y-Machine-Learning)\n",
    "1. [Herramientas de Visualización](#Herramientas-de-Visualización)\n",
    "1. [Herramientas en la Nube](#Herramientas-en-la-Nube)\n",
    "1. [Herramientas IA](#Herramientas-IA)\n",
    "1. [La Localidad y la Nube](#La-Localidad-y-la-Nube)\n",
    "1. [Lenguaje Markdown](#Lenguaje-Markdown)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    },
    "tags": []
   },
   "source": [
    "## <span style=\"color:blue\">Habilidades Necesarias</span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**¿Qué necesito desarrollar para ser un científico de Datos?**\n",
    "\n",
    "<center>\n",
    "    <figure>\n",
    "    <img src=\"../imagenes/skills.jpg\"  width=\"600\" height=\"300\"/> \n",
    "    <figcaption>\n",
    "    <p style=\"text-align:center\"><strong>Los requerimientos para ser un científico de datos</strong></p>\n",
    "    </figcaption>\n",
    "    </figure>\n",
    "</center>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "[[Volver]](#Contenido)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    },
    "tags": []
   },
   "source": [
    "## <span style=\"color:blue\">Herramientas Básicas</span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* [Python](https://www.python.org/)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/python.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>\n",
    "\n",
    "* [Anaconda](https://www.anaconda.com/)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/anaconda.jpg\"  width=\"400\" height=\"300\"/> \n",
    "</figure>\n",
    "\n",
    "* [R](https://www.r-project.org/)\n",
    "\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/R.png\"  width=\"200\" height=\"200\"/> \n",
    "</figure>\n",
    "\n",
    "* [Jupyter Lab](https://jupyter.org/)\n",
    "\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/jupyter_lab.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>\n",
    "\n",
    "* [Jupyter Book](https://jupyterbook.org/en/stable/intro.html)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/jupyter_book.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>\n",
    "\n",
    "* [Docker](https://hub.docker.com/)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/docker.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>\n",
    "\n",
    "### IDEs/Editores de código\n",
    "\n",
    "* [Visual Studio Code](https://code.visualstudio.com/), [Code Insiders](https://code.visualstudio.com/insiders/), [Vscodium](https://vscodium.com/)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/visual-studio.png\"  width=\"100\" height=\"75\"/> \n",
    "<img src=\"../imagenes/visual-studio-insiders.png\"  width=\"100\" height=\"75\"/> \n",
    "<img src=\"../imagenes/vscodium.png\"  width=\"100\" height=\"75\"/> \n",
    "</figure>\n",
    "\n",
    "* [RStudio/Posit](https://www.rstudio.com/)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/rstudio.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>\n",
    "\n",
    "* [Spyder](https://www.spyder-ide.org/)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/spyder.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>\n",
    "\n",
    "* [Atom](https://atom.io/)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/atom.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>\n",
    "\n",
    "* [PyCharm](https://www.jetbrains.com/pycharm/)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/pycharm.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "[[Volver]](#Contenido)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##   <span style=\"color:blue\">Herramientas en la Nube</span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* [Colaboratory](https://colab.research.google.com/?utm_source=scs-index)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/colab.jpg\"  width=\"400\" height=\"300\"/> \n",
    "</figure>\n",
    "\n",
    "* [Git](https://git-scm.com/)\n",
    "<figure>\n",
    "<img src=\"../imagenes/git.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>\n",
    "\n",
    "* [Github](https://github.com)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/GitHub.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>\n",
    "\n",
    "* [GitLab](https://about.gitlab.com/)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/GitLab.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>\n",
    "\n",
    "* [Binder](https://mybinder.org/)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/binder.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>\n",
    "\n",
    "* [nbviewer](https://nbviewer.org/)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/nbviewer.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>\n",
    "\n",
    "* [GitHub & BitBucket HTML Preview](https://htmlpreview.github.io/)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/html_preview.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "[[Volver]](#Contenido)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## <span style=\"color:blue\">Herramientas de Manipulación de Datos</span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* [Pandas](https://pandas.pydata.org/)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/pandas.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>\n",
    "\n",
    "* [Dplyr](https://dplyr.tidyverse.org/)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/dplyr.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>\n",
    "\n",
    "* [Tidyr](https://tidyr.tidyverse.org/)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/tidyr.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "[[Volver]](#Contenido)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## <span style=\"color:blue\">Herramientas de modelos Estadísticos y Machine Learning</span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* [Scikit-Learn](https://scikit-learn.org/stable/)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/scikit.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>\n",
    "\n",
    "* [Scipy](https://scipy.org/)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/scipy.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>\n",
    "\n",
    "* [Statsmodels](https://www.statsmodels.org/stable/index.html)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/statsmodels.svg\"  width=\"400\" height=\"300\"/> \n",
    "</figure>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "[[Volver]](#Contenido)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## <span style=\"color:blue\">Herramientas de Visualización</span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* [Matplotlib](https://matplotlib.org/)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/matplotlib.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>\n",
    "\n",
    "* [Seaborn](https://seaborn.pydata.org/)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/seaborn.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>\n",
    "\n",
    "* [Ggplot2](https://ggplot2.tidyverse.org/)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/ggplot2.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>\n",
    "\n",
    "* [Plotly](https://plotly.com/)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/plotly.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>\n",
    "\n",
    "* [Shiny](https://shiny.rstudio.com/)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/shiny.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "[[Volver]](#Contenido)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## <span style=\"color:blue\">Herramientas IA</span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Motor de Tensores"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* [Tensorflow](https://www.tensorflow.org/)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/tensorflow.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>\n",
    "\n",
    "* [Keras](https://keras.io/)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/keras.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>\n",
    "\n",
    "* [Pytorch](https://pytorch.org/)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/pytorch.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Visión Artificial"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* [OpenCV](https://opencv.org/)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/opencv.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Audio y Música Artificial"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* [Librosa](https://librosa.org/doc/latest/index.html)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/librosa.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Procesamiento de Lenguaje Natural"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* [Gensim](https://radimrehurek.com/gensim/)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/gensim.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>\n",
    "\n",
    "* [NLTK](https://www.nltk.org/)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/nltk.jpg\"  width=\"400\" height=\"300\"/> \n",
    "</figure>\n",
    "\n",
    "* [Spacy](https://spacy.io/)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/spacy.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>\n",
    "\n",
    "* [Stanza](https://stanfordnlp.github.io/stanza/)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/stanza.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Pronóstico"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* [Temporal Fusion Transformer (TFT)](https://github.com/google-research/google-research/tree/master/tft)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Aprendizaje Reforzado"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* [OpenAI Gym](https://gym.openai.com/)\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/gym.png\"  width=\"400\" height=\"300\"/> \n",
    "</figure>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "[[Volver]](#Contenido)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## <span style=\"color:blue\">La Localidad y la Nube</span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "¿Qué es la Nube?\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/nube.jpg\"  width=\"800\" height=\"300\"/> \n",
    "</figure>\n",
    "\n",
    "Fuente: [gvec, What is ‘The Cloud?’](https://www.gvec.net/what-is-the-cloud/)\n",
    "\n",
    "Artículo Importante: [Encrypted Cloud Storage: Why Your Files are Vulnerable to Hacking (And What You Can Do About It)](https://www.virtru.com/blog/cloud-storage-encryption/)\n",
    "\n",
    "[[Volver]](#Contenido)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Tipos de Archivos exportables para Notebooks"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Es posible exportar un Notebook en diferentes formatos:\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/export_nb.png\"  width=\"700\" height=\"300\"/> \n",
    "</figure>\n",
    "\n",
    "En particular, para Slides, es suficiente con controlar el menú derecho de Jupyter Lab:\n",
    "\n",
    "<figure>\n",
    "<img src=\"../imagenes/slides_nb.png\"  width=\"300\" height=\"300\"/> \n",
    "</figure>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Algunas Extensiones de Markdown"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- **Pie de Página (Sólo en HTML)**\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " - **Checkbox**\n",
    " \n",
    "- [x] Write the press release\n",
    "- [ ] Update the website\n",
    "- [ ] Contact the media"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " - **Link a otros Notebooks**\n",
    " \n",
    "[Link a otra parte Específica de un Notebook](./Intro_Jupyter.ipynb#HTML-Puro)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " - **Videos**\n",
    "\n",
    "Observemos el video a continuación:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "```Los Chimpandolfos - Eclipse```\n",
    "\n",
    "<center>\n",
    "<iframe width=\"853\" height=\"480\" src=\"https://www.youtube.com/embed/xL9bh9V2rPQ\" title=\"Los Chimpandolfos - Eclipse\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>\n",
    "</center>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "También podemos insertar videos por medio de código Python:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/jpeg": "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\n",
      "text/html": [
       "\n",
       "        <iframe\n",
       "            width=\"750\"\n",
       "            height=\"350\"\n",
       "            src=\"https://www.youtube.com/embed/cQ54GDm1eL0\"\n",
       "            frameborder=\"0\"\n",
       "            allowfullscreen\n",
       "            \n",
       "        ></iframe>\n",
       "        "
      ],
      "text/plain": [
       "<IPython.lib.display.YouTubeVideo at 0x7f54140f2350>"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Librería para insertar videos de YouTube\n",
    "from IPython.display import YouTubeVideo\n",
    "\n",
    "# Insertar Video de YouTube\n",
    "YouTubeVideo('cQ54GDm1eL0', width=750, height=350)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Algunas Extensiones de Notebooks"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Widgets Interactivos"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "09ffbfa0709c45469b8c5fdf5d467512",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "IntSlider(value=5, description='Deslizador:', max=10)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import ipywidgets as widgets\n",
    "\n",
    "widgets.IntSlider(\n",
    "    min=0,\n",
    "    max=10,\n",
    "    step=1,\n",
    "    description='Deslizador:',\n",
    "    value=5\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "c16e7439ac8e4605b2de7357ed6e0cc5",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "interactive(children=(FloatSlider(value=0.0, description='σ', max=10.0, step=0.2), FloatSlider(value=0.0, desc…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from ipywidgets import interactive\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "# Simulación de los Datos\n",
    "\n",
    "def simular_datos(σ=0,w1=0):\n",
    "    # Se escoge una semilla\n",
    "    np.random.seed(22)\n",
    "\n",
    "    # Generación de los datos\n",
    "    x=np.linspace(-2,2,100)\n",
    "    y=w1*x+np.random.normal(loc=0,scale=σ,size=len(x))\n",
    "    data=pd.DataFrame({\"Mediciones\":x,\"Observaciones\":y})\n",
    "\n",
    "    plt.figure(figsize=(10,7))\n",
    "    plt.plot(x,y,'o',markersize=5)\n",
    "    plt.xlabel(\"Mediciones\",fontsize=15)\n",
    "    plt.ylabel(\"Observaciones\",fontsize=15)\n",
    "    plt.legend([\"Datos\"],fontsize=15)\n",
    "    plt.ylim([-30,30])\n",
    "    plt.title(f'Simulación de ${w1}x+\\epsilon$, $\\epsilon$ ~ N(0,σ²)')\n",
    "    plt.show()\n",
    "    return x,y\n",
    "\n",
    "interactive_plot = interactive(simular_datos, σ=(0, 10.,0.2),w1 = (-10.,10.))\n",
    "interactive_plot"
   ]
  }
 ],
 "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.9.15"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}