Jednotka 9 / 11

Generování kódu: Analýza pomocí AI s Pythonem (pandy) a SQL

zisky:

  • Schopnost převzít robustní kód SQL a pandas a číst a ověřovat jej řádek po řádku tím, že umělé inteligenci poskytne jasné schéma a účel
  • Schopnost zachytit tiché chyby, jako je počet řádků, funkce přizpůsobení a propustnost po sloučení/JOIN
  • Schopnost vyřešit problém v ladění bez jeho umlčení a vyhnout se spuštění kódu bez testování v produkčním prostředí

Data science má dva primární jazyky: SQL (Structured Query Language — jazyk pro dotazování dat z databází) a Python (konkrétně knihovna pandas — standardní nástroj pro programovou manipulaci s tabulkami). V této jednotce se naučíme používat AI jako partnera pro kód: získávat z ní solidní kód SQL a pandas pomocí správných otázek, číst a ověřovat tento kód, ladit jej a nikdy jej nespouštět naslepo. AI zapisuje opakující se kód v sekundách namísto minut; Vaším úkolem je ale zajistit, aby kód, který vytváří, zpracovával správný sloupec se správnou logikou. Funkční kód neznamená správný kód.

Proč je vytváření kódu pomocí AI výkonné, ale riskantní

Umělá inteligence poskytuje tři velké výhody při generování kódu: rychlost (zapíše 30řádkovou operaci po skupinách během několika sekund), připomenutí (připomene vám funkci pandy, na kterou jste zapomněli) a výuku (vysvětlí kód řádek po řádku). Nese to ale tři rizika: tichá logická chyba (kód, který sčítá nesprávný sloupec běží bez chyb), fitovaná funkce (navrhuje metodu, která neexistuje) a výnosová past (kód, který funguje na malých datech, ale zhroutí se na 10 milionech řádků). Takže zlaté pravidlo: Čtěte kód AI, jako byste ho napsali sami. Nejezděte na linku, které nerozumíte.

SQL: zpracovávat data u zdroje

SQL umožňuje načíst data z databáze a zpracovat je tam; Můžete shrnout miliony řádků, aniž byste je přetahovali do Pythonu. Základní stavební kameny: SELECT (které sloupce), WHERE (které řádky), GROUP BY (seskupení a shrnutí), JOIN (spojení tabulek), HAVING (filtr po seskupení). AI je velmi užitečná při psaní složitých JOINů a funkcí oken, ale nezapomeňte zkontrolovat dvě věci: zda je JOIN přes správný klíč (špatný klíč duplikuje řádky) a je správná logika filtru (zejména chování NULL a rozsahy dat).

Upozornění: Nespouštějte dotaz SQL generovaný AI přímo proti produkční databázi. Nejprve otestujte malou kopii nebo LIMIT. Nikdy nespouštějte dotaz UPDATE/DELETE bez ověření podmínky WHERE; Špatné WHERE může smazat celou tabulku.

Python/pandy: flexibilní analýza

pandas je standardní způsob manipulace s tabulkami (DataFrame) v Pythonu. Nejúčinnějším využitím AI je dát jí jasné schéma a účel. Nejčastěji používané operace: filter, groupby, merge, pivot_table, apply. AI je píše rychle; Co chcete zkontrolovat, je logika: zda je seskupení ve správném sloupci, zda sloučení neočekávaně změnilo počet řádků (po sloučení vždy zkontrolujte počet řádků), zda se řetězové operace mění původní.

transakce

SQL

pandy

kontrolní bod

Filtrování

KDE

df[df.x > 5]

Chování NULL/NaN

seskupení

GROUP BY

df.groupby()

Je to správný sloupec?

sloučit

PŘIPOJTE SE

df.merge()

Změna počtu řádků

Shrnutí

AVG(), SUM()

.mean(), .sum()

Který sloupec byl shromážděn

Seřadit podle

OBJEDNAT PODLE

.sort_values()

Směr (vzestupně/sestupně)

