Wat ik heb geleerd van het gebruik van ChatGPT voor datawetenschap - KDnuggets

Wat ik heb geleerd van het gebruik van ChatGPT voor Data Science – KDnuggets

Bronknooppunt: 3093078

Wat ik heb geleerd van het gebruik van ChatGPT voor datawetenschap
Afbeelding door auteur
 

Er is één les die ik heb geleerd door het gebruik van ChatGPT. Het is geweldig nuttig in de datawetenschap, maar je moet alles wat het oplevert nauwkeurig onderzoeken. Het is geweldig voor sommige taken en kan ze zeer snel en nauwkeurig uitvoeren. Voor sommige andere taken is het goed genoeg en moet je er meerdere keren om vragen. En er is één taak waarvan ik vond dat ChatGPT ronduit slecht is.

U kunt uw dataset aan het ChatGPT-bericht toevoegen en door enkele eenvoudige instructies te geven, kan ChatGPT de gegevens voor u verkennen.

Ik kan er bijvoorbeeld een dataset uit halen dit dataproject. De instructies die ik gaf zijn:

“Gebruik de bijgevoegde gegevens om een ​​beschrijvende statistische analyse uit te voeren. Neem het volgende op:

  • Vat basisstatistieken samen (gemiddelde, mediaan, standaarddeviatie, enz.).
  • Identificeer ontbrekende waarden en stel strategieën voor om hiermee om te gaan.”

Het retourneert de samenvatting die er als volgt uitziet. Voor elke variabele wordt dezelfde berekening uitgevoerd.

Leeftijd:

  • Gemiddelde: 28.79 jaar
  • Standaarddeviatie: 6.94 jaar
  • Bereik: 18 tot 50 jaar

Er werden ook geen ontbrekende waarden in de dataset geïdentificeerd.

Als u voor deze berekeningen ook de Python-code nodig heeft, kunt u deze vragen deze te schrijven.

Gebruik deze code om de dataset te laden.

aerofit_data = pd.read_csv(file_path)

Voor basisstatistieken geeft het deze.

basic_stats = aerofit_data.describe()

En met deze code kunt u de ontbrekende waarden controleren.

missing_values = aerofit_data.isnull().sum()

Verder kan ik ChatGPT vragen om de verdeling van de belangrijkste variabelen te visualiseren en potentiële uitschieters en afwijkingen te detecteren.

Het creëert histogrammen en boxplots voor de belangrijkste variabelen: leeftijd, inkomen en mijlen. Er werden mogelijke uitschieters ontdekt in de verdeling van inkomsten en mijlen.

 

Wat ik heb geleerd van het gebruik van ChatGPT voor datawetenschap
Gemaakt door auteur/ChatGPT
 
Wat ik heb geleerd van het gebruik van ChatGPT voor datawetenschap
Gemaakt door auteur/ChatGPT
 

Het interpreteert ook de visualisaties. Het merkt dus op dat de inkomensverdeling scheef is, wat erop wijst dat de meeste klanten een inkomen aan de onderkant van het spectrum hebben, en dat minder klanten aanzienlijk hogere inkomens verdienen. De boxplot suggereert dat er enkele uitschieters aan de bovenkant zijn.

 

Wat ik heb geleerd van het gebruik van ChatGPT voor datawetenschap
Gemaakt door auteur/ChatGPT
 
Wat ik heb geleerd van het gebruik van ChatGPT voor datawetenschap
Gemaakt door auteur/ChatGPT
 

Dezelfde interpretatie is van toepassing op de Miles-verdeling: scheef naar rechts en uitschieters aan de hogere kant.

Gezien de aard van de gegevens suggereert dit dat deze uitschieters niet noodzakelijkerwijs fouten zijn, maar eerder een specifiek klantensegment vertegenwoordigen. Wat de scheve verdelingen betreft, suggereert het transformaties (bijvoorbeeld log-transformatie) om de gegevens te normaliseren.

Je kunt hem uiteraard ook vragen om voor deze visualisaties een Python-code te schrijven.

Ik kan dezelfde gegevens gebruiken en aan ChatGPT vragen of het geschikt is logistische regressie. En zo niet, wat moet ik dan doen om het zo te transformeren dat het passend is?

Het antwoordde dat mijn gegevens vooral geschikt zijn voor beschrijvende en inferentiële analyse van continue gegevens.

Dit zijn de voorgestelde manieren om gegevens te transformeren voor logistische regressie.

Creëer een binaire uitkomst: Creëer een binaire uitkomst door klanten te categoriseren als ‘hoog gebruik’ of ‘laag gebruik’ op basis van een mediaanverdeling voor de variabele Gebruik. Ook kan de binaire uitkomst ‘aankoop van een loopband’ versus ‘geen aankoop van een loopband’ zijn.

Controleer op multicolineariteit: Gebruik een correlatiematrix or Variantie inflatiefactor (VIF) om te controleren op multicolineariteit. Als er sprake is van multicollineariteit, kunnen de gecorreleerde variabelen worden verwijderd of gecombineerd.

Functieschaling: Hoewel het schalen van functies voor modelaanpassing niet nodig is voor logistische regressie, kan het wel nuttig zijn convergentie. Dit is vooral het geval voor objecten met aanzienlijk verschillende schalen.

Niet-lineariteit aanpakken: De transformaties, zoals inloggen or vierkantswortel, kan worden gebruikt voor variabelen die niet voldoen aan de lineariteitsaanname.

