{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Demo - Uso de sklearn. Aproximación y generalización" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# En esta celda se definen los modulos que se van a usar en el notebook \n", "# También se configuran otros aspectos comunes a toda la práctica\n", "\n", "import os\n", "import numpy as np\n", "import pandas as pd\n", "from scipy.fft import fft, fftshift, ifft, fftfreq\n", "from scipy.signal import spectrogram\n", "import matplotlib.pyplot as plt\n", "\n", "\n", "#estilo de las gráficas\n", "plt.style.use('ggplot')\n", "\n", "# FORMAS DE VER LAS GRAFICAS --------------------\n", "# ELEGIR UNA DE LAS OPCIONES Y DES-COMENTAR (sacar # de la linea)\n", "# ----------------\n", "# a) graficas en línea entre las celdas (no interactivo)\n", "# %matplotlib inline\n", "# ---------------- \n", "# b) graficas en línea entre las celdas con pan/zoom\n", "# %matplotlib notebook\n", "# ----------------\n", "# c) graficas en ventanas externas (abre una ventana por cada figura)\n", "# %matplotlib\n", "# ----------------\n", "# d) Si se usa \"jupyter lab\" en lugar de \"jupyter notebook\" usar %matplotlib widget en lugar de %matplotlib notebook \n", "# Si se usa vscode usar también %matplotlib widget en lugar de %matplotlib notebook\n", "# requiere instalar el modulo \"ipympl\". Ver https://stackoverflow.com/questions/51922480/javascript-error-ipython-is-not-defined-in-jupyterlab#56416229\n", "%matplotlib widget\n", "#---------------------------------------------------" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Uso de sklearn\n", "\n", "En este ejemplo suponemos que tenemos un conjunto de datos al cual ajustaremos una recta mediante regresión lineal.\n", "\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from sklearn.linear_model import LinearRegression\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.datasets import make_regression" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Generación de datos\n", "Para esta prueba los datos los vamos a generar en forma artificial a mano pero se podría usar **sklearn** que tiene algunos datasets de prueba y también generadores de datos en el [módulo \"datasets\"](https://scikit-learn.org/stable/datasets.html) \n", "Ver [sklearn.datasets.make_regression](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.make_regression.html#sklearn.datasets.make_regression) \n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Generación de datos de prueba con sklearn" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "cantidad_de_muestras = 100\n", "cantidad_de_features = 1 \n", "ruido = 10\n", "bias = 30\n", "\n", "X, y = make_regression(n_samples=cantidad_de_muestras, n_features=cantidad_de_features, \n", " bias=bias, noise=ruido, random_state=42)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Datos generados')" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "2e637e57feba4f9c8674872f37e23944", "version_major": 2, "version_minor": 0 }, "image/png": "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", "text/html": [ "\n", "