No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

IA para análisis de datos con Python

9/17
Recursos

¿Cómo nos pueden ayudar las herramientas de inteligencia artificial en el análisis de datos?

La inteligencia artificial se está convirtiendo en una herramienta indispensable para los analistas de datos. Durante los procesos de análisis, los analistas pueden enfrentar bloqueos o dificultades al formular preguntas, al crear gráficas, o al realizar análisis detallados de un dataset. Herramientas como ChatGPT pueden aliviar estos obstáculos al generar ideas y guiar el proceso analítico, aún si el dataset es desconocido o de un segmento de negocio nuevo para el analista.

¿Cómo comenzar con ChatGPT y un dataset?

Para empezar a utilizar ChatGPT con un dataset, es importante proporcionar la estructura del dataset a la herramienta. Por ejemplo, se puede describir un dataset relacionado a las ventas que incluya columnas como la fecha de venta, ciudad, país, y nombre del cliente. Debido a las limitaciones de contexto de ChatGPT, no se pueden cargar millones de registros, pero al describir las columnas, se abre la puerta a que ChatGPT sugiera preguntas analíticas resolubles con herramientas como Pandas en Python.

¿Qué preguntas analíticas pueden hacerse?

Una vez proporcionada la estructura del dataset, se pueden generar múltiples preguntas analíticas que pueden guiar al analista a las respuestas necesarias para el negocio. Algunas de estas preguntas podrían ser:

  • ¿Cuáles son los 10 productos más vendidos en cada región y cada país?
  • ¿Cómo se distribuyen las ventas de cada subcategoría de productos en distintos modos de envío?
  • ¿Se venden más productos en ciertas subcategorías con un modo de envío específico?

Estas preguntas pueden ser tanto generales como específicas, y su formulación puede guiar a la resolución efectiva de problemas analíticos dentro de los datos disponibles.

¿Cómo usar ChatGPT para generar scripts en Python?

Supongamos que queremos calcular el tiempo promedio entre la fecha de pedido y la fecha de envío de los productos. Le podemos pedir a ChatGPT que nos genere un script en Python para resolver esta pregunta:

import pandas as pd

# Cargar el dataset
df = pd.read_csv('sales.csv')

# Calcular el tiempo promedio de envío
df['Order Date'] = pd.to_datetime(df['Order Date'])
df['Ship Date'] = pd.to_datetime(df['Ship Date'])
df['Shipping Time'] = (df['Ship Date'] - df['Order Date']).dt.days
average_shipping_time = df['Shipping Time'].mean()

print(f"El tiempo promedio de envío es de {average_shipping_time} días.")

Al implementar el código en un entorno de desarrollo (IDE), podemos verificar y aplicar la solución al dataset específico.

¿Cómo mejorar con visualizaciones de datos?

Las visualizaciones de datos son cruciales para interpretar y comunicar resultados analíticos. ChatGPT puede ofrecer scripts que no solo analizan datos, sino que también los visualizan. Por ejemplo, al solicitar un script para los 10 productos más vendidos en cada región, ChatGPT no solo proporciona el análisis, sino también consejos para visualizar los resultados usando bibliotecas de visualización de datos como Matplotlib:

import matplotlib.pyplot as plt
import seaborn as sns

# Supongamos que df_top_10 es el resultado del análisis anterior
sns.barplot(x='Region', y='Sales', data=df_top_10)
plt.title('Top 10 Productos por Región')
plt.xlabel('Región')
plt.ylabel('Ventas')
plt.show()

Buenas prácticas y recomendaciones al usar inteligencia artificial

A pesar de las ventajas que brindan estas herramientas, es vital ser cauteloso al utilizarlas. Compartir datos demasiado sensibles puede representar un riesgo, ya que podrían ser utilizados para reentrenar modelos de IA. Además, los modelos como ChatGPT no siempre pueden analizar millones de datos debido a las limitaciones de contexto.

Motivamos a los estudiantes a explorar el archivo sales.csv disponible en los recursos de la clase utilizando herramientas como ChatGPT para resolver múltiples preguntas analíticas. Este ejercicio no solo potenciará sus habilidades de análisis de datos sino que también ayudará a aprovechar al máximo estas potentes herramientas.

