Vad jag lärde mig av att använda ChatGPT för datavetenskap - KDnuggets

Vad jag lärde mig av att använda ChatGPT för datavetenskap – KDnuggets

Källnod: 3093078

Vad jag lärde mig av att använda ChatGPT för datavetenskap
Bild av författare
 

Det finns en enda lektion jag lärde mig av att använda ChatGPT. Det är fantastiskt användbart inom datavetenskap, men du måste granska allt det producerar. Det är bra för vissa uppgifter och kan göra dem mycket snabbt och exakt. För vissa andra uppgifter är det tillräckligt bra, och du måste uppmana det flera gånger. Och det finns en uppgift jag tyckte att ChatGPT är direkt dålig på.

Du kan bifoga din datauppsättning till ChatGPT-meddelandet, och genom att ge flera enkla instruktioner kan ChatGPT utforska data åt dig.

Till exempel kan jag ta en datauppsättning från detta dataprojekt. Instruktionerna jag gav är:

"Använd bifogade data för att utföra en beskrivande statistisk analys. Inkluderar följande:

  • Sammanfatta grundläggande statistik (medelvärde, median, standardavvikelse, etc.).
  • Identifiera saknade värden och föreslå strategier för att hantera dem.”

Den returnerar sammanfattningen som ser ut så här. Den gör samma beräkning för varje variabel.

Ålder:

  • Medel: 28.79 år
  • Standardavvikelse: 6.94 år
  • Räckvidd: 18 till 50 år

Det identifierade inte heller några saknade värden i datasetet.

Om du också behöver Python-koden för dessa beräkningar kan du uppmana den att skriva dem.

Använd den här koden för att ladda datauppsättningen.

aerofit_data = pd.read_csv(file_path)

För grundläggande statistik ger det denna.

basic_stats = aerofit_data.describe()

Och du kan kontrollera de saknade värdena med den här koden.

missing_values = aerofit_data.isnull().sum()

Vidare kan jag be ChatGPT att visualisera fördelningen av nyckelvariabler och upptäcka potentiella extremvärden och anomalier.

Den skapar histogram och boxplots för nyckelvariabler: Ålder, Inkomst och Miles. Den upptäckte möjliga extremvärden i fördelningen Inkomst och Miles.

 

Vad jag lärde mig av att använda ChatGPT för datavetenskap
Skapad av Author/ChatGPT
 
Vad jag lärde mig av att använda ChatGPT för datavetenskap
Skapad av Author/ChatGPT
 

Den tolkar också visualiseringarna. Så det märker att inkomstfördelningen är rättsnedvridande, vilket indikerar att de flesta kunder har en inkomst i den nedre delen av spektrumet, och färre kunder tjänar betydligt högre inkomster. Boxplotten antyder att det finns några extremvärden i den högre änden.

 

Vad jag lärde mig av att använda ChatGPT för datavetenskap
Skapad av Author/ChatGPT
 
Vad jag lärde mig av att använda ChatGPT för datavetenskap
Skapad av Author/ChatGPT
 

Samma tolkning är tillämplig på Miles-fördelningen: höger-skev och extremvärden i den högre änden.

Med tanke på uppgifternas karaktär tyder det på att dessa extremvärden inte nödvändigtvis är fel utan snarare representerar ett specifikt kundsegment. När det gäller de sneda fördelningarna, föreslår den transformationer (t.ex. loggtransformation) för att normalisera data.

Naturligtvis kan du också be den att skriva en Python-kod för dessa visualiseringar.

Jag kan använda samma data och fråga ChatGPT om det är lämpligt för logistisk återgång. Och om inte, vad ska jag göra för att omvandla det så att det är lämpligt?

Den svarade att mina data främst är lämpade för beskrivande och inferentiella analyser av kontinuerliga data.

Dessa är de föreslagna sätten att transformera data för logistisk regression.

Skapa ett binärt resultat: Skapa ett binärt resultat genom att kategorisera kunder som "hög användning" eller "låg användning baserat på en mediandelning på användningsvariabeln. Det binära resultatet kan också vara "köp av löpband" kontra "inget köp av löpband".

Kontrollera för multikolinearitet: Använd korrelationsmatris or Variansinflationsfaktor (VIF) för att kontrollera multikolinearitet. Om det finns multikollinearitet kan de korrelerade variablerna tas bort eller kombineras.

Funktionsskalning: Även om funktionsskalning för modellanpassning inte är nödvändig för logistisk regression, kan det vara fördelaktigt för konvergens. Detta är särskilt fallet för funktioner med väsentligt olika skalor.

Att tackla icke-linjäritet: Förvandlingarna, som t.ex log or roten ur, kan användas för variabler som inte uppfyller linearitetsantagandet.

