0% encontró este documento útil (0 votos)
3 vistas17 páginas

Regresión Lineal en Predicción Meteorológica

Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
3 vistas17 páginas

Regresión Lineal en Predicción Meteorológica

Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD MAYOR DE SAN SIMÓN

FACULTAD DE CIENCIAS Y TECNOLOGÍA


CARRERA DE INGENIERÍA INFORMÁTICA

Machine Learning

Nombre:
Aguilar Choque Ricardo
Mamani Mamani Adrian Lucas

Cochabamba-Bolivia
Índice
Introducción..................................................................................................................... 1
Objetivos..........................................................................................................................2
1. Limpiar el Dataset:........................................................................................... 2
2. Aplicar Regresión Lineal:................................................................................. 2
3. Documentar y Comunicar Resultados:............................................................ 2
Marco Teórico................................................................................................................ 3
Modelo de Regresión Lineal Simple:......................................................................... 3
Modelo de Regresión Lineal Múltiple:........................................................................3
IV. Ingeniería en los siguientes puntos....................................................................... 4
Descripción del Problema:.........................................................................................4
Tecnologías a usar.....................................................................................................6
a) Limpieza de datos..................................................................................................... 7
b) Determinación de datos entrenamiento del modelo............................................13
c) Determinación del modelo......................................................................................13
d) Validación con al menos 4 parámetros................................................................. 13
V. Conclusiones........................................................................................................... 14
VI. Bibliografía..............................................................................................................15
Introducción

En el campo del Machine Learning, la regresión lineal es una técnica


fundamental y ampliamente utilizada para modelar la relación entre una o más
variables independientes (también conocidas como características o
predictores) y una variable dependiente continua. Es un método poderoso que
nos permite entender y predecir el comportamiento de un fenómeno en función
de otras variables observadas.

La regresión lineal se basa en la premisa de que existe una relación lineal entre
las variables de entrada y la variable de salida. Es decir, se asume que los
cambios en las variables independientes tienen un efecto lineal en la variable
dependiente. A través del análisis de esta relación, la regresión lineal nos
permite estimar valores futuros de la variable dependiente o hacer predicciones
sobre nuevos datos.

En esta introducción, exploraremos los fundamentos de la regresión lineal,


incluyendo sus conceptos clave, su aplicación en diversos escenarios del
mundo real y las diferentes variantes y técnicas asociadas. Desde su
formulación matemática hasta su implementación práctica utilizando
herramientas de software especializadas, la regresión lineal es una piedra
angular en el arsenal de herramientas de cualquier practicante de Machine
Learning.

A lo largo de este documento, examinaremos cómo la regresión lineal abordar


problemas, desde la predicción de precios de viviendas hasta el análisis de
tendencias económicas, y cómo su comprensión y aplicación pueden ser de
gran utilidad para aquellos que buscan extraer información significativa de
conjuntos de datos complejos.

1
Objetivos

1. Limpiar el Dataset:

● Identificar y manejar valores faltantes: Utilizar bibliotecas como


Pandas para detectar y manejar valores faltantes en el dataset,
eliminando filas o columnas que los contienen o imputando valores
utilizando métodos simples de Python.
● Tratar datos atípicos (outliers): Utilizar estadísticas descriptivas y
visualizaciones con bibliotecas como Matplotlib para identificar y manejar
los outliers presentes en el dataset, considerando técnicas de limpieza
basadas en criterios de Python.
● Codificar variables categóricas: Utilizar métodos de codificación
simples implementados en Python para convertir variables categóricas
en variables numéricas que puedan ser utilizadas en el modelo de
regresión lineal.

2. Aplicar dos Tipos de Regresión : En nuestro caso se aplicará


Regresión Lineal y Regresión Logística

3. Documentar y Comunicar Resultados:

● Documentar el proceso: Utilizar herramientas de documentación de


Python como Google Colab para registrar y explicar cada paso del
proceso de limpieza de datos y modelado.
● Comunicar los resultados: Presentar los hallazgos y conclusiones del
proyecto en un informe escrito utilizando Python para generar
visualizaciones y gráficos que respalden la comunicación efectiva de los
resultados.

Marco Teórico

La regresión lineal es un método estadístico utilizado para modelar la relación


entre una variable dependiente (o respuesta) y una o más variables
independientes (o predictoras). Este método busca encontrar la mejor línea
recta que se ajuste a los datos observados, de modo que pueda utilizarse para
predecir valores de la variable dependiente basados en los valores de las
variables independientes.

