Hva jeg lærte av å bruke ChatGPT for datavitenskap - KDnuggets

Hva jeg lærte av å bruke ChatGPT for datavitenskap – KDnuggets

Kilde node: 3093078

Hva jeg lærte av å bruke ChatGPT for datavitenskap
Bilde av forfatter
 

Det er én enkelt leksjon jeg har lært av å bruke ChatGPT. Det er fantastisk nyttig innen datavitenskap, men du må granske alt det gir. Det er flott for noen oppgaver og kan gjøre dem veldig raskt og nøyaktig. For noen andre oppgaver er den god nok, og du må spørre den flere ganger. Og det er en oppgave jeg fant ut at ChatGPT er direkte dårlig på.

Du kan legge ved datasettet ditt til ChatGPT-meldingen, og ved å gi flere enkle instruksjoner kan ChatGPT utforske data for deg.

For eksempel kan jeg ta et datasett fra dette dataprosjektet. Instruksjonene jeg ga er:

"Bruk vedlagte data til å utføre en beskrivende statistisk analyse. Inkluder følgende:

  • Oppsummer grunnleggende statistikk (gjennomsnitt, median, standardavvik osv.).
  • Identifiser manglende verdier og foreslå strategier for å håndtere dem."

Den returnerer sammendraget som ser slik ut. Den gjør den samme beregningen for hver variabel.

Alder:

  • Gjennomsnittlig: 28.79 år
  • Standardavvik: 6.94 år
  • Rekkevidde: 18 til 50 år

Den identifiserte heller ingen manglende verdier i datasettet.

Hvis du også trenger Python-koden for disse beregningene, kan du be den om å skrive dem.

For å laste datasettet, bruk denne koden.

aerofit_data = pd.read_csv(file_path)

For grunnleggende statistikk gir det denne.

basic_stats = aerofit_data.describe()

Og du kan sjekke de manglende verdiene med denne koden.

missing_values = aerofit_data.isnull().sum()

Videre kan jeg be ChatGPT om å visualisere fordelingen av nøkkelvariabler og oppdage potensielle uteliggere og anomalier.

Den lager histogrammer og boksplott for nøkkelvariabler: Alder, Inntekt og Miles. Den oppdaget mulige uteliggere i inntekts- og milfordelingen.

 

Hva jeg lærte av å bruke ChatGPT for datavitenskap
Laget av forfatter/ChatGPT
 
Hva jeg lærte av å bruke ChatGPT for datavitenskap
Laget av forfatter/ChatGPT
 

Den tolker også visualiseringene. Så den merker at inntektsfordelingen er rettskjev, noe som indikerer at de fleste kunder har en inntekt i den nedre enden av spekteret, og færre kunder tjener betydelig høyere inntekter. Boksplottet antyder at det er noen uteliggere i den høyere enden.

 

Hva jeg lærte av å bruke ChatGPT for datavitenskap
Laget av forfatter/ChatGPT
 
Hva jeg lærte av å bruke ChatGPT for datavitenskap
Laget av forfatter/ChatGPT
 

Den samme tolkningen gjelder for Miles-fordelingen: høyreskjev og uteliggere i den høyere enden.

Tatt i betraktning dataenes natur, antyder det at disse uteliggere ikke nødvendigvis er feil, men snarere representerer et spesifikt kundesegment. Når det gjelder skjeve fordelinger, foreslår det transformasjoner (f.eks. loggtransformasjon) for å normalisere dataene.

Selvfølgelig kan du også be den om å skrive en Python-kode for disse visualiseringene.

Jeg kan bruke de samme dataene og spørre ChatGPT om det passer for logistisk regresjon. Og hvis ikke, hva skal jeg gjøre for å forvandle det slik at det er passende?

Den svarte at mine data primært er egnet for beskrivende og konklusjonsanalyse av kontinuerlige data.

Dette er de foreslåtte måtene å transformere data for logistisk regresjon.

Opprett et binært resultat: Opprett et binært resultat ved å kategorisere kunder som "høy bruk" eller "lav bruk basert på en mediandeling på bruksvariabelen. Det binære resultatet kan også være "kjøp av tredemølle" vs. "ikke kjøp av tredemølle".

Se etter multikolinearitet: Bruk korrelasjonsmatrise or Variansinflasjonsfaktor (VIF) for å sjekke for multikolinearitet. Hvis det er multikollinearitet, kan de korrelerte variablene fjernes eller kombineres.

Funksjonsskalering: Selv om funksjonsskalering for modelltilpasning ikke er nødvendig for logistisk regresjon, kan det være gunstig for konvergens. Dette er spesielt tilfellet for funksjoner med vesentlig forskjellige skalaer.

Takling av ikke-linearitet: Transformasjonene, som f.eks logg or kvadratroten, kan brukes for variabler som ikke tilfredsstiller linearitetsforutsetningen.

