Hvad jeg lærte af at bruge ChatGPT til datavidenskab - KDnuggets

Hvad jeg lærte af at bruge ChatGPT til datavidenskab – KDnuggets

Kildeknude: 3093078

Hvad jeg lærte af at bruge ChatGPT til datavidenskab
Billede af forfatter
 

Der er en enkelt lektie, jeg har lært af at bruge ChatGPT. Det er vidunderligt nyttigt inden for datavidenskab, men du skal granske alt, hvad det udsender. Det er fantastisk til nogle opgaver og kan udføre dem meget hurtigt og præcist. Til nogle andre opgaver er det godt nok, og du bliver nødt til at prompte det flere gange. Og der er én opgave, jeg fandt ud af, at ChatGPT er direkte dårlig til.

Du kan vedhæfte dit datasæt til ChatGPT-meddelelsen, og ved at give flere enkle instruktioner kan ChatGPT udforske data for dig.

For eksempel kan jeg tage et datasæt fra dette dataprojekt. De instruktioner jeg gav er:

"Brug de vedhæftede data til at udføre en beskrivende statistisk analyse. Inkluder følgende:

  • Opsummer grundlæggende statistik (middelværdi, median, standardafvigelse osv.).
  • Identificer manglende værdier og foreslå strategier til at håndtere dem."

Det returnerer resuméet, der ser sådan ud. Det gør den samme beregning for hver variabel.

Alder:

  • Gennemsnit: 28.79 år
  • Standardafvigelse: 6.94 år
  • Rækkevidde: 18 til 50 år

Den identificerede heller ingen manglende værdier i datasættet.

Hvis du også har brug for Python-koden til disse beregninger, kan du bede den om at skrive dem.

Brug denne kode for at indlæse datasættet.

aerofit_data = pd.read_csv(file_path)

For grundlæggende statistik giver det denne.

basic_stats = aerofit_data.describe()

Og du kan kontrollere de manglende værdier med denne kode.

missing_values = aerofit_data.isnull().sum()

Yderligere kan jeg bede ChatGPT om at visualisere fordelingen af ​​nøglevariabler og opdage potentielle outliers og anomalier.

Det opretter histogrammer og boksplot for nøglevariabler: Alder, Indkomst og Miles. Den opdagede mulige outliers i indkomst- og milefordelingen.

 

Hvad jeg lærte af at bruge ChatGPT til datavidenskab
Oprettet af forfatter/ChatGPT
 
Hvad jeg lærte af at bruge ChatGPT til datavidenskab
Oprettet af forfatter/ChatGPT
 

Den fortolker også visualiseringerne. Så den bemærker, at indkomstfordelingen er højreskæv, hvilket indikerer, at de fleste kunder har en indkomst i den nederste ende af spektret, og færre kunder tjener væsentligt højere indkomster. Boksplottet antyder, at der er nogle outliers i den højere ende.

 

Hvad jeg lærte af at bruge ChatGPT til datavidenskab
Oprettet af forfatter/ChatGPT
 
Hvad jeg lærte af at bruge ChatGPT til datavidenskab
Oprettet af forfatter/ChatGPT
 

Den samme fortolkning gælder for Miles-fordelingen: højreskæv og afvigende i den højere ende.

I betragtning af dataenes art tyder det på, at disse outliers ikke nødvendigvis er fejl, men snarere repræsenterer et specifikt kundesegment. Hvad angår de skæve fordelinger, foreslår det transformationer (f.eks. log-transformation) for at normalisere dataene.

Du kan selvfølgelig også bede den om at skrive en Python-kode til disse visualiseringer.

Jeg kan bruge de samme data og spørge ChatGPT, om det er egnet til Logistisk regression. Og hvis ikke, hvad skal jeg gøre for at omdanne det, så det er passende?

Den svarede, at mine data primært er egnet til beskrivende og inferentielle analyser af kontinuerlige data.

Dette er de foreslåede måder at transformere data til logistisk regression.

Opret et binært resultat: Opret et binært resultat ved at kategorisere kunder som "højt forbrug" eller "lavt forbrug baseret på en medianopdeling på Usage-variablen. Det binære resultat kan også være "køb af løbebånd" vs. "intet køb af løbebånd".

Tjek for multikolinearitet: Brug korrelationsmatrix or Variansinflationsfaktor (VIF) for at kontrollere for multikolinearitet. Hvis der er multikollinearitet, kan de korrelerede variabler fjernes eller kombineres.

Funktionsskalering: Selvom funktionsskalering til modeltilpasning ikke er nødvendig for logistisk regression, kan det være gavnligt for konvergens. Dette er især tilfældet for funktioner med væsentligt forskellige skalaer.

Takling af ikke-linearitet: Forvandlingerne, som f.eks log or kvadrat rod, kan bruges til variable, der ikke opfylder linearitetsantagelsen.