Aportes 15

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

9. IA para análisis de datos

Herramientas

  • Que preguntas de analítica puedo resolver sobre un dataset (df) de pandas con estas columnas:
  • Dame 5 preguntas más acerca del producto y su relación con otras variables.
  • Toma una pregunta y pedirle un script para que genere la solución a la pregunta generada por el mismo
  • Da contexto y ejemplos para hacer el análisis.
  • No es una buena práctica pegar datos sensibles propios en un LLM.

Reto

  1. ¿Cuál es la categoría de productos más rentable en términos de ventas totales?
  2. ¿Cuál es el subcategoría de productos más vendida en cada región?
  3. ¿Cuál es el producto más vendido en segmentos de clientes específicos?
  4. ¿Existe alguna relación entre el precio de un producto y la cantidad vendida?
  5. ¿Cuál es el promedio de ventas diarias de productos en diferentes ciudades?

Por supuesto, aquí tienes un script en Python que resuelve la pregunta:

import pandas as pd

# Agrupar los datos por categoría de productos y sumar las ventas totales
category_sales = df.groupby('Category')['Sales'].sum()

# Obtener la categoría de productos más rentable en términos de ventas totales
most_profitable_category = category_sales.idxmax()

# Imprimir el resultado
print("La categoría de productos más rentable en términos de ventas totales es:", most_profitable_category)

En este script, asumimos que ya tienes un DataFrame llamado df que contiene los datos. El código utiliza el método groupby para agrupar los datos por categoría de productos y luego suma las ventas totales de cada categoría. Luego, se encuentra la categoría con las ventas totales más altas utilizando el método idxmax(). Finalmente, se imprime el resultado.

Recuerda ajustar el código según el nombre de tu DataFrame y la columna que contiene las ventas (en este caso, asumimos que es la columna “Sales”).

Buen uso de ChatGPT. Solicitar ayuda a los LLM sobre que preguntas de analítica podemos formular es un buena forma de sacarle provecho a un dataset; especialmente para los que recién comienzan o no tienen mucho conocimiento del modelo de negocio.

Como aporte, es mejor realizar las consultas en ingles.

Prompt:
What analytics questions can I solve on a pandas dataset (df) with these columns:
[‘Row ID’, ‘Order ID’, ‘Order Date’, ‘Ship Date’, ‘Ship Mode’,
‘Customer ID’, ‘Customer Name’, ‘Segment’, ‘Country’, ‘City’, ‘State’,
‘Postal Code’, ‘Region’, ‘Product ID’, ‘Category’, ‘Sub-Category’,
‘Product Name’, ‘Sales’]

Output
With the provided columns in the pandas dataframe, you can explore and answer various analytical questions. Here are some examples of the types of questions you can solve:

1.Sales Analysis:
What is the total sales revenue?
What is the average sales value?
What are the top-selling products and categories?
How do the sales vary over time (e.g., monthly, quarterly)?

2.Customer Analysis:
How many unique customers are there?
What are the top customers by sales value?
What is the average sales value per customer?
What are the common segments and regions among customers?

3.Geographical Analysis:
What are the top cities, states, and regions by sales?
How does sales vary across different countries?
What are the most popular shipping modes in different regions?

Script para transformar texto a minusculas:

#pasar formato del texto del df a minusculas

sales.columns = sales.columns.str.lower()

columnas_object = sales.select_dtypes(include='object').columns

for columna in columnas_object:
    sales[columna] = sales[columna].str.lower()

Script para remplazar cada columna con fechas a ‘ano’, ‘mes’ y dia:

# Convertir las columnas de fecha a objetos datetime
date_columns = ['Order Date', 'Ship Date']
for col in date_columns:
    sales[col] = pd.to_datetime(sales[col], format='%d/%m/%Y')

# Agregar columnas separadas para año, mes ya
for col in date_columns:
    sales[col + ' anio'] = sales[col].dt.year
    sales[col + ' mes'] = sales[col].dt.month
    sales[col + ' dia'] = sales[col].dt.day

