This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

domingo, 10 de diciembre de 2023

ANALISIS EXPLORATORIO DE DATOS – Ejemplo De EDA con JUpyter y Colab

 

¿Qué ventajas tiene utilizar Jupyter Notebook en la ciencia de datos? 

Jupyter Notebook permite integrar código, visualizaciones y explicaciones en un mismo lugar, lo que facilita la colaboración en equipos, la reproducibilidad de los resultados y la exploración interactiva de los datos.

Así mismo, estas son las principales ventajas de usar Google Colab en el ámbito del análisis de datos y la IA: Cuenta con bibliotecas de data science preinstaladas. Permite compartir documentos y colaborar de manera mucho más sencilla. Cuenta con integración con multitud de herramientas y también con GitHub.

Partiendo de los ejemplos propuestos de AD con DS:

/content/Analisis Ventas

/content/dataset_ventas.csv

una vez trasladado a Google Colab tendríamos:


import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# Generar datos para el dataset

np.random.seed(0)
fechas = pd.date_range(start='2022-01-01', end='2022-12-31', freq='D')
cantidad_vendida = np.random.randint(1, 20, size=len(fechas))
precio_unitario = np.random.uniform(10, 100, size=len(fechas))

# Crear el DataFrame
df_ventas = pd.DataFrame({
    'Fecha': fechas,
    'Cantidad Vendida': cantidad_vendida,
    'Precio Unitario': precio_unitario
})

# Análisis de los datos
ventas_totales = df_ventas['Cantidad Vendida'] * df_ventas['Precio Unitario']
df_ventas['Ventas Totales'] = ventas_totales
resumen = df_ventas.describe()

# Gráfico de ventas totales por mes
df_ventas['Mes'] = df_ventas['Fecha'].dt.month
ventas_por_mes = df_ventas.groupby('Mes')['Ventas Totales'].sum()

plt.figure(figsize=(10, 6))
ventas_por_mes.plot(kind='bar')
plt.title('Ventas Totales por Mes')
plt.xlabel('Mes')
plt.ylabel('Ventas Totales')
plt.xticks(ticks=range(12), labels=['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio',
                                    'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
           rotation=45)
plt.grid(True)
plt.tight_layout()


Análisis Básico de Ventas

En este notebook, hemos generado un dataset sintético de ventas y realizado un análisis básico. Se calculan las ventas totales y se muestra un resumen estadístico, junto con un gráfico de las ventas por mes.


https://www.blogger.com/blog/post/edit/5691884355340559673/460428542844855830



GENERANDO UN DATA SED MEDIANTE PYTHON

 

Qué es el análisis de datos con Python

En fin, tenemos esta ciencia, como una ideología, pero las palabras se las lleva el viento. Ahora debemos preguntarnos, ¿Cómo podemos realizar este Análisis de Datos?, ¿existe algún tipo de herramienta tecnológica que nos ayude? Pues claro que sí, algunos piensan en aplicaciones ofimáticas para realizar filtros, búsquedas y gráficos con estos datos, otros piensan en lenguajes de programación quizás no tan amigables con el usuario final, en cambio yo, pienso en explicarte algo sencillo que está muy en auge hoy en día y la verdad es que la comunidad que lo respalda es bastante grande. ¿De qué hablamos?, pues del Lenguaje de Programación Python y su relación directa con el Análisis de datos.

YOU

Desarrolla un ejemplo paso a paso de la generación de un Data Sed con Paython con datos ficticios.

CHAT GPT

¡Claro! Para crear un DataFrame en Python con datos ficticios, podemos utilizar la biblioteca pandas. Aquí tienes un ejemplo paso a paso:

Paso 1: Instalar Pandas (si aún no lo has hecho):

Abre tu terminal (en caso de que estés utilizando un entorno virtual, asegúrate de activarlo) y ejecuta el siguiente comando.

Requirement already satisfied: pandas in /usr/local/lib/python3.10/dist-packages (1.5.3) Requirement already satisfied: python-dateutil>=2.8.1 in /usr/local/lib/python3.10/dist-packages (from pandas) (2.8.2) Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas) (2023.3.post1) Requirement already satisfied: numpy>=1.21.0 in /usr/local/lib/python3.10/dist-packages (from pandas) (1.23.5) Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.8.1->pandas) (1.16.0)

Paso 2: Importar la biblioteca pandas y crear un DataFrame con datos ficticios:

import pandas as pd

# Crear datos ficticios
datos = {
    'Nombre': ['Juan', 'María', 'Pedro', 'Luisa', 'Sofía'],
    'Edad': [25, 30, 28, 35, 27],
    'Puntuación': [80, 75, 90, 60, 85]
}

# Crear DataFrame
dataframe = pd.DataFrame(datos)

# Mostrar el DataFrame
print(dataframe)


Este código generará un DataFrame con tres columnas ('Nombre', 'Edad' y 'Puntuación') y cinco filas de datos ficticios. Puedes personalizar los datos reemplazando los valores proporcionados en el diccionario datos.

