Ce que j'ai appris en utilisant ChatGPT pour la science des données - KDnuggets

Ce que j'ai appris en utilisant ChatGPT pour la science des données – KDnuggets

Nœud source: 3093078

Ce que j'ai appris en utilisant ChatGPT pour la science des données
Image par auteur
 

Il y a une seule leçon que j'ai apprise en utilisant ChatGPT. C'est merveilleusement utile en science des données, mais vous devez examiner minutieusement tout ce qu'il produit. Il est idéal pour certaines tâches et peut les effectuer très rapidement et avec précision. Pour certaines autres tâches, c'est suffisant et vous devrez le demander plusieurs fois. Et il y a une tâche pour laquelle je trouve que ChatGPT est carrément mauvais.

Vous pouvez joindre votre ensemble de données au message ChatGPT et, en donnant plusieurs instructions simples, ChatGPT peut explorer les données pour vous.

Par exemple, je peux prendre un ensemble de données de ce projet de données. Les instructions que j'ai données sont les suivantes :

« Utilisez les données ci-jointes pour effectuer une analyse statistique descriptive. Inclure les éléments suivants:

  • Résumer les statistiques de base (moyenne, médiane, écart type, etc.).
  • Identifiez les valeurs manquantes et suggérez des stratégies pour les gérer.

Il renvoie le résumé qui ressemble à ceci. Il effectue le même calcul pour chaque variable.

Âge:

  • Moyenne : 28.79 ans
  • Écart type : 6.94 ans
  • Fourchette : 18 à 50 ans

Il n’a également identifié aucune valeur manquante dans l’ensemble de données.

Si vous avez également besoin du code Python pour ces calculs, vous pouvez lui demander de les écrire.

Pour charger l'ensemble de données, utilisez ce code.

aerofit_data = pd.read_csv(file_path)

Pour les statistiques de base, cela donne celle-ci.

basic_stats = aerofit_data.describe()

Et vous pouvez vérifier les valeurs manquantes avec ce code.

missing_values = aerofit_data.isnull().sum()

De plus, je peux demander à ChatGPT de visualiser la distribution des variables clés et de détecter les valeurs aberrantes et anomalies potentielles.

Il crée des histogrammes et des diagrammes en boîte pour les variables clés : âge, revenu et miles. Il a détecté d'éventuelles valeurs aberrantes dans la distribution des revenus et des miles.

 

Ce que j'ai appris en utilisant ChatGPT pour la science des données
Créé par Auteur/ChatGPT
 
Ce que j'ai appris en utilisant ChatGPT pour la science des données
Créé par Auteur/ChatGPT
 

Il interprète également les visualisations. Ainsi, il remarque que la répartition des revenus est asymétrique vers la droite, ce qui indique que la plupart des clients ont un revenu situé à l’extrémité inférieure du spectre et qu’un moins grand nombre de clients gagnent des revenus nettement plus élevés. Le boxplot suggère qu’il existe des valeurs aberrantes dans le haut de l’échelle.

 

Ce que j'ai appris en utilisant ChatGPT pour la science des données
Créé par Auteur/ChatGPT
 
Ce que j'ai appris en utilisant ChatGPT pour la science des données
Créé par Auteur/ChatGPT
 

La même interprétation est applicable à la distribution Miles : asymétrique à droite et valeurs aberrantes à l’extrémité supérieure.

Compte tenu de la nature des données, cela suggère que ces valeurs aberrantes ne sont pas nécessairement des erreurs mais représentent plutôt un segment de clientèle spécifique. Concernant les distributions asymétriques, il suggère des transformations (par exemple, transformation log) pour normaliser les données.

Bien entendu, vous pouvez également lui demander d’écrire un code Python pour ces visualisations.

Je peux utiliser les mêmes données et demander à ChatGPT si cela convient régression logistique. Et sinon, que dois-je faire pour le transformer pour qu'il soit approprié ?

Il m'a répondu que mes données étaient principalement adaptées à l'analyse descriptive et inférentielle de données continues.

Voici les méthodes suggérées pour transformer les données pour la régression logistique.

Créez un résultat binaire : Créez un résultat binaire en catégorisant les clients en « utilisation élevée » ou « faible utilisation en fonction d'une répartition médiane sur la variable Utilisation. En outre, le résultat binaire peut être « achat de tapis roulant » ou « pas d’achat de tapis roulant ».

Vérifiez la multicolinéarité : Utiliser un matrice de corrélation or Facteur d'inflation de variance (VIF) pour vérifier la multicolinéarité. En cas de multicolinéarité, les variables corrélées peuvent être supprimées ou combinées.

Mise à l'échelle des fonctionnalités : Bien que la mise à l'échelle des caractéristiques pour l'ajustement du modèle ne soit pas nécessaire pour la régression logistique, elle peut être bénéfique pour convergence. C’est particulièrement le cas pour les entités dont les échelles sont sensiblement différentes.

Lutter contre la non-linéarité : Les transformations, telles que enregistrer or racine carrée, peut être utilisé pour les variables qui ne satisfont pas à l’hypothèse de linéarité.

