Lo que aprendí al usar ChatGPT para ciencia de datos - KDnuggets

Lo que aprendí al usar ChatGPT para ciencia de datos – KDnuggets

Nodo de origen: 3093078

Lo que aprendí al usar ChatGPT para ciencia de datos
Imagen del autor
 

Hay una sola lección que aprendí al usar ChatGPT. Es maravillosamente útil en la ciencia de datos, pero debes examinar todo lo que genera. Es excelente para algunas tareas y puede realizarlas de manera muy rápida y precisa. Para otras tareas, es suficiente y tendrás que solicitarlo varias veces. Y hay una tarea en la que descubrí que ChatGPT es absolutamente malo.

Puede adjuntar su conjunto de datos al mensaje de ChatGPT y, al brindar varias instrucciones simples, ChatGPT puede explorar los datos por usted.

Por ejemplo, puedo tomar un conjunto de datos de este proyecto de datos. Las instrucciones que di son:

“Utilice los datos adjuntos para realizar un análisis estadístico descriptivo. Incluya lo siguiente:

  • Resumir estadísticas básicas (media, mediana, desviación estándar, etc.).
  • Identifique los valores faltantes y sugiera estrategias para manejarlos”.

Devuelve el resumen que se parece a este. Hace el mismo cálculo para cada variable.

Años:

  • Media: 28.79 años
  • Desviación estándar: 6.94 años
  • Rango: 18 a 50 años

Tampoco identificó valores faltantes en el conjunto de datos.

Si también necesita el código Python para estos cálculos, puede solicitarle que los escriba.

Para cargar el conjunto de datos, utilice este código.

aerofit_data = pd.read_csv(file_path)

Para estadísticas básicas, da esta.

basic_stats = aerofit_data.describe()

Y puede verificar los valores faltantes con este código.

missing_values = aerofit_data.isnull().sum()

Además, puedo pedirle a ChatGPT que visualice la distribución de variables clave y detecte posibles valores atípicos y anomalías.

Crea histogramas y diagramas de caja para variables clave: edad, ingresos y millas. Detectó posibles valores atípicos en la distribución de Ingresos y Millas.

 

Lo que aprendí al usar ChatGPT para ciencia de datos
Creado por Autor/ChatGPT
 
Lo que aprendí al usar ChatGPT para ciencia de datos
Creado por Autor/ChatGPT
 

También interpreta las visualizaciones. Por lo tanto, observa que la distribución del ingreso está sesgada hacia la derecha, lo que indica que la mayoría de los clientes tienen ingresos en el extremo inferior del espectro y menos clientes obtienen ingresos significativamente más altos. El diagrama de caja sugiere que hay algunos valores atípicos en el extremo superior.

 

Lo que aprendí al usar ChatGPT para ciencia de datos
Creado por Autor/ChatGPT
 
Lo que aprendí al usar ChatGPT para ciencia de datos
Creado por Autor/ChatGPT
 

La misma interpretación se aplica a la distribución de Millas: asimétrica a la derecha y valores atípicos en el extremo superior.

Teniendo en cuenta la naturaleza de los datos, sugiere que estos valores atípicos no son necesariamente errores, sino que representan un segmento de clientes específico. En cuanto a las distribuciones asimétricas, sugiere transformaciones (por ejemplo, transformación logarítmica) para normalizar los datos.

Por supuesto, también puedes pedirle que escriba un código Python para estas visualizaciones.

Puedo usar los mismos datos y preguntarle a ChatGPT si es adecuado para regresión logística. Y si no, ¿qué debo hacer para transformarlo y que sea apropiado?

Respondió que mis datos son principalmente adecuados para el análisis descriptivo e inferencial de datos continuos.

Estas son las formas sugeridas de transformar datos para la regresión logística.

Cree un resultado binario: Cree un resultado binario categorizando a los clientes como “uso elevado” o “uso bajo” según una división mediana de la variable Uso. Además, el resultado binario puede ser “comprar una cinta de correr” versus “no comprar una cinta de correr”.

Verifique la multicolinealidad: Utilizar matriz de correlación or Factor de inflación de varianza (VIF) para comprobar la multicolinealidad. Si hay multicolinealidad, las variables correlacionadas se pueden eliminar o combinar.

Escalado de funciones: Si bien el escalado de características para el ajuste del modelo no es necesario para la regresión logística, puede ser beneficioso para convergencia. Este es el caso especialmente de elementos con escalas significativamente diferentes.

Abordar la no linealidad: Las transformaciones, como log or raíz cuadrada, se puede utilizar para variables que no satisfacen el supuesto de linealidad.

Tamaño de la muestra: El conjunto de datos debe ser lo suficientemente grande dado el número de variables predictoras.

Preprocesamiento de datos: Manejo de valores atípicos y variables categóricas (por codificación one-hot o codificación de etiquetas) es sugerido. Además, sugiere manejar los valores faltantes, pero esto no se aplica a mis datos, ya que no faltan valores.

ChatGPT puede resultar útil en cada etapa de un proyecto de ciencia de datos. Puede solicitarle que escriba un código de raspado web. Puede indicarle que explore y prepare sus datos para los algoritmos de aprendizaje automático. También puede brindarle un código para elegir el algoritmo correcto, la división del conjunto de datos, las pruebas A/B y los algoritmos de mejora del rendimiento. Finalmente, también puedes pedirle a ChatGPT que te escriba un código para la implementación del modelo.

