Voitot:
- Kyky ottaa vankkaa SQL- ja pandakoodia ja lukea ja tarkistaa se rivi riviltä antamalla tekoälylle selkeä skeema ja tarkoitus
- Kyky havaita hiljaiset virheet, kuten rivien määrä, sovitustoiminto ja suorituskyky yhdistämisen/liittymisen jälkeen
- Kyky ratkaista ongelma virheenkorjauksessa hiljentämättä sitä ja välttää koodin suorittamista testaamatta sitä tuotantoympäristössä
Tietotieteellä on kaksi ensisijaista kieltä: SQL (Structured Query Language – kieli tietojen kyselyyn tietokannoista) ja Python (erityisesti pandaskirjasto – vakiotyökalu taulukoiden ohjelmointiin). Tässä osiossa opimme käyttämään tekoälyä koodikumppanina: saamaan siitä kiinteän SQL- ja pandakoodin oikeilla kysymyksillä, lukemaan ja vahvistamaan koodin, tekemään virheenkorjauksen ja koskaan suorittamaan sitä sokeasti. AI kirjoittaa toistuvan koodin sekunneissa minuuttien sijaan; Mutta sinun tehtäväsi on varmistaa, että sen tuottama koodi käsittelee oikean sarakkeen oikealla logiikalla. Toimiva koodi ei tarkoita oikeaa koodia.
Miksi koodin tuottaminen tekoälyllä on tehokasta mutta riskialtista
Tekoäly tarjoaa kolme suurta etua koodin luomisessa: nopeus (kirjoittaa 30-rivisen ryhmäkohtaisen pivot-operaation sekunneissa), muistutuksen (muistuttaa unohdetusta pandafunktiosta) ja opetus (selittää koodin rivi riviltä). Mutta siihen liittyy kolme riskiä: hiljainen logiikkavirhe (koodi, joka summaa väärän sarakkeen, toimii ilman virheitä), sovitettu toiminto (ehdottaa menetelmää, jota ei ole olemassa) ja tuottoloukku (koodi, joka toimii pienillä tiedoilla, mutta kaatuu 10 miljoonalla rivillä). Joten kultainen sääntö: Lue tekoälyn koodi ikään kuin olisit kirjoittanut sen itse. Älä aja linjaa, jota et ymmärrä.
SQL: käsittele dataa lähteellä
SQL:n avulla voit hakea tietoja tietokannasta ja käsitellä niitä siellä; Voit tehdä yhteenvedon miljoonista riveistä vetämättä niitä Pythoniin. Perusrakennuspalikoita: SELECT (mitkä sarakkeet), WHERE (mitkä rivit), GROUP BY (ryhmittele ja yhteenveto), JOIN (liitos taulukoihin), HAVING (ryhmän jälkeinen suodatin). Tekoäly on erittäin hyödyllinen monimutkaisten JOIN-toimintojen ja ikkunatoimintojen kirjoittamisessa, mutta muista tarkistaa kaksi asiaa: onko JOIN oikean avaimen kautta (väärä avain kopioi rivit) ja onko suodatinlogiikka oikea (etenkin NULL-käyttäytyminen ja päivämäärävälit).
Varoitus: Älä suorita tekoälyn luomaa SQL-kyselyä suoraan tuotantotietokantaa vastaan. Testaa ensin pienellä kopiolla tai LIMIT:llä. Älä koskaan suorita UPDATE/DELETE-kyselyä vahvistamatta WHERE-ehtoa. Väärä WHERE voi poistaa koko taulukon.
Python/pandas: joustava analyysi
pandas on tavallinen tapa käsitellä taulukoita (DataFrame) Pythonissa. Tehokkain tekoälyn käyttö on antaa sille selkeä suunnitelma ja tarkoitus. Yleisimmin käytetyt toiminnot: filter, groupby, merge, pivot_table, apply. AI kirjoittaa nämä nopeasti; Haluat tarkistaa logiikan: onko ryhmittely oikeassa sarakkeessa, onko yhdistäminen muuttanut rivien määrää odottamatta (tarkista aina rivien määrä yhdistämisen jälkeen), muuttavatko ketjutoiminnot alkuperäistä.
kauppa
SQL
pandat
tarkistuspiste
Suodatus
MISSÄ
df[df.x > 5]
NULL/NaN-käyttäytyminen
ryhmittely
GROUP BY
df.groupby()
Onko se oikea sarake?
yhdistää
LIITY
df.merge()
Rivien lukumäärän muutos
Yhteenveto
AVG(), SUM()
.mean(), .sum()
Mikä sarake kerättiin
Lajitteluperuste
TILAA
.sort_values()
Suunta (nouseva/laskeva)
päällekkäisyyden poistaminen
ERITTÄVÄ
.drop_duplicates()
Missä sarakkeissa?
Virheenkorjaus: AI:lla
Kun koodi epäonnistuu, tekoäly on erinomainen virheenkorjauskumppani. Anna sille koko virheilmoitus ja vastaava koodinpätkä. Mutta varokaa kahta ansaa. Ensinnäkin tekoäly voi ehdottaa ratkaisua, joka "hiljentää" virheen (esim. piilottaa hälytykset) - tämä ei korjaa virhettä, vaan piilottaa sen. Toiseksi tekoäly muuttaa toisinaan hiljaa toista käyttäytymistä "ratkaistessaan" ongelman. Sääntö: ymmärrä korjaus, ratkaise älä mykistää ja varmista, että tulos on edelleen oikea korjauksen jälkeen.
Haluat tulkittavan ja ylläpidettävän koodin
Kun ostat koodia tekoälystä, pyydä koodia, joka on luettavissa ja ylläpidettävä, ei vain koodia, joka "toimii". Kun sinä tai kollegasi avaa koodin kuukausia myöhemmin, sen pitäisi pystyä ymmärtämään, mitä se tekee. Tehdäksesi tämän tavaksi, että tekoäly sisältää kolme asiaa: merkitykselliset muuttujien nimet (orders_temiz, ei df2), lyhyet kommenttirivit kriittisissä vaiheissa (selittää miksi, ei mitä tehdään) ja nimetty vakio maagisen numeron sijaan (ACCEPT_ESIGI = 0,85 0,85:n sijasta koodiin haudattuina). Vältä myös pitkiä yksirivisiä ketjuja (viiden toimintojen yhdistäminen samalle riville); nämä tekevät virheenkorjauksesta vaikeaa. Oletuksena tekoäly tuottaa usein tiivistä ja "älykästä" koodia; Jos sanot selvästi "kirjoita luettava, tulkittava, ylläpidettävä", saat paljon ylläpidettävämmän tulosteen. Tämä on myös toistettavuuden perusta (yksikkö 10): ymmärtämätön koodi on koodi, jota ei voida ajaa uudelleen turvallisesti.
kolme minilaukkua
Tapaus 1 — JOIN-replikointi. Analyytikko yhdisti tilaukset tuotetaulukkoon ja havaitsi kokonaisliikevaihdon olevan 3 kertaa suurempi. Syy: jokaisessa tuotteessa oli useita rivejä (eri värit) tuotetaulukossa; JOIN kopioi jokaisen tilauksen. Tekoälyn koodi "toimii", mutta rivien määrä oli hypännyt 240 tuhannesta 690 tuhanteen. Oppitunti: tarkista aina rivien määrä yhdistämisen/JOIN:n jälkeen.
Tapaus 2 — Asennustoiminto. Hän ehdotti AI df.groupby('x').summarize() harjoittelijalle; Pandoissa ei ole tällaista menetelmää (on olemassa .agg()). Koodi ei toiminut, harjoittelija oli hukassa 20 minuutiksi. Oppitunti: tarkista funktio, jota et tunnista asiakirjasta; Tekoäly voi keksiä menetelmiä.
Tapaus 3 – Tuoton romahdus. Yksi koodi haki tietokantaa jokaiselle riville; Se kulki 5 000 linjalla, kesti 9 tuntia 4 miljoonalla linjalla ja pysähtyi. Kun tekoäly ehdotti vektorisoitua (erä)ratkaisua, aika lyhennettiin 40 sekuntiin. Oppitunti: koodi, joka toimii pienellä datalla, voi kaatua isossa datassa; Harkitse tehokkuutta.
Neljä kopioitavaa mallia
1) SQL:n pyytäminen skeemalla:
Roolisi: SQL-assistentti (PostgreSQL). Taulukot:- tilaukset(id, asiakastunnus, päivämäärän aikaleima, summa numeerinen)- asiakkaat(id, kaupunkiteksti)Tehtävä: Hanki kokonaisliikevaihto ja tilausten määrä kaupunkia kohden vuonna 2024 liikevaihdon mukaan lajiteltuna laskevaan järjestykseen. Selitä, kuinka käsittelet NULL-kaupunkeja. Testaan ensin kyselyä LIMIT:llä; PÄIVITYS/POISTA sukupolvi.
2) Pandaprosessi tarkistuspisteellä:
Minulla on DataFrames df (tilaukset) ja df_customers (asiakkaat). Laske keskimääräinen määrä kaupunkia kohden. TÄRKEÄÄ: tulosta rivien määrä ennen yhdistämistä ja sen jälkeen, jotta voin nähdä, onko olemassa päällekkäisyyksiä. Selitä, mihin sarakkeeseen liitit ja miksi valitsit sisemmän/vasemman.
3) Koodin selitys ja vahvistus:
Selitä seuraava pandakoodi rivi riviltä: mitä kukin rivi tekee, mitä oletuksia se tekee, missä tapauksissa se voi antaa vääriä tuloksia? Kerro, jos käytin fudge-toimintoa. Koodi: [liitä]
4) Vianetsintä:
Tämä koodi antaa tämän virheen. Täysi virheilmoitus: [liitä]. Koodi: [liitä]. Selitä virheen PERUSsyy ja korjaa se. Korjaa se ratkaisemalla ongelma, ei vaimentamalla hälytystä. Ilmoita myös muuttiko korjaus lähtöä.
Heikko kehote / Vahva kehote
Heikko kehote:
Kirjoita kysely, joka antaa minulle myynnin kaupunkikohtaisesti.
Taulukon nimet, sarakkeet, tietokantatyyppi, NULL-käyttäytyminen ovat epäselviä. Tekoäly on yleinen, se todennäköisesti tuottaa kyselyn, joka ei sovi taulukkoosi.
Tehokas kehotus:
Tehtäväsi: SQL-assistentti (MySQL 8). Taulukko: myynti (tunnus, kaupunki varchar, summa desimaali, päivämäärä päivämäärä). Tehtävä: Hanki kokonais- ja keskimääräinen tilausmäärä kaupunkia kohden vuodelle 2024; Lajittele kokonaismäärän mukaan pienenevästi; Näytä vain kaupungit, joissa on yli 100 tilausta (HAVING). NULL poissulje kaupunki. Selitä kysely; Testaan LIMITillä.
Tässä tietokanta, skeema, suodatin, lajittelu ja NULL-sääntö ovat ilmeisiä.
Yleisiä virheitä
- Koodin suorittaminen lukematta sitä. Toimiva koodi ei ole oikea koodi; Väärää saraketta käsittelevä koodi toimii myös ilman virheitä.
- Ei tarkisteta rivien määrää yhdistämisen/JOIN:n jälkeen. Väärä avain kopioi rivejä äänettömästi ja lisää kokonaissummaa.
- Sovitustoimintoa ei tarkisteta. Tekoäly voi ehdottaa menetelmiä, joita ei ole olemassa; Vahvista asiakirjasta, että et tunnista sitä.
- Ei ajattele tehokkuutta. soveltaa/silmukan työskentely pienten tietojen kaatumisissa miljoonilla riveillä; vektoroida.
- Suorita suoraan tuotantotietokannassa. Varsinkin UPDATE/DELETE-päivityksen suorittaminen ilman WHERE:tä tai testausta on tuhoisaa.
Vinkki: Ota tapana lisätä "validointirivi" jokaiseen tekoälyltä saamaasi koodin osaan: esi- ja jälkikäsittelyn rivimäärä, muutama näyterivi ja kriittinen kokonaismäärä käsin. Nämä kolme tarkistusta havaitsevat useimmat hiljaiset logiikkavirheet.
Yhteenvetona
Tekoäly on tehokas kumppani, joka tuottaa nopeasti SQL- ja pandakoodia, mutta se ei ole sokea auktoriteetti. Anna hänelle selkeästi suunnitelma ja tarkoitus; Lue sen tuottama koodi ikään kuin olisit kirjoittanut sen itse; Tarkista rivien lukumäärä, sovitustoiminnot ja suorituskyky yhdistämisen/JOIN:n jälkeen; Älä suorita sitä testaamatta sitä tuotantotietokannassa. Virheenkorjauksen aikana pyri ratkaisemaan ongelma, ei hiljentämään sitä. Toimiva koodi ei ole oikea koodi; Vain sinä voit taata tarkkuuden.
Sovellustehtävä
Valitse analyysikysymys (esim. "kuukausiliikevaihto kanavaa kohti") ja pyydä koodia tekoälyltä sekä SQL:llä että pandoilla. Lue molemmat koodit rivi riviltä, tarkista rivien määrä yhdistämisen/JOIN:n jälkeen ja tarkista manuaalisesti vähintään yksi kriittinen summa. Vertaa, tuottavatko nämä kaksi koodia saman tuloksen; Jos eri, ota selvää miksi.
tarkistuslista
- [ ] Olenko antanut taulukon/kaavion ja tarkoituksen selvästi tekoälylle?
- [ ] Luinko ja ymmärsinkö sen tuottaman koodin rivi riviltä?
- [ ] Tarkistinko rivien määrän yhdistämisen/JOIN:n jälkeen?
- [ ] Olenko tarkistanut toiminnot, joita en tunnista dokumentaatiosta?
- [ ] Olenko testannut koodia ensin turvallisella/pienellä tiedolla enkä tuotantoympäristössä?