deduplikace

VÝZNAMNÝ

.drop_duplicates()

Ve kterých sloupcích?

Ladění: pomocí AI

Když kód selže, AI je vynikajícím partnerem pro ladění. Dejte mu úplnou chybovou zprávu a příslušný fragment kódu. Pozor ale na dvě pasti. Za prvé, umělá inteligence může navrhnout řešení, které chybu „utiší“ (např. skrytí výstrah) – to chybu neopraví, ale skryje. Za druhé, umělá inteligence někdy při „řešení“ problému tiše změní jiné chování. Pravidlo: porozumět opravě, vyřešit ne ztlumit a ověřit, že výstup je po opravě stále správný.

Chcete interpretovatelný a udržovatelný kód

Při nákupu kódu od AI požádejte o kód, který je čitelný a udržovatelný, nejen kód, který „funguje“. Když vy nebo váš kolega otevřete tento kód o měsíce později, měl by být schopen porozumět tomu, co dělá. Chcete-li to provést, vytvořte si zvyk, že AI ​​zahrnuje tři věci: smysluplné názvy proměnných (orders_temiz, ne df2), krátké řádky komentářů v kritických krocích (vysvětlující proč, ne co se dělá) a pojmenovanou konstantu místo magického čísla (ACCEPT_ESIGI = 0,85 místo 0,85 pohřbené v kódu). Vyvarujte se také dlouhých jednořádkových řetězců (spojujících pět akcí v jedné řadě); ty znesnadňují ladění. Ve výchozím nastavení AI často vytváří stručný a „chytrý“ kód; Pokud jasně řeknete „zapsat čitelný, interpretovatelný, udržovatelný“, získáte mnohem lépe udržovatelný výstup. To je také základem reprodukovatelnosti (jednotka 10): kód, kterému nerozumíme, je kód, který nelze bezpečně znovu spustit.

tři mini pouzdra

Případ 1 – replikace JOIN. Analytik spojil objednávky s tabulkou produktů a zjistil, že celkový obrat je 3krát vyšší. Příčina: každý produkt měl v tabulce produktů více řádků (různé barvy); JOIN duplikoval každou objednávku. Kód AI „fungoval“, ale počet řádků vyskočil z 240 tisíc na 690 tisíc. Ponaučení: vždy po sloučení/JOIN zkontrolujte počet řádků.

Případ 2 — Funkce montáže. Navrhl stážistovi AI df.groupby('x').summarize(); U pand žádná taková metoda neexistuje (existuje .agg()). Kód nefungoval, stážista se na 20 minut ztratil. Lekce: ověřte funkci, kterou neznáte z dokumentu; Umělá inteligence může vymýšlet metody.

Případ 3 – Zhroucení výnosu. Jeden kód dotazoval databázi v aplikaci pro každý řádek; Jel na 5 000 linkách, na 4 milionech linek to trvalo 9 hodin a zastavil se. Když AI navrhla vektorizované (dávkové) řešení, čas se zkrátil na 40 sekund. Lekce: kód, který funguje na malých datech, může selhat na velkých datech; Zvažte efektivitu.

Čtyři kopírovatelné šablony

1) Požadavek SQL se schématem:

Vaše role: SQL asistent (PostgreSQL). Tabulky:- objednávky (id, customer_id, date timestamp, number numeric)- customers(id, city text) Úkol: Získejte celkový obrat a počet objednávek na město v roce 2024, seřazené podle obratu sestupně. Vysvětlete, jak zacházíte s městy NULL. Nejprve otestuji dotaz pomocí LIMIT; Generování UPDATE/DELETE.

2) proces pandy s kontrolním bodem:

Mám DataFrames df (objednávky) a df_customers (zákazníci). Vypočítejte průměrnou částku na město. DŮLEŽITÉ: vytiskněte počet řádků před a po sloučení, abych viděl, zda nedochází k duplicitě. Vysvětlete, ve kterém sloupci jste se sloučili a proč jste zvolili vnitřní/levý.

