Noticias

ChatGPT resulta útil para la exploración de datos

Published

on

Esa ignorancia (y, seamos honestos, la falta de interés en aprender habilidades en ese campo) me hizo recurrir a ChatGPT el otro día en busca de respuestas a algunas preguntas que me habrían llevado demasiado tiempo resolver de otra manera. Recientemente me suscribí a ChatGPT Plus, que proporciona un acceso más amplio a GPT-4o y un mejor manejo de la carga de archivos, lo que hace posible este tipo de análisis de datos. Otros asistentes de IA como Claude ofrecen capacidades similares.

Comprender las fuentes de referencia

Aquí está el problema: el Finger Lakes Runners Club organiza 25 carreras por año, pero el número de carreras y las pequeñas inconsistencias de los datos hacen que el análisis a gran escala de los datos de registro sea desalentador. Por ejemplo, para algunas de nuestras carreras, preguntamos dónde se enteraron los inscritos sobre la carrera, ofreciéndoles un conjunto de opciones. Nuestra intención es saber cuáles de nuestros esfuerzos promocionales son los más exitosos.

Puedo imaginar fácilmente cómo crear una hoja de cálculo con hojas separadas para cada carrera y usar búsquedas para contar el número de cada respuesta para cada carrera. Sin embargo, construir una hoja de cálculo de este tipo llevaría horas, en particular solucionar problemas de las extrañas fórmulas de búsqueda. No ha sucedido. Mi reciente descubrimiento de que ChatGPT puede analizar archivos CSV y Excel apuntó a otra solución.

Primero, subí mis archivos arrastrándolos a un nuevo chat. (Solo podía tomar diez a la vez, por lo que tuve que cargar en lotes). Le pedí a ChatGTP que creara una tabla contando la cantidad de veces que cada elemento en la columna Fuente aparece en todos los registros de carreras. ¡Mágicamente lo hizo! Pero una vez que pude verla, la mesa no era exactamente lo que tenía en mente. Incluía una columna de índice y resumía todas las carreras. Cambié ligeramente de tema y le pedí a ChatGPT que eliminara la columna de índice y agregara datos por carrera a las filas de la tabla. Su primer intento confundió las filas y columnas, pero pedirle que transponga los datos solucionó el problema. Unos cuantos comandos más me dieron una fila y columna Total, una lista de carreras ordenada alfabéticamente y nombres de columnas más cortos.

Confirmé algunos de los números y cálculos cotejándolos con mis hojas de cálculo originales y haciendo verificaciones aleatorias con fórmulas simples. El objetivo general también era lo suficientemente insignificante como para que algunos errores menores no me hubieran perturbado en absoluto. Desafortunadamente, aparte de algunas generalidades sobre qué enfoques fueron los más comunes y algunos valores atípicos (el gran “De un amigo” sugiere que Turkey Trot funciona en gran medida de boca en boca), los datos fueron difíciles de entender.

Luego, le pedí a ChatGPT que cambiara de números brutos a porcentajes, lo que me permitió comparar la efectividad relativa de cada canal promocional más fácilmente. Sin embargo, examinar de cerca cada número en la tabla aún requirió un esfuerzo significativo, por lo que le pedí a ChatGPT que creara una visualización. Sugirió un gráfico de barras apiladas, que produjo el siguiente.

Gráfico de barras apiladas generado por ChatGPT

Francamente, este cuadro es exactamente lo que necesito transmitir al equipo de comunicación del club para que puedan evaluar lo que están haciendo. (Algunas de las barras no están al 100% debido a un paso de redondeo anterior, pero nuevamente, lo que me interesa es el bosque aquí, no algunas ramitas).

Evaluación de inscripciones tardías en carreras

Animado por la relativa facilidad de extraer los datos de la fuente de referencias, abordé un problema más complejo. En los últimos años, hemos visto un aumento significativo en las inscripciones tardías para carreras, y muchas personas se inscribieron en el último día o dos antes de una carrera. No tener una idea de cuán grande será una carrera hasta los últimos días causa incertidumbre y estrés a los directores de carrera, sobre todo al estimar cuánta comida comprar para los refrigerios después de la carrera.