Taille de l'échantillon: L'ensemble de données doit être suffisamment grand compte tenu du nombre de variables prédictives.

Prétraitement des données : Gestion des valeurs aberrantes et des variables catégorielles (par encodage à chaud ou encodage d'étiquettes) est suggéré. De plus, cela suggère de gérer les valeurs manquantes, mais cela ne s'applique pas à mes données, car il n'y a aucune valeur manquante.

ChatGPT peut en fait être utile à chaque étape d'un projet de science des données. Vous pouvez l’inviter à écrire un code de web scraping. Vous pouvez lui demander d'explorer et de préparer vos données pour les algorithmes d'apprentissage automatique. Il peut également vous fournir un code pour choisir le bon algorithme, le fractionnement des ensembles de données, les tests A/B et les algorithmes d'amélioration des performances. Enfin, vous pouvez également demander à ChatGPT de vous écrire un code pour le déploiement du modèle.

Bien que ChatGPT puisse faire tout cela, il est fort possible que vous n'obteniez pas immédiatement un code qui fasse exactement ce que vous voulez. Vous devez donc comprendre ce que vous voulez réaliser et vérifier le code. Il est probable que vous deviez demander à ChatGPT des corrections de code et fournir plus d'instructions sur les éléments à modifier.

ChatGPT peut aider les utilisateurs qui apprennent encore de nouveaux langages de codage. Imaginez que vous êtes un maître SQL et que vous n'avez aucun problème à résoudre cette question d'entretien. Cependant, vous souhaitez ajouter Python à vos compétences. ChatGPT peut vous aider. Vous pouvez copier le code SQL et demander à ChatGPT de le convertir en Python.

Donc, le code SQL est le suivant.

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 a écrit le code Python basé sur le code SQL ci-dessus, mais cela ne fonctionne pas correctement. Je m’engage donc à critiquer ChatGPT pour ne pas avoir écrit le bon code. Et je lui demande de réessayer, car le résultat n'est pas le même qu'avec le code SQL. Il réessaye et renvoie le résultat correct.

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

Comme vous pouvez le voir, vous obtenez un joli code avec des commentaires avant chaque bloc de code. Pour améliorer votre apprentissage, vous pouvez lui demander d'interpréter ce code. De cette façon, vous découvrirez encore plus en profondeur ce que fait chaque ligne de code et comment.

Quand je dis mauvais, je veux dire vraiment mauvais ! Il va au niveau où il utilise la bonne formule et intègre les bonnes valeurs, mais parvient d’une manière ou d’une autre à gâcher des calculs pas si compliqués.

Jetez un œil à ceci. Je lui ai demandé de résoudre ce problème : « Supposons que vous lanciez 10 fois un dé à six faces. Quelle est la probabilité d’obtenir deux 1, trois 2, un 3, zéro 4, trois 5 et un 6 ? »

Il calcule la probabilité de cette façon.

 

Ce que j'ai appris en utilisant ChatGPT pour la science des données
 

Cela gâche lors du calcul des factorielles. Et il le fait avec style ! Complètement faux en disant 2 ! = 12. Ce n'est pas le cas, c'est 2. Comment pouvez-vous gâcher un calcul simple tel que 2×1 = 2 ? C'est vraiment risible !

Encore plus drôle, c'est une fois, 3 ! = 36, et la deuxième fois 3 ! = 6. Créditez-le, car il était correct au moins une fois.

Lorsque je lui demande de corriger le calcul sans autre explication, il recalcule et aboutit à une probabilité de 0.0001389. Je n'en croyais pas mes yeux ! Il peut utiliser exactement la même formule et les mêmes valeurs et aboutir à un résultat différent qui est toujours faux !

Je lui ai demandé à nouveau de corriger le calcul, et il a finalement renvoyé le résultat correct : 0.0008336. La troisième fois est un charme !

Certes, ces erreurs ont été commises par ChatGPT 3.5. J'ai posé la même question à ChatGPT 4, et il a trouvé le calcul correct du premier coup. Vous pouvez également utiliser des plug-ins mathématiques pour rester prudent.

Le principal enseignement de tout cela est que ChatGPT est un mauvais maître mais un très bon serviteur. Cela peut être utile pour écrire du code, déboguer, analyser et visualiser des données. Cependant, ne lui faites jamais entièrement confiance et ne prenez jamais ce qu’il écrit sans examen minutieux.

Vérifiez le code qu'il écrit et vérifiez les calculs. Vous êtes un data scientist, après tout, et ChatGPT ne l'est pas ! Vous n’obtiendrez peut-être pas les résultats souhaités de ChatGPT du premier coup. Mais en lui donnant des instructions plus précises et en essayant plusieurs fois, vous obtiendrez probablement le résultat souhaité.
 
 

Nate Rosidi est data scientist et en stratégie produit. Il est également professeur adjoint enseignant l'analytique et fondateur de StrataScratch, une plate-forme aidant les data scientists à préparer leurs entretiens avec de vraies questions d'entretien posées par les meilleures entreprises. Connectez-vous avec lui sur Twitter : StrataScratch or LinkedIn.

Horodatage:

Plus de KDnuggetsGenericName