Czego się nauczyłem dzięki korzystaniu z ChatGPT do nauki o danych - KDnuggets

Czego się nauczyłem dzięki korzystaniu z ChatGPT do nauki o danych – KDnuggets

Węzeł źródłowy: 3093078

Czego się nauczyłem dzięki korzystaniu z ChatGPT do nauki o danych
Zdjęcie autora
 

Jest jedna lekcja, jaką wyciągnąłem z używania ChatGPT. Jest niezwykle pomocny w nauce danych, ale należy dokładnie przeanalizować wszystko, co generuje. Świetnie radzi sobie z niektórymi zadaniami, potrafi je wykonać bardzo szybko i dokładnie. W przypadku niektórych innych zadań jest to wystarczające i trzeba będzie je wyświetlić kilka razy. Jest też jedno zadanie, w którym ChatGPT całkiem nieźle sobie radzi.

Możesz dołączyć swój zbiór danych do wiadomości ChatGPT, a podając kilka prostych instrukcji, ChatGPT będzie mógł eksplorować dane za Ciebie.

Na przykład mogę pobrać zbiór danych z ten projekt danych. Instrukcje jakie podałem to:

„Wykorzystaj załączone dane do przeprowadzenia opisowej analizy statystycznej. Uwzględnij następujące elementy:

  • Podsumuj podstawowe statystyki (średnia, mediana, odchylenie standardowe itp.).
  • Zidentyfikuj brakujące wartości i zaproponuj strategie radzenia sobie z nimi.”

Zwraca podsumowanie, które wygląda tak. Wykonuje te same obliczenia dla każdej zmiennej.

Wiek:

  • Średnia: 28.79 lat
  • Odchylenie standardowe: 6.94 lat
  • Zakres: od 18 do 50 lat

Nie zidentyfikowano również żadnych brakujących wartości w zbiorze danych.

Jeśli do tych obliczeń potrzebujesz także kodu Pythona, możesz poprosić go o ich zapisanie.

Aby załadować zestaw danych, użyj tego kodu.

aerofit_data = pd.read_csv(file_path)

Dla podstawowych statystyk podaje to.

basic_stats = aerofit_data.describe()

Za pomocą tego kodu możesz sprawdzić brakujące wartości.

missing_values = aerofit_data.isnull().sum()

Co więcej, mogę poprosić ChatGPT o wizualizację rozkładu kluczowych zmiennych i wykrycie potencjalnych wartości odstających i anomalii.

Tworzy histogramy i wykresy pudełkowe dla kluczowych zmiennych: Wiek, Dochód i Mile. Wykryło możliwe wartości odstające w rozkładzie dochodów i mil.

 

Czego się nauczyłem dzięki korzystaniu z ChatGPT do nauki o danych
Stworzony przez autora/ChatGPT
 
Czego się nauczyłem dzięki korzystaniu z ChatGPT do nauki o danych
Stworzony przez autora/ChatGPT
 

Interpretuje także wizualizacje. Zauważa zatem, że rozkład dochodów jest prawoskrętny, co wskazuje, że większość klientów ma dochody na dolnym końcu spektrum, a mniejsza liczba klientów osiąga znacznie wyższe dochody. Wykres pudełkowy sugeruje, że w górnej części znajdują się pewne wartości odstające.

 

Czego się nauczyłem dzięki korzystaniu z ChatGPT do nauki o danych
Stworzony przez autora/ChatGPT
 
Czego się nauczyłem dzięki korzystaniu z ChatGPT do nauki o danych
Stworzony przez autora/ChatGPT
 

Ta sama interpretacja ma zastosowanie do rozkładu Milesa: prawoskośny i wartości odstające na górnym końcu.

Biorąc pod uwagę charakter danych, sugeruje to, że te wartości odstające niekoniecznie są błędami, ale raczej reprezentują konkretny segment klientów. Jeśli chodzi o rozkłady skośne, sugeruje transformacje (np. transformację logarytmiczną) w celu normalizacji danych.

Oczywiście możesz też poprosić go o napisanie kodu w Pythonie dla tych wizualizacji.

Mogę użyć tych samych danych i zapytać ChatGPT, czy jest odpowiedni regresja logistyczna. A jeśli nie, co powinienem zrobić, aby go przekształcić, aby był odpowiedni?

Odpowiedziano, że moje dane nadają się przede wszystkim do analizy opisowej i wnioskowania danych ciągłych.

Oto sugerowane sposoby transformacji danych do regresji logistycznej.

Utwórz wynik binarny: Utwórz wynik binarny, kategoryzując klientów jako „wysokich” lub „niskich” w oparciu o medianę podziału zmiennej „Użycie”. Ponadto wynikiem binarnym może być „zakup bieżni” w porównaniu z „brakem zakupu bieżni”.

Sprawdź wieloliniowość: Użyj macierz korelacji or Współczynnik inflacji wariancji (VIF) aby sprawdzić wieloliniowość. Jeśli występuje współliniowość, skorelowane zmienne można usunąć lub połączyć.

Skalowanie funkcji: Chociaż skalowanie cech w celu dopasowania modelu nie jest konieczne w przypadku regresji logistycznej, może być korzystne konwergencja. Dzieje się tak szczególnie w przypadku obiektów o znacząco różnych skalach.

Walka z nieliniowością: Przekształcenia takie jak log or pierwiastek kwadratowy, można zastosować w przypadku zmiennych, które nie spełniają założenia o liniowości.

Wielkość próbki: Zbiór danych musi być wystarczająco duży, biorąc pod uwagę liczbę zmiennych predykcyjnych.

