Zyski:
- Umiejętność korzystania z solidnego kodu SQL i pand oraz odczytywania i weryfikowania go linia po linii, nadając sztucznej inteligencji jasny schemat i cel
- Możliwość wychwytywania cichych błędów, takich jak liczba wierszy, funkcja dopasowywania i przepustowość po łączeniu/JOIN
- Możliwość rozwiązania problemu w debugowaniu bez jego wyciszania i uniknięcia uruchamiania kodu bez testowania go w środowisku produkcyjnym
Nauka o danych ma dwa podstawowe języki: SQL (Structured Query Language — język służący do wykonywania zapytań o dane z baz danych) i Python (w szczególności biblioteka pandas — standardowe narzędzie do programowego manipulowania tabelami). W tej części nauczymy się wykorzystywać sztuczną inteligencję jako partnera w kodzie: uzyskiwać z niej solidny kod SQL i pandy za pomocą odpowiednich pytań, czytać i weryfikować ten kod, debugować go i nigdy nie uruchamiać go na ślepo. AI zapisuje powtarzalny kod w ciągu kilku sekund zamiast minut; Ale Twoim zadaniem jest upewnienie się, że generowany przez niego kod przetwarza właściwą kolumnę z odpowiednią logiką. Działający kod nie oznacza poprawnego kodu.
Dlaczego tworzenie kodu za pomocą sztucznej inteligencji jest skuteczne, ale ryzykowne
Sztuczna inteligencja zapewnia trzy duże korzyści w generowaniu kodu: szybkość (zapisuje 30-wierszową operację przestawiania grupowego w ciągu kilku sekund), przypomnienie (przypomina o zapomnianej funkcji pandy) i nauczanie (objaśnia kod linia po linii). Wiąże się to jednak z trzema zagrożeniami: cichym błędem logicznym (kod, który sumuje niewłaściwą kolumnę bez błędów), dopasowaną funkcją (sugeruje metodę, która nie istnieje) i pułapką wydajności (kod, który działa na małych danych, ale ulega awarii przy 10 milionach wierszy). Zatem złota zasada: czytaj kod AI tak, jakbyś sam go napisał. Nie kieruj się linią, której nie rozumiesz.
SQL: przetwarzaj dane u źródła
SQL pozwala na pobieranie danych z bazy danych i tam ich przetwarzanie; Możesz podsumować miliony linii bez wciągania ich do Pythona. Podstawowe elementy składowe: SELECT (które kolumny), WHERE (które wiersze), GROUP BY (grupowanie i podsumowanie), JOIN (łączenie tabel), HAVING (filtr po grupie). Sztuczna inteligencja jest bardzo pomocna w pisaniu złożonych funkcji JOIN i okien, ale pamiętaj o sprawdzeniu dwóch rzeczy: czy JOIN za pomocą prawidłowego klucza (zły klucz duplikuje wiersze) i czy logika filtrowania jest poprawna (zwłaszcza zachowanie NULL i zakresy dat).
Przestroga: Nie uruchamiaj zapytania SQL wygenerowanego przez sztuczną inteligencję bezpośrednio w produkcyjnej bazie danych. Najpierw przetestuj na małej kopii lub LIMIT. Nigdy nie uruchamiaj zapytania UPDATE/DELETE bez sprawdzenia warunku WHERE; Błędne ustawienie WHERE może spowodować usunięcie całej tabeli.
Python/pandy: elastyczna analiza
pandas to standardowy sposób manipulowania tabelami (DataFrame) w Pythonie. Najbardziej efektywne wykorzystanie AI polega na nadaniu jej jasnego schematu i celu. Najczęściej używane operacje: filtruj, grupuj, scalaj, tabela przestawna, zastosuj. AI zapisuje je szybko; To, co chcesz sprawdzić, to logika: czy grupowanie jest we właściwej kolumnie, czy scalanie nieoczekiwanie zmieniło liczbę wierszy (zawsze sprawdzaj liczbę wierszy po połączeniu), czy operacje łańcuchowe zmieniają oryginał.
transakcja
SQL-a
pandy
punkt kontrolny
Filtrowanie
GDZIE
df[df.x > 5]
Zachowanie NULL/NaN
grupowanie
GRUPUJ WG
df.groupby()
Czy to prawa kolumna?
połączyć
DOŁĄCZ
df.scal()
Zmiana liczby wierszy
Podsumowanie
ŚREDNIA(), SUMA()
.średnia(), .sum()
Która kolumna została zebrana
Sortuj według
ZAMÓW PRZEZ
.sort_values()
Kierunek (rosnąco/malejąco)
deduplikacja
WYRÓŻNIONY
.drop_duplikaty()
W jakich kolumnach?
Debugowanie: z AI
Gdy kod zawiedzie, sztuczna inteligencja jest doskonałym partnerem do debugowania. Podaj pełny komunikat o błędzie i odpowiedni fragment kodu. Uważaj jednak na dwie pułapki. Po pierwsze, sztuczna inteligencja może zaproponować rozwiązanie, które „wyciszy” błąd (np. ukryje alerty) — to nie naprawia błędu, a jedynie go ukrywa. Po drugie, sztuczna inteligencja czasami po cichu zmienia inne zachowanie podczas „rozwiązywania” problemu. Reguła: zrozum poprawkę, zdecyduj, czy nie wyciszać i sprawdź, czy po naprawie dane wyjściowe są nadal prawidłowe.
Chcesz interpretowalnego i łatwego w utrzymaniu kodu
Kupując kod od AI, poproś o kod, który jest czytelny i łatwy w utrzymaniu, a nie tylko kod, który „działa”. Kiedy Ty lub Twój współpracownik otworzycie ten kod kilka miesięcy później, powinniście być w stanie zrozumieć, co robi. Aby to zrobić, wyrób sobie nawyk, aby sztuczna inteligencja zawierała trzy rzeczy: znaczące nazwy zmiennych (orders_temiz, a nie df2), krótkie komentarze w krytycznych krokach (wyjaśniające dlaczego, a nie co się dzieje) oraz nazwaną stałą zamiast magicznej liczby (ACCEPT_ESIGI = 0,85 zamiast 0,85 ukryte w kodzie). Unikaj także długich łańcuchów jednoliniowych (łączących pięć działań w jednej linii); utrudniają one debugowanie. Domyślnie sztuczna inteligencja często tworzy zwięzły i „inteligentny” kod; Jeśli wyraźnie powiesz „pisz czytelny, interpretowalny, łatwy w utrzymaniu”, otrzymasz znacznie łatwiejsze w utrzymaniu dane wyjściowe. Jest to również podstawa odtwarzalności (część 10): niezrozumiały kod to kod, którego nie można bezpiecznie uruchomić ponownie.
trzy mini etui
Przypadek 1 — replikacja JOIN. Analityk połączył zamówienia z tabelą produktów i stwierdził, że łączny obrót jest 3 razy większy. Przyczyna: każdy produkt miał wiele wierszy (w różnych kolorach) w tabeli produktów; DOŁĄCZ zduplikowane każde zamówienie. Kod AI „działał”, ale liczba linii wzrosła z 240 tysięcy do 690 tysięcy. Lekcja: zawsze sprawdzaj liczbę linii po połączeniu/dołączeniu.
Przypadek 2 – Funkcja dopasowania. Zasugerował stażyście AI df.groupby('x').summarize(). W pandach nie ma takiej metody (jest .agg()). Kod nie zadziałał, stażysta zaginął na 20 minut. Lekcja: sprawdź funkcję, której nie rozpoznajesz w dokumencie; Sztuczna inteligencja może wymyślać metody.
Przypadek 3 – Załamanie plonów. Jeden kod wysyłał zapytania do bazy danych w aplikacji dla każdego wiersza; Działał na 5000 liniach, zajmował 9 godzin na 4 milionach linii i zatrzymał się. Kiedy sztuczna inteligencja zasugerowała rozwiązanie wektorowe (wsadowe), czas skrócono do 40 sekund. Lekcja: kod działający na małych danych może ulec awarii na dużych danych; Weź pod uwagę efektywność.
Cztery szablony do kopiowania
1) Żądanie SQL ze schematem:
Twoja rola: Asystent SQL (PostgreSQL). Tabele:- zamówienia(id, identyfikator_klienta, data i data, kwota numeryczna)- klienci(id, tekst miasta) Zadanie: Uzyskaj całkowity obrót i liczbę zamówień na miasto w 2024 r., posortowane według obrotów w kolejności malejącej. Wyjaśnij, jak radzisz sobie z miastami NULL. Najpierw przetestuję zapytanie za pomocą LIMIT; AKTUALIZUJ/USUŃ generację.
2) proces pand z punktem kontrolnym:
Mam DataFrames df (zamówienia) i df_customers (klienci). Oblicz średnią kwotę na miasto. WAŻNE: wydrukuj liczbę wierszy przed i po łączeniu, abym mógł sprawdzić, czy występuje duplikacja. Wyjaśnij, w której kolumnie dokonałeś połączenia i dlaczego wybrałeś wewnętrzną/lewą.
3) Wyjaśnienie i weryfikacja kodu:
Wyjaśnij następujący kod pandy linia po linii: co robi każda linia, jakie przyjmuje założenia i w jakich przypadkach może dać błędne wyniki? Daj mi znać, jeśli użyłem funkcji krówki. Kod: [wklej]
4) Debugowanie:
Ten kod daje ten błąd. Pełny komunikat o błędzie: [wklej]. Kod: [wklej]. Wyjaśnij przyczynę ROOT błędu i napraw ją. Napraw to, rozwiązując problem, a nie wyciszając alert. Wskaż także, czy poprawka zmieniła dane wyjściowe.
Słaba zachęta/silna zachęta
Słaba zachęta:
Napisz zapytanie, które wyświetli mi sprzedaż w poszczególnych miastach.
Nazwy tabel, kolumny, typ bazy danych, zachowanie NULL są niejasne. Sztuczna inteligencja jest powszechna, prawdopodobnie wygeneruje zapytanie, które nie pasuje do Twojej tabeli.
Potężny monit:
Twoja rola: Asystent SQL (MySQL 8). Tabela: sprzedaż (id, miasto varchar, kwota dziesiętna, data data). Zadanie: Uzyskaj kwotę całkowitą i średnią oraz liczbę zamówień na miasto na rok 2024; Sortuj malejąco według całkowitej kwoty; Pokaż tylko miasta z więcej niż 100 zamówieniami (HAVING).NULL wyklucza miasto. Wyjaśnij zapytanie; Przetestuję z LIMIT.
Tutaj baza danych, schemat, filtr, sortowanie i reguła NULL są oczywiste.
Typowe błędy
- Uruchamianie kodu bez jego czytania. Kod roboczy nie jest poprawnym kodem; Kod manipulujący niewłaściwą kolumną również działa bez błędów.
- Nie sprawdzanie liczby wierszy po połączeniu/dołączeniu. Zły klucz po cichu duplikuje wiersze i zawyża sumy.
- Brak weryfikacji funkcji dopasowania. AI może sugerować metody, które nie istnieją; Potwierdź na podstawie dokumentu, że go nie rozpoznajesz.
- Nie myśląc o wydajności. Apply/pętla działająca na małe awarie danych w milionach wierszy; wektoryzuj.
- Uruchom bezpośrednio w produkcyjnej bazie danych. Zwłaszcza uruchomienie UPDATE/DELETE bez WHERE lub testowanie jest katastrofalne.
Wskazówka: wyrób sobie nawyk dodawania „wierszy weryfikacyjnej” do każdego fragmentu kodu otrzymanego od sztucznej inteligencji: liczby wierszy przed i po przetwarzaniu, kilku przykładowych wierszy i sumy krytycznej wykonywanej ręcznie. Te trzy kontrole wyłapują najcichsze błędy logiczne.
Podsumowując
Sztuczna inteligencja to potężny partner, który szybko tworzy kod SQL i pandy, ale nie jest ślepym autorytetem. Podaj mu jasno plan i cel; Przeczytaj kod, który wygeneruje, tak jakbyś go sam napisał; Sprawdź liczbę wierszy, funkcje dopasowania i przepustowość po połączeniu/JOIN; Nie uruchamiaj go bez przetestowania go w produkcyjnej bazie danych. Podczas debugowania staraj się rozwiązać problem, a nie go uciszyć. Kod, który działa, nie jest poprawnym kodem; Tylko Ty możesz zagwarantować dokładność.
Zadanie aplikacji
Wybierz pytanie analityczne (np. „miesięczny obrót na kanał”) i poproś sztuczną inteligencję o kod, zarówno za pomocą SQL, jak i pand. Przeczytaj oba kody linia po linii, sprawdź liczbę linii po połączeniu/JOIN i ręcznie zweryfikuj co najmniej jedną krytyczną sumę. Porównaj, czy oba kody dają ten sam wynik; Jeśli jest inaczej, dowiedz się dlaczego.
lista kontrolna
- [ ] Czy jasno przekazałem AI tabelę/schemat i cel?
- [ ] Czy przeczytałem i zrozumiałem kod, który wygenerował, linia po linii?
- [ ] Czy sprawdziłem liczbę linii po połączeniu/dołączeniu?
- [ ] Czy zweryfikowałem funkcje, których nie rozpoznaję w dokumentacji?
- [ ] Czy najpierw przetestowałem kod na bezpiecznych/małych danych, a nie w środowisku produkcyjnym?