3) Vysvětlení a ověření kódu:

Vysvětlete následující kód pandy řádek po řádku: co dělá každý řádek, jaké předpoklady dělá, v jakých případech by mohl dát špatné výsledky? Dejte mi vědět, jestli jsem použil funkci fudge. Kód: [vložit]

4) Ladění:

Tento kód dává tuto chybu. Úplná chybová zpráva: [vložit]. Kód: [vložit]. Vysvětlete ROOT příčinu chyby a opravte ji. Opravte to skutečným vyřešením problému, nikoli ztišením výstrahy. Uveďte také, zda oprava změnila výstup.

Slabá výzva / Silná výzva

Slabá výzva:

Napište dotaz, který mi poskytne tržby za město.

Názvy tabulek, sloupce, typ databáze, chování NULL jsou nejasné. AI je běžná, pravděpodobně vytvoří dotaz, který se nehodí do vaší tabulky.

Výkonná výzva:

Vaše role: SQL asistent (MySQL 8). Tabulka: tržby (id, město varchar, částka v desítkové soustavě, datum datum). Úkol: Získejte celkovou a průměrnou částku, počet objednávek na město za rok 2024; Seřadit sestupně podle celkové částky; Zobrazit pouze města s více než 100 objednávkami (HAVING). NULL vyloučit město. Vysvětlete dotaz; Budu testovat s LIMIT.

Zde jsou zřejmé databáze, schéma, filtr, řazení a pravidlo NULL.

Časté chyby

  • Spuštění kódu bez jeho čtení. Pracovní kód není správný kód; Kód, který manipuluje s nesprávným sloupcem, také běží bez chyb.
  • Nekontroluje se počet řádků po sloučení/JOIN. Špatný klíč tiše duplikuje řádky a zvyšuje součty.
  • Neověřuje se funkce montáže. AI může navrhnout metody, které neexistují; Potvrďte z dokumentu, že jej nepoznáváte.
  • Nemyslet na efektivitu. aplikovat/zacyklit práci na malých selháních dat na milionech řádků; vektorizovat.
  • Spustit přímo v produkční databázi. Zejména spuštění UPDATE/DELETE bez WHERE nebo testování je katastrofální.
Tip: Zvykněte si přidat „ověřovací řádek“ ke každému kousku kódu, který obdržíte od AI: počet řádků před a po zpracování, několik vzorových řádků a kritický součet ručně. Tyto tři kontroly zachytí většinu tichých logických chyb.

V souhrnu

Umělá inteligence je výkonný partner, který rychle vytváří kód SQL a pandas, ale není to slepá autorita. Jasně mu dejte schéma a účel; Čtěte kód, který vytváří, jako byste jej napsali sami; Zkontrolujte počet řádků, přizpůsobovací funkce a propustnost po sloučení/JOIN; Nespouštějte jej bez testování v produkční databázi. Při ladění se snažte problém vyřešit, ne jej umlčet. Kód, který funguje, není správný kód; Pouze vy můžete zaručit přesnost.

Aplikační úkol

Vyberte si analytickou otázku (např. „měsíční obrat na kanál“) a vyžádejte si kód od AI pomocí SQL i pandy. Přečtěte si oba kódy řádek po řádku, zkontrolujte počet řádků po sloučení/JOIN a ručně ověřte alespoň jeden kritický součet. Porovnejte, zda dva kódy poskytují stejný výsledek; Pokud se liší, zjistěte proč.

kontrolní seznam

  • [ ] Sdělil jsem AI tabulku/schéma a účel jasně?
  • [ ] Přečetl jsem a porozuměl kódu, který vytvořil řádek po řádku?
  • [ ] Zkontroloval jsem počet řádků po sloučení/JOIN?
  • [ ] Ověřil jsem funkce, které neznám z dokumentace?
  • [ ] Testoval jsem kód nejprve na bezpečných/malých datech a ne v produkčním prostředí?