Prøvestørrelse: Datasettet må være stort nok gitt antall prediktorvariabler.

Dataforbehandling: Håndtering av uteliggere og kategoriske variabler (av one-hot-koding eller etikettkoding) er foreslått. I tillegg foreslår det håndtering av manglende verdier, men dette gjelder ikke for mine data, siden det ikke mangler verdier.

ChatGPT kan faktisk være nyttig i alle stadier av et datavitenskapelig prosjekt. Du kan be den om å skrive en nettskrapekode. Du kan instruere den til å utforske og forberede dataene dine for maskinlæringsalgoritmene. Den kan også gi deg en kode for å velge riktig algoritme, datasettdeling, A/B-testing og ytelsesforsterkende algoritmer. Til slutt kan du også be ChatGPT om å skrive deg en kode for modellimplementering.

Mens ChatGPT kan gjøre alt det, er det ganske mulig at du ikke umiddelbart får en kode som gjør akkurat det du vil. Så du må forstå hva du vil oppnå og sjekke koden. Sjansen er at du må be ChatGPT om kodekorrigeringer og gi flere instruksjoner om hva du skal endre.

ChatGPT kan hjelpe brukere som fortsatt lærer nye kodespråk. Tenk deg at du er en SQL-mester, og du har ingen problemer med å løse dette intervjuspørsmålet. Du vil imidlertid legge til Python til ferdighetene dine. ChatGPT kan hjelpe deg med det. Du kan kopiere SQL-koden og be ChatGPT om å konvertere den til Python.

Så, SQL-koden er denne.

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 skrev Python-koden basert på SQL-koden ovenfor, men den fungerer ikke riktig. Så jeg engasjerer meg i å slå ChatGPT for ikke å skrive riktig kode. Og jeg ber den om å prøve igjen, siden utgangen ikke er den samme som med SQL-kode. Den prøver igjen og gir riktig resultat.

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

Som du ser får du en fin kode med kommentarer før hver kodeblokk. For å forbedre læringen din, kan du be den om å tolke denne koden. På den måten kommer du enda dypere inn i hva hver kodelinje gjør og hvordan.

Når jeg sier dårlig, mener jeg virkelig dårlig! Den går til nivået der den bruker riktig formel og plugger inn de riktige verdiene, men på en eller annen måte klarer å rote til ikke-så kompliserte beregninger.

Ta en titt på dette. Jeg ba den om å løse dette problemet: «Anta at du kaster en rettferdig sekssidig terning 10 ganger. Hva er sannsynligheten for å rulle to 1-ere, tre 2-ere, én 3-er, null 4-ere, tre 5-ere og én 6-er?»

Den beregner sannsynligheten på denne måten.

 

Hva jeg lærte av å bruke ChatGPT for datavitenskap
 

Det roter når man beregner faktorialer. Og det gjør det med stil! Helt feil å si 2! = 12. Det er det ikke, det er 2. Hvordan kan du rote til et enkelt regnestykke som 2×1 = 2? Dette er virkelig latterlig!

Enda morsommere er det en gang, 3! = 36, og andre gang 3! = 6. Kreditt til det, siden det var riktig en gang minst.

Når jeg ber den rette regnestykket uten nærmere forklaring, regner den på nytt og kommer opp med sannsynligheten 0.0001389. Jeg trodde ikke mine egne øyne! Den kan bruke nøyaktig samme formel og verdier og komme opp med et annet resultat som fortsatt er feil!

Jeg spurte den igjen om å korrigere beregningen, og den ga til slutt det riktige resultatet: 0.0008336. Den tredje gangen er en sjarm!

Disse feilene ble riktignok gjort av ChatGPT 3.5. Jeg stilte ChatGPT 4 det samme spørsmålet, og det kom opp med riktig beregning på første forsøk. Du kan også bruke noen matematiske plug-ins for å være på den sikre siden.

Den viktigste læringen fra alt dette er at ChatGPT er en dårlig mester, men en veldig god tjener. Det kan være nyttig for å skrive kode, feilsøke, analysere og visualisere data. Men, stol aldri helt på det og aldri ta det det skriver uten gransking.

Sjekk koden den skriver, og sjekk utregningene. Du er tross alt en dataforsker, og ChatGPT er det ikke! Du får kanskje ikke de ønskede resultatene fra ChatGPT på første forsøk. Men å gi den mer presise instruksjoner og prøve flere ganger vil sannsynligvis få deg til ønsket resultat.
 
 

Nate Rosidi er dataviter og innen produktstrategi. Han er også adjungert professor som underviser i analyse, og er grunnleggeren av StrataScratch, en plattform som hjelper dataforskere med å forberede seg til intervjuene sine med ekte intervjuspørsmål fra toppbedrifter. Ta kontakt med ham Twitter: StrataScratch or Linkedin.

Tidstempel:

Mer fra KDnuggets