2
Modelo de Regresión Lineal Simple:
En el caso más simple, la regresión lineal se presenta como una relación lineal
entre una variable independiente X y una variable dependiente Y, expresada
por la ecuación:
𝑌 = β0​ + β1​𝑋 + ϵ
Donde:
𝑌 es la variable dependiente.
𝑋 es la variable independiente.
β0 es la intersección de la línea (o término constante).
β1 es la pendiente de la línea (o coeficiente de regresión).
ϵ es el término de error, que captura la variabilidad no explicada por el modelo.
El objetivo es encontrar los valores de β0 y β1 que minimicen la suma de los
cuadrados de los residuos (es decir, la distancia vertical entre los valores
observados y los predichos por el modelo).

Regresión Logística:

La regresión logística es un método utilizado para modelar la probabilidad de


que una variable binaria (con dos clases) esté presente en función de una o
más variables predictoras. A diferencia de la regresión lineal, que modela
variables continuas, la regresión logística modela la probabilidad de que una
observación pertenezca a una de las dos categorías.

La regresión logística utiliza la función logística (también conocida como


sigmoide) para transformar la salida de la regresión lineal en una probabilidad
entre 0 y 1.

La regresión logística se utiliza comúnmente en problemas de clasificación


binaria, como la predicción de la probabilidad de que un correo electrónico sea
spam o no spam, la probabilidad de que un paciente tenga una enfermedad o
no, entre otros.

3
IV. Ingeniería

1. Descripción del Problema:


Se dispone de un conjunto de datos que contiene información meteorológica
recopilada durante un periodo de tiempo determinado. Este conjunto de datos
consta de 95936 registros y 12 características. El objetivo es utilizar esta
información para predecir la temperatura (variable dependiente) en función de
las demás características.

2. Ampliación del Problema:


El objetivo principal es predecir la temperatura a partir de diversas variables
meteorológicas. El conjunto de datos incluye las siguientes características:

Formatted Date (Fecha Formateada): La fecha y hora en la que se tomó la


medida.
Summary (Resumen): Resumen del estado del tiempo.
Precip Type (Tipo de Precipitación): Tipo de precipitación.
Temperature (C) (Temperatura en Celsius): Temperatura en grados Celsius.
Apparent Temperature (C) (Temperatura Aparente en Celsius): Sensación
térmica en grados Celsius.
Humidity (Humedad): Humedad relativa del aire, expresada como un valor
entre 0.0 y 1.0.
Wind Speed (km/h) (Velocidad del Viento en km/h): Velocidad del viento en
kilómetros por hora.
Wind Bearing (degrees) (Dirección del Viento en grados): Dirección del
viento en grados.
Visibility (km) (Visibilidad en km): Visibilidad en kilómetros.
Loud Cover (Cobertura de Nubes): Cobertura de nubes.
Pressure (millibars) (Presión en milibares): Presión atmosférica en
milibares.
Daily Summary (Resumen Diario): Resumen del estado del tiempo diario.

4
3. Abstracción del Problema:
El problema consiste en desarrollar un modelo de regresión que pronostique la
temperatura (en grados Celsius) utilizando las características meteorológicas
disponibles en el conjunto de datos. Esto implica:

3.1 Preprocesamiento de Datos:


Manejar datos faltantes si los hay.
Codificar variables categóricas si es necesario.
Eliminar o corregir cualquier dato erróneo.
Analizar la distribución de las variables.
Identificar correlaciones entre las variables.
Visualizar la relación entre la temperatura y otras variables.

3.2 División del Conjunto de Datos:


Dividir el conjunto de datos en conjuntos de entrenamiento y prueba.
3.3 Entrenamiento del Modelo:
Utilizar un modelo de regresión lineal para entrenar el conjunto de datos de
entrenamiento.

Validación del Modelo:


Evaluar el rendimiento del modelo utilizando métricas como el error cuadrático
medio (MSE), el coeficiente de determinación (R²), etc.
3.4 Predicción:
Utilizar el modelo entrenado para predecir la temperatura en base a las
características meteorológicas.
Al resolver este problema, se proporcionará una herramienta para predecir la
temperatura en función de las condiciones meteorológicas, lo que puede ser útil
para diversas aplicaciones, como la agricultura, la planificación urbana y la
gestión de la energía.

5
4. Tecnologías a usar
La tecnologías que vamos a utilizar son:
4.1 Python:
Python es un lenguaje de programación de alto nivel, interpretado y de
propósito general. Es conocido por su sintaxis simple y legible, lo que lo hace
ideal para principiantes y expertos por igual. Python es ampliamente utilizado
en una variedad de campos, incluyendo análisis de datos, desarrollo web,
inteligencia artificial, y más. Es altamente extensible y tiene una gran cantidad
de bibliotecas y frameworks disponibles.
4.2 Pandas:
Pandas es una librería de código abierto que proporciona estructuras de datos
de alto rendimiento y fáciles de usar, así como herramientas de análisis de
datos para el lenguaje de programación Python. Es especialmente útil para
manipular y analizar datos tabulares.
4.3 Matplotlib:
Matplotlib es una librería de visualización de datos en 2D para Python. Permite
crear visualizaciones estáticas, animadas e interactivas en Python.
4.4 Seaborn:
Seaborn es una librería de visualización de datos basada en Matplotlib que
proporciona una interfaz de alto nivel para crear gráficos estadísticos atractivos
y informativos. Seaborn está especialmente diseñado para trabajar con
DataFrames de Pandas.
4.5 Scikit-learn (sklearn):
Scikit-learn es una librería de aprendizaje automático de código abierto para el
lenguaje de programación Python. Ofrece diversas herramientas para el
modelado estadístico y el análisis de datos, incluyendo algoritmos de
clasificación, regresión, clustering y reducción de dimensionalidad, entre otros.