Si bien ChatGPT puede hacer todo eso, es muy posible que no obtenga inmediatamente un código que haga exactamente lo que desea. Por lo tanto, debe comprender lo que desea lograr y verificar el código. Lo más probable es que tengas que solicitar a ChatGPT que corrija el código y proporcionar más instrucciones sobre qué cambiar.

ChatGPT puede ayudar a los usuarios que todavía están aprendiendo nuevos lenguajes de codificación. Imagina que eres un maestro de SQL y no tienes problemas para resolver esta pregunta de la entrevista. Sin embargo, desea agregar Python a sus habilidades. ChatGPT puede ayudarte con eso. Puede copiar el código SQL y pedirle a ChatGPT que lo convierta a Python.

Entonces, el código SQL es este.

SELECT 
  company, 
  profit 
FROM 
  (
    SELECT 
      *, 
      rank() OVER (
        ORDER BY 
          profit DESC
      ) as rank 
    FROM 
      (
        SELECT 
          company, 
          sum(profits) AS profit 
        FROM 
          forbes_global_2010_2014 
        GROUP BY 
          company
      ) sq
  ) sq2 
WHERE 
  rank = 3;

ChatGPT escribió el código Python basado en el código SQL anterior, pero no funciona correctamente. Así que me dedico a criticar a ChatGPT por no escribir el código correcto. Y le pido que vuelva a intentarlo, ya que el resultado no es el mismo que con el código SQL. Lo intenta de nuevo y devuelve el resultado correcto.

import pandas as pd

# Assuming 'forbes_global_2010_2014' is a pandas DataFrame with columns 'company' and 'profits'
# Since we don't have the actual data, this code assumes that the DataFrame is already loaded

# Step 1: Group by company and sum the profits
company_profits_sum = forbes_global_2010_2014.groupby('company')['profits'].sum().reset_index()

# Step 2: Rank the companies by profit in descending order
company_profits_sum['rank'] = company_profits_sum['profits'].rank(ascending=False, method='max')

# Step 3: Filter the top 3 companies
top_companies = company_profits_sum[company_profits_sum['rank'] = 3]

# Final selection of columns
result = top_companies[['company', 'profits']].sort_values('profits', ascending=False)

result  # This will display the top 3 companies by profit

Como puede ver, obtiene un código agradable con comentarios antes de cada bloque de código. Para mejorar su aprendizaje, puede pedirle que interprete este código. De esa manera, profundizará aún más en lo que hace cada línea de código y cómo.

¡Cuando digo malo, quiero decir realmente malo! Llega al nivel en el que utiliza la fórmula correcta e introduce los valores correctos, pero de alguna manera logra estropear cálculos no tan complicados.

Echa un vistazo a esto. Le pedí que resolviera este problema: “Supongamos que lanzas un dado de seis caras 10 veces. ¿Cuál es la probabilidad de sacar dos 1, tres 2, un 3, cero 4, tres 5 y un 6?

Calcula la probabilidad de esta manera.

 

Lo que aprendí al usar ChatGPT para ciencia de datos
 

Se equivoca al calcular factoriales. ¡Y lo hace con estilo! ¡Completamente equivocado al decir 2! = 12. No lo es, es 2. ¿Cómo puedes estropear un cálculo simple como 2×1 = 2? ¡Esto es realmente ridículo!

¡Aún más divertido es que una vez, 3! = 36, y la segunda vez 3! = 6. Gracias, ya que fue correcto al menos una vez.

Cuando le pido que corrija el cálculo sin más explicaciones, vuelve a calcular y obtiene la probabilidad de 0.0001389. ¡No podía creer lo que veía! ¡Puede usar exactamente la misma fórmula y valores y llegar a un resultado diferente que aún así es incorrecto!

Le pedí nuevamente que corrigiera el cálculo y finalmente arrojó el resultado correcto: 0.0008336. ¡La tercera vez es la vencida!

Es cierto que ChatGPT 3.5 cometió estos errores. Le hice la misma pregunta a ChatGPT 4 y obtuvo el cálculo correcto en el primer intento. También puede utilizar algunos complementos matemáticos para estar seguro.

El principal aprendizaje de todo esto es que ChatGPT es un mal maestro pero un muy buen servidor. Puede resultar útil para escribir código, depurar, analizar y visualizar datos. Sin embargo, nunca confíes completamente en él y nunca tomes lo que escribe sin escrutinio.

Verifique el código que escribe y verifique los cálculos. Después de todo, eres un científico de datos, ¡y ChatGPT no lo es! Es posible que no obtenga los resultados deseados de ChatGPT en el primer intento. Pero dándole instrucciones más precisas e intentándolo varias veces probablemente obtendrá el resultado deseado.
 
 

Nate Rosidi es científico de datos y en estrategia de producto. También es profesor adjunto de enseñanza de análisis y es el fundador de StrataScratch, una plataforma que ayuda a los científicos de datos a prepararse para sus entrevistas con preguntas de entrevistas reales de las principales empresas. Conéctate con él en Gorjeo: StrataScratch or Etiqueta LinkedIn.

Sello de tiempo:

Mas de nuggets