Eksempelstørrelse: Datasættet skal være stort nok givet antallet af prædiktorvariabler.

Dataforbehandling: Håndtering af outliers og kategoriske variabler (af one-hot-kodning eller etiketkodning) foreslås. Derudover foreslår det håndtering af manglende værdier, men dette gælder ikke for mine data, da der ikke mangler værdier.

ChatGPT kan faktisk være nyttigt i alle faser af et datavidenskabsprojekt. Du kan bede den om at skrive en web-skrabekode. Du kan instruere den i at udforske og forberede dine data til maskinlæringsalgoritmerne. Det kan også give dig en kode til at vælge den rigtige algoritme, datasætopdeling, A/B-test og præstationsfremmende algoritmer. Endelig kan du også bede ChatGPT om at skrive dig en kode til modelimplementering.

Selvom ChatGPT kan alt det, er det meget muligt, at du ikke umiddelbart får en kode, der gør præcis, hvad du ønsker. Så du skal forstå, hvad du vil opnå, og kontrollere koden. Chancen er, at du bliver nødt til at bede ChatGPT om koderettelser og give flere instruktioner om, hvad du skal ændre.

ChatGPT kan hjælpe brugere, der stadig lærer nye kodesprog. Forestil dig, at du er en SQL-mester, og du har ingen problemer med at løse dette interviewspørgsmål. Du vil dog gerne tilføje Python til dine færdigheder. ChatGPT kan hjælpe dig med det. Du kan kopiere SQL-koden og bede ChatGPT om at 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 baseret på SQL-koden ovenfor, men den virker ikke rigtigt. Så jeg engagerer mig i at slå ChatGPT for ikke at skrive den korrekte kode. Og jeg beder den om at prøve igen, da outputtet ikke er det samme som med SQL-kode. Den prøver igen og returnerer det korrekte 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 kan se, får du en fin kode med kommentarer før hver kodeblok. For at forbedre din læring kan du bede den om at fortolke denne kode. På den måde kommer du endnu dybere ind i, hvad hver kodelinje gør og hvordan.

Når jeg siger dårligt, mener jeg virkelig dårligt! Det går til det niveau, hvor det bruger den rigtige formel og tilslutter de rigtige værdier, men på en eller anden måde formår at ødelægge ikke så komplicerede beregninger.

Tag et kig på dette. Jeg bad den om at løse dette problem: "Antag, at du kaster en rimelig sekssidet terning 10 gange. Hvad er sandsynligheden for at slå to 1'ere, tre 2'ere, en 3'er, nul 4'ere, tre 5'ere og en 6'er?"

Den beregner sandsynligheden på denne måde.

 

Hvad jeg lærte af at bruge ChatGPT til datavidenskab
 

Det roder, når man beregner factorials. Og det gør den med stil! Helt forkert at sige 2! = 12. Det er det ikke, det er 2. Hvordan kan du ødelægge et simpelt regnestykke som 2×1 = 2? Det her er virkelig til grin!

Endnu sjovere er det engang, 3! = 36, og anden gang 3! = 6. Kredit til det, da det mindst var korrekt en gang.

Når jeg beder den rette regnestykket uden yderligere forklaring, regner den igen og kommer med sandsynligheden på 0.0001389. Jeg kunne ikke tro mine egne øjne! Det kan bruge præcis den samme formel og værdier og komme med et andet resultat, der stadig er forkert!

Jeg bad den igen om at rette beregningen, og den gav endelig det korrekte resultat: 0.0008336. Tredje gang er en charme!

Disse fejl blev ganske vist begået af ChatGPT 3.5. Jeg stillede ChatGPT 4 det samme spørgsmål, og det kom frem til den rigtige beregning i første forsøg. Du kan også bruge nogle matematiske plug-ins for at være på den sikre side.

Den vigtigste lære af alt dette er, at ChatGPT er en dårlig mester, men en meget god tjener. Det kan være nyttigt til at skrive kode, fejlfinde, analysere og visualisere data. Stol dog aldrig helt på den og tag aldrig hvad den skriver uden granskning.

Tjek koden, den skriver, og tjek beregningerne. Du er jo dataforsker, og det er ChatGPT ikke! Du får muligvis ikke de ønskede resultater fra ChatGPT ved første forsøg. Men at give det mere præcise instruktioner og prøve flere gange vil sandsynligvis få dig til det ønskede resultat.
 
 

Nate Rosidi er data scientist og i produktstrategi. Han er også adjungeret professor, der underviser i analytics og er grundlæggeren af StrataScratch, en platform, der hjælper dataforskere med at forberede sig til deres interviews med rigtige interviewspørgsmål fra topvirksomheder. Forbind med ham Twitter: StrataScratch or LinkedIn.

Tidsstempel:

Mere fra KDnuggets