Si quieres guardar este DataFrame como un archivo CSV, puedes hacerlo de la siguiente manera:

# Guardar el DataFrame como archivo CSV
dataframe.to_csv('datos_ficticios.csv', index=False)

Esto creará un archivo llamado datos_ficticios.csv en el directorio actual, que contendrá los datos del DataFrame sin incluir el índice de las filas.

¡Ya está! Ahora tienes un DataFrame con datos ficticios que puedes utilizar para realizar análisis, manipulaciones y más operaciones utilizando la biblioteca pandas en Python.

YOU

podrías hacer el análisis del data sed creado utilizando gráficos.

CHAT GPT

¡Claro! Podemos usar la librería matplotlib para crear algunos gráficos básicos a partir del DataFrame que creamos previamente. Aquí te muestro cómo hacerlo con un histograma y un gráfico de barras:


import pandas as pd
import matplotlib.pyplot as plt

# Crear el DataFrame (usando el código previo)
datos = {
    'Nombre': ['Juan', 'María', 'Pedro', 'Luisa', 'Sofía'],
    'Edad': [25, 30, 28, 35, 27],
    'Puntuación': [80, 75, 90, 60, 85]
}
dataframe = pd.DataFrame(datos)

# Histograma de edades
plt.figure(figsize=(8, 5))
plt.hist(dataframe['Edad'], bins=5, color='skyblue')
plt.title('Histograma de Edades')
plt.xlabel('Edades')
plt.ylabel('Frecuencia')
plt.grid(True)
plt.show()

# Gráfico de barras de puntuaciones
plt.figure(figsize=(8, 5))
plt.bar(dataframe['Nombre'], dataframe['Puntuación'], color='salmon')
plt.title('Puntuaciones por Nombre')
plt.xlabel('Nombre')
plt.ylabel('Puntuación')
plt.xticks(rotation=45)
plt.grid(axis='y')
plt.tight_layout()
plt.show()



YOU

me puedes hacer un análisis comparativo de edades del data sed creado y mostrarlo en una tabla.

import pandas as pd
from tabulate import tabulate

# Crear el DataFrame (usando el código previo)
datos = {
    'Nombre': ['Juan', 'María', 'Pedro', 'Luisa', 'Sofía'],
    'Edad': [25, 30, 28, 35, 27],
    'Puntuación': [80, 75, 90, 60, 85]
}
dataframe = pd.DataFrame(datos)

# Calcular estadísticas descriptivas de las edades
estadisticas_edades = dataframe['Edad'].describe()

# Mostrar las estadísticas en una tabla
tabla_estadisticas = tabulate(estadisticas_edades.to_frame(), headers='keys', tablefmt='pretty')

print("Análisis comparativo de edades:")
print(tabla_estadisticas)




RESUMEN

¡Por supuesto! Aquí está el resumen del análisis comparativo de las edades utilizando el conjunto de datos ficticios que creamos:

  1. Conjunto de Datos:

    • Nombres: Juan, María, Pedro, Luisa, Sofía
    • Edades: 25, 30, 28, 35, 27
    • Puntuaciones: 80, 75, 90, 60, 85
  2. Estadísticas Descriptivas de Edades:

    • Media: 29
    • Desviación estándar: ~3.87
    • Mínimo: 25
    • Primer cuartil (25%): 27
    • Mediana (50%): 28
    • Tercer cuartil (75%): 30
    • Máximo: 35

Estas estadísticas proporcionan una visión general de las edades en el conjunto de datos, incluyendo la dispersión de las edades, la edad promedio y la distribución a través de los cuartiles. Este análisis puede ser útil para comprender la distribución y la tendencia central de las edades en tu conjunto de datos.


https://chat.openai.com/share/f4612ed1-0855-4e35-b718-90ba541eb35c



LA EVALUACION SUMATIVA

 

La evaluación sumativa tiene como función determinar el grado de consecución que un alumno ha obtenido en relación con los objetivos fijados para una área o etapa. Se realiza habitualmente, por tanto, al final de un proceso de enseñanza-aprendizaje, y se vincula a las decisiones de promoción, calificación y titulación.

Un ejemplo de la aplicación del Análisis con CHAT GPT de datos lo muestro a continuación:

YOU

Desarrolla el script para generar un Data Sed de la evaluación sumativa de un curso en línea de 20 participantes, que considera apellidos y nombres, parciales, prácticas, foros y nota final, permitirme desde el Colab Google descargarlo.

CHAT GPT


Clapandaspaggoogle.colabparap

Principalpandassi

Requirement already satisfied: pandas in /usr/local/lib/python3.10/dist-packages (1.5.3) Requirement already satisfied: python-dateutil>=2.8.1 in /usr/local/lib/python3.10/dist-packages (from pandas) (2.8.2) Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas) (2023.3.post1) Requirement already satisfied: numpy>=1.21.0 in /usr/local/lib/python3.10/dist-packages (from pandas) (1.23.5) Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.8.1->pandas) (1.16.0)