# Eliminar las columnas de fecha originales
sales.drop(columns=date_columns, inplace=True)
Copiar y pegar directamente segmentos de código proporcionados por las IA no es una práctica recomendable. Esto se debe a que no se tiene control sobre lo que hará con los datos, y si no se comprende completamente lo que el código está haciendo, se puede seguir de manera ciega y cometer errores.
La inteligencia artificial (IA) puede ser una herramienta poderosa para el análisis de datos en Python, permitiendo descubrir patrones, hacer predicciones y obtener insights profundos. A continuación, te muestro cómo puedes utilizar Python y sus bibliotecas para realizar análisis de datos con IA. \### Paso 1: Instalación de Bibliotecas Para trabajar con IA y análisis de datos en Python, necesitarás varias bibliotecas. Asegúrate de tenerlas instaladas: ```bash pip install numpy pandas scikit-learn tensorflow keras matplotlib seaborn ``` \### Paso 2: Preparación de Datos Antes de aplicar modelos de IA, debes preparar y limpiar tus datos. Aquí hay un ejemplo de cómo cargar y limpiar datos: ```python import pandas as pd \# Cargar datos df = pd.read\_csv('datos.csv') \# Inspeccionar datos print(df.head()) \# Limpiar datos df = df.dropna() # Eliminar valores faltantes df = df.drop\_duplicates() # Eliminar duplicados \# Convertir categorías a variables dummy df = pd.get\_dummies(df) ``` \### Paso 3: Análisis Exploratorio de Datos (EDA) Utiliza técnicas de análisis exploratorio para comprender mejor tus datos: ```python import matplotlib.pyplot as plt import seaborn as sns \# Histograma plt.hist(df\['columna']) plt.title('Histograma de columna') plt.xlabel('Valor') plt.ylabel('Frecuencia') plt.show() \# Mapa de calor de correlación sns.heatmap(df.corr(), annot=True) plt.title('Mapa de calor de correlación') plt.show() ``` \### Paso 4: Modelado con IA \#### 4.1. \*\*Regresión Lineal\*\* Para problemas de regresión, puedes usar `scikit-learn`: ```python from sklearn.model\_selection import train\_test\_split from sklearn.linear\_model import LinearRegression from sklearn.metrics import mean\_squared\_error \# Dividir datos en conjuntos de entrenamiento y prueba X = df.drop('target', axis=1) y = df\['target'] X\_train, X\_test, y\_train, y\_test = train\_test\_split(X, y, test\_size=0.2, random\_state=42) \# Crear y entrenar el modelo modelo = LinearRegression() modelo.fit(X\_train, y\_train) \# Realizar predicciones predicciones = modelo.predict(X\_test) \# Evaluar el modelo mse = mean\_squared\_error(y\_test, predicciones) print(f'Mean Squared Error: {mse}') ``` \#### 4.2. \*\*Clasificación con Redes Neuronales\*\* Para problemas de clasificación, puedes usar `Keras` y `TensorFlow`: ```python from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense from tensorflow.keras.utils import to\_categorical from sklearn.preprocessing import StandardScaler \# Normalizar datos scaler = StandardScaler() X\_scaled = scaler.fit\_transform(X) \# Convertir a variables categóricas y\_categorical = to\_categorical(y) \# Crear modelo de red neuronal modelo\_nn = Sequential(\[ Dense(64, activation='relu', input\_shape=(X\_scaled.shape\[1],)), Dense(32, activation='relu'), Dense(y\_categorical.shape\[1], activation='softmax') ]) modelo\_nn.compile(optimizer='adam', loss='categorical\_crossentropy', metrics=\['accuracy']) \# Entrenar el modelo modelo\_nn.fit(X\_scaled, y\_categorical, epochs=10, batch\_size=32, validation\_split=0.2) \# Evaluar el modelo loss, accuracy = modelo\_nn.evaluate(X\_scaled, y\_categorical) print(f'Loss: {loss}, Accuracy: {accuracy}') ``` \### Paso 5: Interpretación y Visualización de Resultados Después de aplicar modelos de IA, es importante interpretar y visualizar los resultados: ```python \# Importancia de características para regresión importances = modelo.coef\_ features = X.columns sorted\_indices = importances.argsort()\[::-1] plt.barh(features\[sorted\_indices], importances\[sorted\_indices]) plt.title('Importancia de características') plt.xlabel('Coeficiente') plt.show() \# Matriz de confusión para clasificación from sklearn.metrics import confusion\_matrix import seaborn as sns y\_pred = modelo\_nn.predict(X\_scaled) cm = confusion\_matrix(y, y\_pred.argmax(axis=1)) sns.heatmap(cm, annot=True, fmt='d') plt.title('Matriz de confusión') plt.show() ``` \### Conclusión Usar IA para el análisis de datos en Python involucra varios pasos: preparación de datos, análisis exploratorio, modelado, y evaluación de resultados. Las bibliotecas mencionadas (`pandas`, `scikit-learn`, `tensorflow`, `keras`, `matplotlib`, y `seaborn`) proporcionan herramientas poderosas para cada una de estas etapas. Si tienes algún caso específico o necesitas más detalles sobre un paso en particular, ¡házmelo saber!
Justo estaba teniendo ciertas dificultades respecto a qué preguntas hacerme al comenzar un análisis en proyectos propios. Este es un buen punto de partida para comenzarlos y también *(encaso de ser muy noobs, como yo)* ir entrenando nuestras habilidades de análisis. Además, podemos aprender de manera más lúdica sobre diferentes enfoques y técnicas de análisis que quizás no habíamos tenido en cuenta
Incluso puedes solicitar la ayuda de ChatGPT, Copilot o cualquier modelo de lenguaje natural para generar otro tipo de gráficos o bibliotecas adicionales.
Puedes tomar el código generado y llevarlo a tu entorno de desarrollo integrado (IDE), junto con la información necesaria, para probar cómo se visualizarían los datos.
El codigo generado lo puedes pasar a tu IDE, con la información que necesitas y probar como funcionaria la visualización de datos.
A partir de las preguntas proporcionadas, podemos solicitar a la IA que nos genere un script para resolver cada pregunta.
Dentro del proceso de análisis de datos, a menudo nos enfrentamos a desafíos, y la inteligencia artificial puede ser de gran ayuda. Podemos proporcionar un conjunto de datos y consultar a la IA sobre las posibles preguntas que se pueden formular sobre ese mismo conjunto de datos. Muchas de estas preguntas pueden servir como guía en nuestro segmento de negocio. Otra opción es solicitar un número determinado de preguntas junto con su relación con otras variables.