Voorbeeldgrootte: De dataset moet groot genoeg zijn gezien het aantal voorspellende variabelen.

Gegevens voorverwerking: Omgaan met uitschieters en categorische variabelen (door one-hot-codering of labelcodering) wordt voorgesteld. Bovendien wordt er voorgesteld om met ontbrekende waarden om te gaan, maar dit is niet van toepassing op mijn gegevens, omdat er geen ontbrekende waarden zijn.

ChatGPT kan feitelijk nuttig zijn in elke fase van een data science-project. U kunt hem vragen een webscrapingcode te schrijven. U kunt hem de opdracht geven uw gegevens te verkennen en voor te bereiden voor de machine learning-algoritmen. Het kan u ook een code geven voor het kiezen van het juiste algoritme, het splitsen van datasets, A/B-testen en prestatieverhogende algoritmen. Ten slotte kunt u ChatGPT ook vragen om een ​​code voor modelimplementatie te schrijven.

Hoewel ChatGPT dat allemaal kan, is het heel goed mogelijk dat je niet meteen een code krijgt die precies doet wat je wilt. U moet dus begrijpen wat u wilt bereiken en de code controleren. De kans is groot dat u ChatGPT om codecorrecties moet vragen en meer instructies moet geven over wat u moet wijzigen.

ChatGPT kan gebruikers helpen die nog nieuwe codeertalen leren. Stel je voor dat je een SQL-master bent en dat je geen problemen hebt met het oplossen ervan deze interviewvraag. Je wilt Python echter aan je vaardigheden toevoegen. ChatGPT kan u daarbij helpen. U kunt de SQL-code kopiëren en ChatGPT vragen deze naar Python te converteren.

De SQL-code is dus deze.

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 schreef de Python-code op basis van de bovenstaande SQL-code, maar deze werkt niet goed. Dus houd ik me bezig met het bashen van ChatGPT omdat het niet de juiste code heeft geschreven. En ik vraag het om het opnieuw te proberen, omdat de uitvoer niet hetzelfde is als bij SQL-code. Het probeert het opnieuw en retourneert het juiste resultaat.

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

Zoals je kunt zien, krijg je vóór elk codeblok een mooie code met commentaar. Om uw leerproces te verbeteren, kunt u hem vragen deze code te interpreteren. Op die manier zul je nog dieper ingaan op wat elke coderegel doet en hoe.

Als ik slecht zeg, bedoel ik echt slecht! Het gaat naar het niveau waarop het de juiste formule gebruikt en de juiste waarden invoert, maar er op de een of andere manier in slaagt om niet zo ingewikkelde berekeningen te verknoeien.

Kijk eens naar dit. Ik vroeg hem om dit probleem op te lossen: “Stel dat je tien keer een eerlijke zeszijdige dobbelsteen gooit. Wat is de kans dat je twee 10's, drie 1's, één 2, nul 3's, drie 4's en één 5 gooit?'

Op deze manier wordt de waarschijnlijkheid berekend.

 

Wat ik heb geleerd van het gebruik van ChatGPT voor datawetenschap
 

Het verprutst bij het berekenen van faculteiten. En dat doet ze met stijl! Volkomen verkeerd gezegde 2! = 12. Dat is het niet, het is 2. Hoe kun je een eenvoudige berekening, zoals 2×1 = 2, verpesten? Dit is echt lachwekkend!

Nog grappiger is dat één keer, 3! = 36, en de tweede keer 3! = 6. Met dank aan, want het was minstens één keer correct.

Als ik hem vraag om de berekening zonder verdere uitleg te corrigeren, berekent hij opnieuw en komt met de waarschijnlijkheid 0.0001389. Ik kon mijn ogen niet geloven! Het kan precies dezelfde formule en waarden gebruiken en een ander resultaat opleveren dat nog steeds verkeerd is!

Ik vroeg hem opnieuw om de berekening te corrigeren en uiteindelijk kreeg hij het juiste resultaat: 0.0008336. De derde keer is scheepsrecht!

Toegegeven, deze fouten zijn gemaakt door ChatGPT 3.5. Ik stelde ChatGPT 4 dezelfde vraag, en bij de eerste poging kwam de juiste berekening naar voren. U kunt ook enkele wiskundige plug-ins gebruiken om aan de veilige kant te blijven.

De belangrijkste les die we uit dit alles kunnen leren is dat ChatGPT een slechte meester is, maar een zeer goede dienaar. Het kan nuttig zijn bij het schrijven van code, het debuggen, analyseren en visualiseren van gegevens. Vertrouw het echter nooit volledig en neem wat het schrijft nooit zonder onderzoek aan.

Controleer de code die het schrijft en controleer de berekeningen. Je bent tenslotte een datawetenschapper en ChatGPT is dat niet! Mogelijk krijgt u bij de eerste poging niet de gewenste resultaten van ChatGPT. Maar door preciezere instructies te geven en het meerdere keren te proberen, bereik je waarschijnlijk het gewenste resultaat.
 
 

Nate Rosidi is een datawetenschapper en in productstrategie. Hij is ook een adjunct-professor onderwijsanalyse en is de oprichter van StrataScratch, een platform dat datawetenschappers helpt bij het voorbereiden van hun interviews met echte interviewvragen van topbedrijven. Maak contact met hem op Twitter: StrataScratch or LinkedIn.

Tijdstempel:

Meer van KDnuggets