Hemos jugado con varias técnicas para fomentar los registros más tempranos, incluidas solicitudes para registrarse antes, aumentos de precios y cortes anticipados, pero ninguna ha logrado cambiar la situación. La gente se disculpa por ser una molestia, pero no se detiene. Nuestras carreras no son lo suficientemente caras como para que los aumentos de precios marquen una gran diferencia. Los cortes tempranos generan correos electrónicos angustiados de aquellos que se perdieron y de personas que se presentan a la carrera pidiendo registrarse el día de la carrera, lo que en última instancia causa más estrés y trabajo. Dado que no estamos dispuestos a emplear políticas draconianas inapropiadas para un club comunitario dirigido por voluntarios y centrado en la inclusión, las inscripciones tardías se han convertido en un hecho de nuestro mundo moderno.

Sin embargo, saber cuántas personas probablemente se registrarán en la última semana nos ayudaría a estimar mejor las necesidades alimentarias y evitaría preocuparnos de que no se hayan realizado suficientes relaciones públicas. Como ya había subido todas esas hojas de cálculo de registro de carreras a ChatGPT, decidí ver si podía ayudarnos a visualizar el porcentaje de corredores que se registran tarde.

Como no todas las carreras tenían inscripciones el día de la carrera, y esa fecha no se podía calcular de otra manera, tuve que enviarle a ChatGPT una lista de las fechas reales de la carrera. Después de eso, lo hice crear gráficos de barras que mostraban cuántas personas se inscribieron el día de una carrera, un día antes, dos días antes, etc. Como puede ver, algunas carreras tienen mucho más peso en las inscripciones tardías (Turkey Trot, izquierda) que otras (Skunk Cabbage, derecha).

Sin embargo, cuando le pedí a ChatGPT que combinara todas las carreras, convirtiera los números brutos en porcentajes del total y condensara los días en semanas, el gráfico resultante fue claro: más del 50 % de las personas se inscribieron en la última semana.

Normalmente me habría detenido aquí, pero tenía curiosidad por saber si ChatGPT podría sugerir otras formas útiles de examinar la información. Ofrecía varios, incluido un gráfico de líneas acumuladas, un mapa de calor, un gráfico de áreas apiladas y un gráfico de barras apiladas porcentuales.

Sólo el gráfico de líneas acumuladas tenía sentido para mí, e incluso allí tuve problemas para internalizar lo que significaba la pendiente de la línea. Entonces, hice que ChatGPT cambiara el orden cronológico para que el día de la carrera estuviera en el lado derecho del gráfico y la línea aumentara con el tiempo. También le pedí que volviera a cambiar de números brutos a porcentajes, lo que produjo gráficos como este para Turkey Trot y Skunk Cabbage.

¡Ahora estamos hablando! Para Turkey Trot, que recibe muchas inscripciones tardías, puedo ver fácilmente que el 50% de los inscritos se inscribirán en los últimos tres días. Sin embargo, la marca del 50% para Skunk Cabbage llega unos dos meses antes. Planeo compartir estos gráficos con los distintos directores de carrera para que puedan entender lo que probablemente sucederá con las inscripciones este año.

Para ser claros, no habría pensado en hacer un gráfico de líneas acumulativas por mi cuenta, e incluso si lo hubiera hecho, no estoy seguro de haber podido construir estos gráficos. Ciertamente no sin horas de trabajo, en lugar de los 15 o 20 minutos que dediqué a dar instrucciones a ChatGPT.

La extrema rareza de un asistente de IA

Mi recuento de cómo llegué a estos gráficos pasa por alto todos los idas y venidas que fueron necesarios. En la mayoría de los casos, obtenía algo sorprendentemente impresionante después de una o dos indicaciones. En cuestión de minutos, tendría tablas o gráficos que parecían razonables.

Sin embargo, incluso si no me importaba la precisión extrema, los números debían ser aproximadamente correctos. Varias veces, cuando revisé un número, estaba completamente equivocado. Eso también sucede en las hojas de cálculo que construyo, pero en lugar de descubrir dónde me había equivocado en una fórmula, simplemente le dije a ChatGPT que corrigiera el error. Tuve que repetirme en algunas ocasiones hasta que los números se alinearon con lo que había subido.

La mayor parte de mi tiempo lo dedicaba a pequeñas cosas. Mientras trabajaba en la tabla de fuentes de referencia, quería cambiar la forma en que se ordenaba. Esto se logró fácilmente, pero ChatGPT también ordenó la fila y columna Total en lugar de dejarlas en la parte inferior y derecha. No tenía idea de que eran diferentes de los datos y debían permanecer en esas posiciones, aunque estuvo feliz de volver a colocarlos allí cuando me quejé. También usaba notación decimal en algunos lugares, aunque todo era un número entero, así que tuve que decirle que se quedara con números enteros.