AI para análisis de datos
Script generado por AI en base a las preguntas creadas anteriormente:

import pandas as pd

Asegúrate de que las columnas de fecha estén en formato datetime

df[‘Order Date’] = pd.to_datetime(df[‘Order Date’])

¿Cuál es el volumen total de ventas por categoría de producto?

sales_by_category = df.groupby(‘Category’)[‘Sales’].sum()
print(sales_by_category)

¿Cuál es el producto más vendido en cada categoría?

top_products = df.groupby(‘Category’)[‘Product Name’].apply(lambda x: x.value_counts().index[0])
print(top_products)

¿Cómo varían las ventas a lo largo del tiempo?

sales_over_time = df.groupby(df[‘Order Date’].dt.to_period(‘M’))[‘Sales’].sum()
sales_over_time.plot()

¿Hay alguna tendencia o patrón estacional en las ventas?

sales_by_month = df.groupby(df[‘Order Date’].dt.month)[‘Sales’].sum()
sales_by_month.plot(kind=‘bar’)
Por favor, ten en cuenta que este script asume que tienes una columna ‘Sales’ en tu DataFrame para calcular las ventas. Si no es así, tendrás que ajustar el script para que se ajuste a la estructura de tus datos. ¡Espero que esto te ayude! 😊

Es realmente impresionante el tipo de respuestas que nos da Chat GPT actuando como asistente, si bien no podemos confiar ciegamente en su respuesta es un ahorro impresionante de trabajo…

Seguramente no puede reemplazarlo, pero seguramente si puede ayudar mucho al ejercicio de análisis de datos.