Estas librerías son esenciales para el análisis de datos, visualización y


modelado que estás realizando en tu dataset. Python, en particular, es el
lenguaje en el que están basadas todas las otras librerías, actuando como el
pegamento que une todo el proceso de análisis y modelado.

6
a) Limpieza de datos
Para la limpieza de datos se siguió los siguientes pasos:
Importamos las librerías que se va ha usar, pandas será para leer el set de
datos y matplotlib y seaborn para visualizar los datos. (Graficación).
import pandas as pd
import [Link] as plt
import seaborn as sns

Damos permiso a drive para que se pueda acceder al data set, una vez que se
accedio al data set vamos a proseguir con la limpiza.

from [Link] import drive


[Link]('/content/drive')
ruta= "/content/drive/MyDrive/Colab Notebooks/[Link]"
data = pd.read_csv(ruta)

Vamos a observar los datos del dataset por columna y filas y empezar a
identificar inconsistencias en base a la naturaleza de los datos, cabe recalcar
que solo nos muestra las primeros 5 filas de nuestro dataset

print([Link])
[Link]()
(96453, 12) (filas, columnas)
Una vez que vemos de que esta constituida la tabla, vamos a ver de toda la
tabla cuales son valores categoricos, numericos, alfanumericos o caracteres.

[Link]()
resultado:

7
Limpieza
Realizaremos el proceso de limpieza teniendo en cuenta las situaciones más
comunes:

● Datos faltantes en algunas celdas


● Columnas irrelevantes (que no responden al problema que queremos
resolver)
● Registros repetidos (filas)
● Valores extremos (outliers) en el caso de las variables numéricas no
esten dentro de lo coherente. Se deben analizar en detalle pues no
necesariamente la solución es eliminarlos
● Errores tipográficos en el caso de las variables categóricas
Una vez finalizado el proceso de limpieza deberíamos tener un set listo para el
Análisis.

8
Datos Faltantes
Comenzamos a ver que los datos no están completos, pues no todas las
columnas tienen la misma cantidad de registros. Por ser tan pocos los datos
faltantes optaremos por eliminar las filas correspondientes:

[Link](inplace=True)
[Link]()

resultado:

Columnas irrelevales
Una columna irrelevante puede ser:

Una columna que no contiene información relevante para el problema que


queremos resolver.
Una columna categórica pero con un sólo nivel. Por ejemplo si en la columna
"Princip Type" solo tuviésemos el nivel "rain".

9
Una columna numérica pero con un sólo valor. Por ejemplo si en la columna
"Temperature" todos los valores fuesen iguales a 9.472222.
Columnas con información redundante. Por ejemplo si además de las columnas
"Temperature" y "Apparent Temperature" tuviésemos la columna "average
temperature", resultado de combinar las dos anteriores.
En este caso todas las columnas pueden resultar relevantes, pero debemos
verificar que no haya columnas categóricas con un sólo nivel, o columnas
numéricas con un sólo valor:

colsCat = ['Formatted Date', 'Summary', 'Precip Type', 'Daily Summary']

for col in colsCat:


print(f'Columna {col}: {data[col].nunique()} subniveles')
Resultado:

Filas repetidas
vamos a eliminar las filas repetidas, no vamos a revisar la uno por uno el
dataset si no directamente lo eliminamos
print(f'Tamaño del set antes de eliminar las filas repetidas: {[Link]}')
data.drop_duplicates(inplace=True)
print(f'Tamaño del set después de eliminar las filas repetidas:
{[Link]}')

Outliers en las variables numéricas

10
No siempre se deben eliminar los outliers porque dependiendo de la variable
numérica analizada estos pueden contener información importante.

Creemos gráficas tipo "boxplot" de las columnas numéricas:

colsNum = ['Temperature (C)', 'Apparent Temperature (C)', 'Humidity',


'Wind Speed (km/h)',
'Wind Bearing (degrees)', 'Visibility (km)','Pressure (millibars)']

fig, ax = [Link](nrows=len(colsNum), ncols=1, figsize=(8,30))


fig.subplots_adjust(hspace=0.5)

for i, col in enumerate(colsNum):


[Link](x=col, data=data, ax=ax[i])
ax[i].set_title(col)

El resultado de los gráficos se puede se podrá ver en el link:


[Link]
Bb?usp=sharing

Observaciones:
"Pressure": la presion no reduce desde 870 millibars
"loud cover": Todos los valores estan en 0.00, no nos brindan informacion.

11
Errores tipográficos en variables categóricas
En una variable categórica pueden aparecer sub-niveles como en este caso
"rain" y "Rain" que para nosotros son equivalentes pero que para nuestro
programa parecerían diferentes.

Se deben unificar estos sub-niveles


# Graficar los subniveles de cada variable categórica
cols_cat = ['Summary', 'Precip Type', 'Daily Summary']

fig, ax = [Link](nrows=len(cols_cat), ncols=1, figsize=(10, 30))


fig.subplots_adjust(hspace=1)

12
for i, col in enumerate(cols_cat):
[Link](x=col, data=data, ax=ax[i])
ax[i].set_title(col)
ax[i].tick_params(axis='x', labelrotation=30)

El resultado de los gráficos se puede se podrá ver en el link:


[Link]
Bb?usp=sharing

Una vez analizando estos subniveles por diferentes columnas vemos que no
existen inconsistencias, cabe recalcar que la columna de "Formatted Date" se
la quito para no generar su grafico ya que vemos anteriormente que tiene
95912 subniveles lo cual implica que con la limpieza haya reducido pero en
filas.

Una vez finalizado la limpieza podemos decir:


Originalmente tenía 96453 registros y 12 columnas. El dataset resultante tiene
94624 filas y 10 columnas.

El set de datos ya está listo y lo guardamos en la misma ruta.

ruta = "/content/drive/MyDrive/Colab Notebooks/[Link]"


data.to_csv(ruta, index=False)

b) Determinación de datos entrenamiento del modelo

Para determinar los datos de entrenamientos primero se debe decidir la


característica a predecir:
Caso 1 para este primer caso decidimos pronosticar la Temperature (C) para
eso se decidió eliminar ciertas características del data set:
Loud Cover,Summary,Daily Summary,Precip Type,Formatted Date
ya que son datos que no guardan un buen grado de correlación, se analizó
mucho si dejar “Formatted Date” pero se llegó a la conclusión de que este
pronóstico no se realizará teniendo como entrada una fecha en especifica

13
Caso 2 para el segundo caso se decidió pronosticar la Precio Type y se
eliminaron las siguientes características,
Loud Cover,Summary,Daily Summary,Formatted Date

c) Determinación del modelo


Para la determinación también tendremos dos casos uno por cada tipo de
Regresión que como mínimo debieron ser dos.
Caso1 Por su simplicidad y eficacia al pronosticar variables fáciles de
relacionar como la temperatura en este caso
Caso2 Se pronosticó Precip Type que en nuestro dataset solo tenia dos
valores, por ser una variable binaria se optó por utilizar Regresión Logística

V. Conclusiones

Regresión Lineal Simple:


Simplicidad: Es simple y fácil de entender. Es un buen punto de partida para
comprender los conceptos básicos de la regresión lineal.
Interpretación: La relación entre la variable independiente y la variable
dependiente es fácilmente interpretable.
Limitaciones: Limitado a modelos que se ajusten a una relación lineal. Si la
relación no es lineal, la regresión lineal simple puede no ser adecuada.

Regresión Logística:
Problemas de clasificación binaria: Si estás interesado en predecir si ciertas
condiciones climáticas resultan en temperaturas por encima o por debajo de un
umbral específico (por ejemplo, temperaturas por encima o por debajo de 0
grados Celsius para determinar si habrá nieve), entonces la regresión logística
puede ser apropiada. Puedes definir un umbral y predecir la probabilidad de
que la temperatura esté por encima o por debajo de ese umbral.
Modelado de probabilidades: La regresión logística modela la probabilidad de
que una observación pertenezca a una clase en lugar de predecir directamente
los valores de la variable dependiente. Puedes interpretar la salida de la
regresión logística como la probabilidad de que la temperatura esté por encima
o por debajo de cierto valor, lo que puede ser útil en algunos casos.

14
Consideraciones Finales:
Preprocesamiento de datos:
● La limpieza de datos es esencial. Esto incluye manejar valores
faltantes, datos atípicos y transformar las variables si es necesario.
● Selección de variables: Es importante seleccionar las variables
independientes que tengan una mayor influencia en la variable
dependiente.
Regresión Lineal vs. Otros Modelos:
La regresión lineal es un buen punto de partida, pero dependiendo de la
complejidad de los datos y de la relación entre las variables, podría ser
necesario explorar otros modelos más avanzados.

VI. Bibliografía
Ejemplo Regresión Lineal Python | Aprende Machine Learning
Limpieza de datos con Python - DEV Community

15

También podría gustarte