Provstorlek: Datauppsättningen måste vara tillräckligt stor med tanke på antalet prediktorvariabler.

Dataförbehandling: Hantera extremvärden och kategoriska variabler (av one-hot-kodning eller etikettkodning) föreslås. Dessutom föreslår det att man hanterar saknade värden, men detta gäller inte mina data, eftersom det inte finns några saknade värden.

ChatGPT kan faktiskt vara till hjälp i varje steg av ett datavetenskapligt projekt. Du kan uppmana den att skriva en webbskrapningskod. Du kan instruera den att utforska och förbereda dina data för maskininlärningsalgoritmerna. Det kan också ge dig en kod för att välja rätt algoritm, datauppdelning, A/B-testning och prestandahöjande algoritmer. Slutligen kan du också be ChatGPT att skriva en kod till dig för modelldistribution.

Även om ChatGPT kan göra allt det är det mycket möjligt att du inte direkt får en kod som gör precis vad du vill. Så du måste förstå vad du vill uppnå och kontrollera koden. Chansen är att du måste fråga ChatGPT om kodkorrigeringar och ge fler instruktioner om vad du ska ändra.

ChatGPT kan hjälpa användare som fortfarande lär sig nya kodningsspråk. Föreställ dig att du är en SQL-mästare och att du inte har några problem att lösa denna intervjufråga. Men du vill lägga till Python till dina färdigheter. ChatGPT kan hjälpa dig med det. Du kan kopiera SQL-koden och be ChatGPT att konvertera den till Python.

Så, SQL-koden är denna.

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 baserat på SQL-koden ovan, men det fungerar inte som det ska. Så jag engagerar mig i att slå ChatGPT för att inte skriva rätt kod. Och jag ber den att försöka igen, eftersom utdata inte är samma som med SQL-kod. Den försöker igen och ger rätt 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 snygg kod med kommentarer före varje kodblock. För att förbättra din inlärning kan du be den att tolka den här koden. På så sätt kommer du ännu djupare in i vad varje kodrad gör och hur.

När jag säger dåligt menar jag riktigt dåligt! Den går till den nivå där den använder rätt formel och pluggar in rätt värden men på något sätt lyckas förstöra inte så komplicerade beräkningar.

Ta en titt på det här. Jag bad den att lösa detta problem: "Anta att du slår en rättvis sexsidig tärning 10 gånger. Vad är sannolikheten att slå två 1:or, tre 2:or, en 3:or, noll 4:or, tre 5:or och en 6?

Den beräknar sannolikheten på detta sätt.

 

Vad jag lärde mig av att använda ChatGPT för datavetenskap
 

Det krånglar när man beräknar faktoraler. Och det gör det med stil! Helt fel att säga 2! = 12. Det är det inte, det är 2. Hur kan du förstöra en enkel beräkning som 2×1 = 2? Det här är verkligen skrattretande!

Ännu roligare är det en gång, 3! = 36, och andra gången 3! = 6. Kredit till det, eftersom det var korrekt en gång åtminstone.

När jag ber den att rätta beräkningen utan ytterligare förklaring, räknar den igen och kommer upp med sannolikheten 0.0001389. Jag trodde inte mina ögon! Den kan använda exakt samma formel och värden och komma med ett annat resultat som fortfarande är fel!

Jag bad den igen för att korrigera beräkningen, och den gav till slut det korrekta resultatet: 0.0008336. Tredje gången är en charm!

Visserligen gjordes dessa misstag av ChatGPT 3.5. Jag ställde samma fråga till ChatGPT 4, och den kom fram till rätt beräkning vid första försöket. Du kan också använda några matematiska plugin-program för att vara på den säkra sidan.

Den viktigaste lärdomen av allt detta är att ChatGPT är en dålig mästare men en mycket bra tjänare. Det kan vara till hjälp för att skriva kod, felsöka, analysera och visualisera data. Men lita aldrig helt på den och ta aldrig vad den skriver utan granskning.

Kontrollera koden den skriver och kontrollera beräkningarna. Du är en dataforskare, trots allt, och ChatGPT är det inte! Du kanske inte får de önskade resultaten från ChatGPT vid första försöket. Men att ge det mer exakta instruktioner och försöka flera gånger kommer förmodligen att få dig till det önskade resultatet.
 
 

Nate Rosidi är datavetare och inom produktstrategi. Han är också adjungerad professor som undervisar i analys och är grundaren av StrataScratch, en plattform som hjälper datavetare att förbereda sig för sina intervjuer med riktiga intervjufrågor från toppföretag. Ta kontakt med honom Twitter: StrataScratch or LinkedIn.

Tidsstämpel:

Mer från KDnuggets