Wstępne przetwarzanie danych: Obsługa wartości odstających i zmiennych kategorycznych (wg kodowanie one-hot lub kodowanie etykiet) jest sugerowane. Dodatkowo sugeruje obsługę brakujących wartości, ale nie dotyczy to moich danych, ponieważ nie ma żadnych brakujących wartości.

ChatGPT może być pomocny na każdym etapie projektu związanego z analizą danych. Możesz poprosić go o napisanie kodu do skrobania sieci. Możesz zlecić mu eksplorację i przygotowanie danych dla algorytmów uczenia maszynowego. Może także dostarczyć kod umożliwiający wybór odpowiedniego algorytmu, dzielenie zbioru danych, testowanie A/B i algorytmy zwiększające wydajność. Na koniec możesz także poprosić ChatGPT o napisanie kodu do wdrożenia modelu.

Chociaż ChatGPT może to wszystko zrobić, jest całkiem możliwe, że nie otrzymasz od razu kodu, który robi dokładnie to, czego chcesz. Musisz więc zrozumieć, co chcesz osiągnąć i sprawdzić kod. Istnieje prawdopodobieństwo, że będziesz musiał poprosić ChatGPT o poprawienie kodu i podać więcej instrukcji na temat tego, co zmienić.

ChatGPT może pomóc użytkownikom, którzy wciąż uczą się nowych języków programowania. Wyobraź sobie, że jesteś mistrzem SQL i nie masz problemów z rozwiązywaniem to pytanie z wywiadu. Chcesz jednak dodać Pythona do swoich umiejętności. ChatGPT może Ci w tym pomóc. Możesz skopiować kod SQL i poprosić ChatGPT o przekonwertowanie go na Python.

Zatem kod SQL jest taki.

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 napisał kod Pythona w oparciu o powyższy kod SQL, ale nie działa on poprawnie. Dlatego angażuję się w krytykowanie ChatGPT za nie napisanie prawidłowego kodu. I proszę, aby spróbował ponownie, ponieważ dane wyjściowe nie są takie same, jak w przypadku kodu SQL. Próbuje ponownie i zwraca poprawny wynik.

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

Jak widać, przed każdym blokiem kodu otrzymujesz ładny kod z komentarzami. Aby usprawnić naukę, możesz poprosić go o zinterpretowanie tego kodu. W ten sposób jeszcze głębiej zrozumiesz, co i jak robi każda linia kodu.

Kiedy mówię źle, mam na myśli naprawdę źle! Dochodzi do poziomu, w którym używa właściwej formuły i wstawia właściwe wartości, ale jakoś udaje mu się zepsuć niezbyt skomplikowane obliczenia.

Spójrz na to. Poprosiłem go o rozwiązanie tego problemu: „Załóżmy, że rzucasz 10 razy uczciwą sześciościenną kostką. Jakie jest prawdopodobieństwo, że wyrzucimy dwie jedynki, trzy dwójki, jedną trójkę, zero czwórek, trzy piątki i jedną 1?

W ten sposób oblicza prawdopodobieństwo.

 

Czego się nauczyłem dzięki korzystaniu z ChatGPT do nauki o danych
 

To psuje się przy obliczaniu silni. I robi to ze stylem! Całkowicie błędne stwierdzenie 2! = 12. To nie jest, to jest 2. Jak można zepsuć proste obliczenia, takie jak 2×1 = 2? To jest naprawdę śmieszne!

Jeszcze zabawniejsze jest to, że raz, 3! = 36, a za drugim razem 3! = 6. To zasługa, ponieważ przynajmniej raz było to poprawne.

Kiedy proszę o poprawienie obliczeń bez dalszych wyjaśnień, oblicza ponownie i podaje prawdopodobieństwo 0.0001389. Nie mogłam uwierzyć własnym oczom! Może użyć dokładnie tych samych formuł i wartości, a otrzymać inny wynik, który nadal jest błędny!

Poprosiłem go ponownie o poprawienie obliczeń i ostatecznie zwróciłem poprawny wynik: 0.0008336. Trzeci raz to urok!

Trzeba przyznać, że błędy te popełnił ChatGPT 3.5. Zadałem to samo pytanie ChatGPT 4 i za pierwszym razem uzyskałem prawidłowe obliczenia. Dla bezpieczeństwa możesz także użyć wtyczek matematycznych.

Główny wniosek z tego wszystkiego jest taki, że ChatGPT jest złym panem, ale bardzo dobrym sługą. Może być pomocny w pisaniu kodu, debugowaniu, analizowaniu i wizualizacji danych. Nigdy jednak nie ufaj mu całkowicie i nigdy nie przyjmuj tego, co pisze bez sprawdzenia.

Sprawdź kod, który zapisuje i sprawdź obliczenia. W końcu jesteś analitykiem danych, a ChatGPT nie! Możesz nie uzyskać pożądanych wyników z ChatGPT przy pierwszej próbie. Ale podanie bardziej precyzyjnych instrukcji i kilka prób prawdopodobnie doprowadzi Cię do pożądanego rezultatu.
 
 

Nate'a Rosidiego jest analitykiem danych i strategii produktu. Jest także adiunktem wykładającym analitykę i jest założycielem StrataScratch, platforma pomagająca analitykom danych przygotować się do rozmów kwalifikacyjnych z prawdziwymi pytaniami do wywiadów z czołowymi firmami. Połącz się z nim dalej Twitter: StrataScratch or LinkedIn.

Znak czasu:

Więcej z Knuggety