Además, al construir los gráficos, tuve que hacer que ChatGPT usara números enteros en los ejes X e Y porque los datos no contenían medios registros ni medios días. De hecho, tropezó con el hecho de que las fechas de registro sí incluían horas (estaba comenzando a descender por la madriguera del conejo de la zona horaria), pero solucioné ese problema diciéndole que ignorara las horas. Eso por sí solo era mucho más fácil que luchar con los formatos de fecha en una hoja de cálculo, que encuentro casi completamente inescrutable.

Aún más extraño fue tener que cambiar el formato con indicaciones. Cambiar los títulos de las columnas, los títulos de los gráficos e incluso la ubicación de la leyenda requería que explicara lo que quería en lugar de hacerlo yo mismo.

Rara vez trabajo con personas en este tipo de cosas, por lo que la mayor parte de mi trabajo iterativo ocurre en mi cabeza sin ser exteriorizado. Sin embargo, pensándolo bien, la experiencia no fue tan diferente de cuando Josh Centers desarrolló por primera vez los gráficos financieros que utilizamos cuando cubrimos los informes trimestrales de Apple. Me mostraba un gráfico y yo le pedía que cambiara el color, modificara un título o ajustara el espaciado de la leyenda. Algunas veces, cuando le pregunté por qué los gráficos no se veían bien, descubrió que una fórmula había salido mal y estaba calculando mal los números. ChatGPT cometió errores mucho más extraños que Josh, pero también respondió mucho más rápido a solicitudes como “Cambie los gráficos para que la línea aumente con el tiempo en lugar de disminuir”.

Me encontré con un par de inconvenientes inesperados. Primero, como un gato en un árbol, ChatGPT tiene problemas para darse la vuelta. Si lo envié por un camino que luego decidí que era un callejón sin salida, decirle a ChatGPT que regresara e intentara un enfoque diferente a menudo fallaba.

Creo que el problema radica en los límites de memoria de ChatGPT. Procesa instrucciones en el hilo actual pero no retiene el historial completo de operaciones de forma indefinida. Por ejemplo, una vez que le dije a ChatGPT que cambiara de números brutos a porcentajes, los números brutos ya no formaban parte de su contexto, lo que dificultaba la reversión. Sin un mecanismo para “regresar”, las etapas anteriores de datos esencialmente se borraron, lo que me obligó a comenzar de nuevo en un nuevo chat.

La solución fue empezar de nuevo en un nuevo chat, pero eso requirió repetir todas las indicaciones deseadas hasta el punto en que quise probar un enfoque diferente. Podría haber sido posible copiar todas esas indicaciones del chat anterior y combinarlas en una sola en el chat nuevo, pero no lo intenté.

El segundo inconveniente era que ChatGPT se “cansaba” después de un tiempo. Pido disculpas por la antropomorfización, pero las cosas que había hecho antes sin problemas eventualmente se volvieron problemáticas. Comenzó a olvidarse de algunas de las carreras que había subido y, cuando me quejé, inventó los datos por completo. Finalmente, tiró la toalla y dijo:

Parece que el conjunto de datos de trabajo para registros (filtered_corrected_days_before_all_df) ya no está disponible. Para volver a calcular con precisión el número total de registros, tendré que volver a cargar y procesar los archivos de registro originales. ¿Podrías volver a cargar los archivos necesarios o confirmar cómo deseas continuar?

Sospecho que este es el mismo problema que intentar volver a un resultado anterior y comenzar de nuevo. Con un contexto limitado, muchos de mis datos habían sido modificados, modificados y transformados para continuar la conversación de alguna manera útil. En otras palabras, ChatGPT era como el niño pequeño de la caricatura de The Far Side que dice: “Sra. Johnson, ¿puedo disculparme? Mi cerebro está lleno”.

A pesar de algunos inconvenientes, generar tablas y gráficos simplemente cargando datos y solicitando ChatGPT parecía un vistazo al futuro. Una vez que adapté mi enfoque para interactuar con ChatGPT (formulando instrucciones claramente y anticipando revisiones iterativas como lo haría cuando trabajaba con una persona), el proceso se volvió sorprendentemente eficiente. Para cualquiera que deba analizar grandes conjuntos de datos, ChatGPT ofrece una alternativa convincente a las herramientas tradicionales. Le animo a que experimente con él la próxima vez que desee explorar o visualizar datos complejos rápidamente.

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Trending

Exit mobile version