import pandas as pd

# Datos de ejemplo
participantes = 20
nombres = ['Juan', 'María', 'Carlos', 'Ana', 'Pedro', 'Laura', 'Diego', 'Sofía', 'Luis', 'Elena',
           'Miguel', 'Julia', 'Andrés', 'Lucía', 'Pablo', 'Valentina', 'Gabriel', 'Camila', 'Javier', 'Isabela']
apellidos = ['González', 'Rodríguez', 'Pérez', 'López', 'Martínez', 'Gómez', 'Sánchez', 'Díaz', 'Torres', 'Vargas',
             'Rojas', 'Ramírez', 'Suárez', 'Romero', 'Blanco', 'Fernández', 'Gutiérrez', 'Jiménez', 'Molina', 'Silva']
parciales = [float(f'{round((i+1) * 4.5 / participantes, 2):.2f}') for i in range(participantes)]
practicas = [float(f'{round((i+1) * 3.75 / participantes, 2):.2f}') for i in range(participantes)]
foros = [float(f'{round((i+1) * 2.25 / participantes, 2):.2f}') for i in range(participantes)]

# Crear DataFrame con los datos
data = {
    'Nombres': nombres,
    'Apellidos': apellidos,
    'Parciales': parciales,
    'Practicas': practicas,
    'Foros': foros
}

df = pd.DataFrame(data)

# Calcular la nota final
df['Nota Final'] = df['Parciales'] + df['Practicas'] + df['Foros']

# Mostrar el DataFrame
print(df)

# Guardar el DataFrame como un archivo CSV
df.to_csv('evaluacion_curso.csv', index=False)


you

Desarrolla el análisis de datos que incluye gráficos con el Data Sed generado.

CHAT GPT

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# Cargar el archivo CSV generado anteriormente
df = pd.read_csv('evaluacion_curso.csv')

# Mostrar información general del DataFrame
print(df.describe())

# Gráfico de barras para la nota final
plt.figure(figsize=(10, 6))
sns.histplot(df['Nota Final'], bins=10, kde=True)
plt.title('Distribución de Notas Finales')
plt.xlabel('Nota Final')
plt.ylabel('Frecuencia')
plt.show()

# Gráfico de dispersión entre parciales y nota final
plt.figure(figsize=(8, 6))
sns.scatterplot(x='Parciales', y='Nota Final', data=df)
plt.title('Relación entre Parciales y Nota Final')
plt.xlabel('Parciales')
plt.ylabel('Nota Final')
plt.show()

# Gráfico de caja para prácticas
plt.figure(figsize=(8, 6))
sns.boxplot(y='Practicas', data=df)
plt.title('Distribución de Puntajes de Prácticas')
plt.ylabel('Prácticas')
plt.show()



YOU

El análisis de los gráficos del data sed

CHAT GPT

Claro, los gráficos generados con los datos simulados del dataset pueden proporcionar algunas ideas sobre la distribución de las notas y las relaciones entre las diferentes variables evaluativas. Vamos a analizar cada gráfico:

  1. Distribución de Notas Finales:
    El histograma muestra la frecuencia de las diferentes notas finales obtenidas por los participantes. Observarás la concentración de notas alrededor de ciertos valores y cómo se distribuyen en el rango total. Si la distribución es normal o sesgada hacia algún extremo, podría dar pistas sobre el rendimiento general del grupo.


  2. Relación entre Parciales y Nota Final:
    Este gráfico de dispersión muestra la relación entre los puntajes de los parciales y la nota final. Si existe una fuerte valoración positiva, verás una tendencia donde aquellos que obtienen puntajes altos en parciales tenderán a tener una nota final más alta. Un patrón disperso o sin relación podría indicar que otros componentes de la evaluación son igualmente importantes para determinar la nota final.


  3. Distribución de Puntajes de Prácticas (Gráfico de Caja):
    El gráfico de caja muestra la distribución de los puntajes de prácticas. Te da una idea de la dispersión de los puntajes, identificando valores atípicos y la variabilidad en los puntajes obtenidos en esta área específica de evaluación.

Observar estos gráficos puede proporcionar una comprensión inicial de cómo se desempeñan los participantes en el curso en diferentes áreas de evaluación. Por ejemplo, si la distribución de las notas finales está concentrada hacia valores más altos, puede indicar un rendimiento general sólido. La relación entre parciales y la nota final puede mostrar qué tanto los parciales impactaron en la calificación final en comparación con otras actividades evaluativas.

Estos gráficos son solo una forma de comenzar a comprender los datos. Dependiendo de los objetivos del análisis, podrías profundizar más con técnicas estadísticas o explorar correlaciones entre diferentes componentes de la evaluación para obtener información más detallada sobre el desempeño de los participantes en el curso.


https://chat.openai.com/share/1b133ceb-d1e2-4fea-a125-f34ba75c5d3a