Awọn anfani:
- Agbara lati mu SQL ti o lagbara ati koodu pandas ati ka ati jẹrisi laini nipasẹ laini nipa fifun ero ti o han gbangba ati idi si oye atọwọda.
- Agbara lati yẹ awọn aṣiṣe ipalọlọ gẹgẹbi kika ila, iṣẹ ibamu ati igbejade lẹhin apapọ / Darapọ mọ
- Agbara lati yanju iṣoro naa ni yokokoro laisi ipalọlọ ati yago fun ṣiṣiṣẹ koodu laisi idanwo rẹ ni agbegbe iṣelọpọ
Imọ-ẹrọ data ni awọn ede akọkọ meji: SQL (Ede Ibeere Ti a Ti ṣeto — ede fun ibeere data lati awọn apoti isura data) ati Python (ni pataki, ile-ikawe pandas — ohun elo boṣewa fun ṣiṣakoso awọn tabili ni eto). Ninu ẹyọ yii, a yoo kọ ẹkọ lati lo AI gẹgẹbi alabaṣepọ koodu: gbigba SQL ti o lagbara ati koodu pandas lati ọdọ rẹ pẹlu awọn ibeere ti o tọ, kika ati fidi koodu yẹn, ṣiṣatunṣe rẹ, ati pe ko ṣiṣẹ ni afọju. AI kọ koodu atunwi ni iṣẹju-aaya dipo awọn iṣẹju; Ṣugbọn o jẹ iṣẹ rẹ lati rii daju pe koodu ti o ṣe awọn ilana ti o tọ pẹlu ọgbọn ti o tọ. Koodu iṣẹ ko tumọ si koodu to tọ.
Kini idi ti iṣelọpọ koodu pẹlu AI jẹ alagbara ṣugbọn eewu
AI n pese awọn anfani nla mẹta ni iran koodu: iyara (kọ iṣẹ ila-ila 30-nipasẹ-pivot ni iṣẹju-aaya), olurannileti (ṣe iranti rẹ iṣẹ pandas kan ti o gbagbe), ati ikọni (ṣalaye laini koodu nipasẹ laini). Ṣugbọn o ni awọn ewu mẹta: aṣiṣe iṣaro ipalọlọ (koodu ti o ṣe akopọ iwe ti ko tọ nṣiṣẹ laisi awọn aṣiṣe), iṣẹ ti o ni ibamu (ni imọran ọna ti ko si tẹlẹ), ati idẹkun ikore (koodu ti o ṣiṣẹ lori data kekere ṣugbọn o ṣubu ni 10 milionu awọn ori ila). Nitorina ofin goolu: Ka koodu AI bi ẹnipe o kọ funrararẹ. Maṣe ṣiṣẹ laini ti o ko loye.
SQL: data ilana ni orisun
SQL gba ọ laaye lati gba data lati ibi ipamọ data ati ṣe ilana rẹ nibẹ; O le ṣe akopọ awọn miliọnu awọn laini laisi fifa wọn sinu Python. Awọn bulọọki ile ipilẹ: Yan (awọn ọwọn wo), NIBI (awọn ori ila wo), GROUP BY (ẹgbẹ ati akopọ), Darapọ mọ (darapọ mọ awọn tabili), NINI (àlẹmọ ẹgbẹ-lẹhin). AI ṣe iranlọwọ pupọ ni kikọ awọn JOIN eka ati awọn iṣẹ window, ṣugbọn rii daju lati ṣayẹwo awọn nkan meji: jẹ JOIN nipasẹ bọtini ti o pe (bọtini ti ko tọ ṣe awọn ila ti o ṣe ẹda) ati pe o jẹ otitọ idanimọ àlẹmọ (paapaa ihuwasi NULL ati awọn sakani ọjọ).
Išọra: Maṣe ṣiṣe ibeere SQL ti AI ti ipilẹṣẹ taara si ibi ipamọ data iṣelọpọ. Idanwo pẹlu ẹda kekere tabi LIMIT akọkọ. Maṣe ṣe ibeere imudojuiwọn/Paarẹ lai ṣe ijẹrisi ipo NIBI; Aṣiṣe NIBI le pa gbogbo tabili rẹ.
Python / pandas: rọ onínọmbà
pandas jẹ ọna boṣewa lati ṣe afọwọyi awọn tabili (DataFrame) ni Python. Lilo daradara julọ ti AI ni lati fun ni ero ati idi ti o yege. Awọn iṣẹ ṣiṣe ti o wọpọ julọ: àlẹmọ, groupby, parapo, pivot_table, lo. AI kọ awọn wọnyi ni kiakia; Ohun ti o fẹ lati ṣayẹwo ni awọn kannaa: ni awọn kikojọpọ ninu awọn ti o tọ iwe, ni o ni awọn àkópọ yi pada awọn nọmba ti awọn ori ila lairotele (nigbagbogbo ṣayẹwo awọn nọmba ti awọn ori ila lẹhin ti awọn dapọ), ni o wa pq mosi iyipada awọn atilẹba.
idunadura
SQL
pandas
ibi ayẹwo
Sisẹ
NIBI
df[df.x > 5]
NULL/NaN ihuwasi
akojọpọ
GROUP BY
df.ẹgbẹ ()
Ṣe o jẹ ọwọn ọtun?
dapọ
Darapọ mọ
df.dapọ ()
Iyipada kika ila
Lakotan
AVG(), SUM()
.tumosi(), .apao()
Eyi ti ọwọn ti a gba
Too nipasẹ
PERE NIPA
.ori_iye()
Itọnisọna (ilọsoke/sọkalẹ)
yiyọkuro
DISTINCT
.drop_duplicates()
Ninu awọn ọwọn wo?
N ṣatunṣe aṣiṣe: pẹlu AI
Nigbati koodu ba kuna, AI jẹ alabaṣepọ ti n ṣatunṣe aṣiṣe to dara julọ. Fun ni kikun ifiranṣẹ aṣiṣe ati snippet koodu ti o yẹ. Ṣugbọn ṣọra fun awọn ẹgẹ meji. Ni akọkọ, AI le daba ojutu kan ti “pakẹ” aṣiṣe naa (fun apẹẹrẹ, awọn titaniji fifipamọ) - eyi ko ṣe atunṣe aṣiṣe naa, o tọju rẹ. Ẹlẹẹkeji, AI nigbakan ni ipalọlọ yipada ihuwasi miiran lakoko “ipinnu” iṣoro kan. Ofin: loye atunṣe, yanju ko dakẹ, ki o rii daju pe abajade tun jẹ deede lẹhin atunṣe naa.
Fẹ interpretable ati ki o maintainable koodu
Nigbati o ba n ra koodu lati AI, beere fun koodu ti o jẹ kika ati ṣetọju, kii ṣe koodu nikan ti "ṣiṣẹ". Nigbati iwọ tabi alabaṣiṣẹpọ kan ṣii koodu yẹn awọn oṣu nigbamii, o yẹ ki o ni anfani lati loye ohun ti o ṣe. Lati ṣe eyi, jẹ ki o jẹ ihuwasi lati ni AI pẹlu awọn nkan mẹta: awọn orukọ iyipada ti o nilari (orders_temiz, kii ṣe df2), awọn laini asọye kukuru ni awọn igbesẹ pataki (ṣalaye idi, kii ṣe ohun ti a nṣe), ati igbagbogbo ti a npè ni dipo nọmba idan (ACCEPT_ESIGI = 0.85 dipo 0.85 ti a sin sinu koodu). Tun yago fun awọn ẹwọn ila-gun gigun (sisopọ awọn iṣe marun ni laini kan); iwọnyi jẹ ki n ṣatunṣe aṣiṣe le. Nipa aiyipada, AI nigbagbogbo gbejade koodu ṣoki ati “ọlọgbọn”; Ti o ba sọ ni kedere “kọ ṣeékà, itumọ, abojuto”, iwọ yoo gba abajade ti o le ṣetọju pupọ diẹ sii. Eyi tun jẹ ipilẹ ti atunṣe (Unit 10): koodu ti ko loye jẹ koodu ti ko le tun ṣiṣẹ lailewu.
mẹta mini igba
Ọran 1 - Darapọ mọ ẹda. Oluyanju kan ṣe idapo awọn aṣẹ pẹlu tabili ọja ati rii iyipada lapapọ lati jẹ awọn akoko 3 ga julọ. Idi: ọja kọọkan ni awọn ori ila pupọ (awọn awọ oriṣiriṣi) ninu tabili ọja; Darapọ mọ pidánpidán aṣẹ kọọkan. Awọn koodu AI jẹ "ṣiṣẹ", ṣugbọn nọmba awọn ila ti fo lati 240 ẹgbẹrun si 690 ẹgbẹrun. Ẹkọ: nigbagbogbo ṣayẹwo nọmba awọn laini lẹhin iṣọpọ/darapọ.
Ọran 2 - Iṣẹ ibamu. O daba AI df.groupby ('x') . akopọ () si akọṣẹ; Ko si iru ọna ni pandas (nibẹ ni .agg ()). Awọn koodu ko ṣiṣẹ, Akọṣẹ ti sọnu fun 20 iṣẹju. Ẹkọ: ṣayẹwo iṣẹ kan ti o ko da mọ lati doc; AI le ṣe awọn ọna.
Irú 3 - Ikore Collapse. Ọkan koodu ti a ìbéèrè awọn database ni waye fun kọọkan kana; O nṣiṣẹ lori awọn ila 5,000, o gba wakati 9 lori awọn ila 4 milionu, o si duro. Nigbati AI daba ojutu vectorized (ipele) ojutu, akoko naa dinku si awọn aaya 40. Ẹkọ: koodu ti o ṣiṣẹ lori data kekere le jamba lori data nla; Wo iṣẹ ṣiṣe.
Mẹrin daakọ awọn awoṣe
1) Beere SQL pẹlu ero:
Ipa rẹ: Iranlọwọ SQL (PostgreSQL). Awọn tabili: - awọn aṣẹ (id, client_id, date timestamp, nomba iye) - awọn alabara (id, ọrọ ilu) Iṣẹ-ṣiṣe: Gba iyipada lapapọ ati nọmba awọn aṣẹ fun ilu ni ọdun 2024, lẹsẹsẹ nipasẹ iyipada ni aṣẹ ti n sọkalẹ. Ṣe alaye bi o ṣe n ṣakoso awọn ilu NULL. Emi yoo ṣe idanwo ibeere naa pẹlu LIMIT akọkọ; Imudojuiwọn/PA iran.
2) ilana pandas pẹlu aaye ayẹwo:
Mo ni DataFrames df (awọn ibere) ati df_customers (awọn onibara). Ṣe iṣiro iye apapọ fun ilu kan. PATAKI: tẹjade nọmba awọn ori ila ṣaaju ati lẹhin apapọ ki MO le rii boya iṣiṣẹpọ wa. Ṣe alaye ninu iwe wo ti o dapọ ati idi ti o fi yan inu/osi.
3) Alaye koodu ati ijerisi:
Ṣe alaye laini koodu pandas atẹle nipasẹ laini: kini laini kọọkan ṣe, kini awọn arosinu ti o ṣe, ninu awọn ọran wo ni o le fun awọn abajade aṣiṣe? Jẹ ki n mọ ti MO ba lo iṣẹ fudge kan. Koodu: [lẹẹ mọ]
4) N ṣatunṣe aṣiṣe:
Yi koodu yoo fun yi aṣiṣe. Ifiranṣẹ aṣiṣe ni kikun: [lẹẹ mọ]. Code: [lẹẹmọ]. Ṣe alaye idi root ti aṣiṣe naa ki o ṣatunṣe rẹ. Ṣe atunṣe rẹ nipa didoju iṣoro naa ni otitọ, kii ṣe nipa ipalọlọ titaniji naa. Tun tọka boya atunṣe naa yi abajade pada.
Ailagbara kiakia / Alagbara kiakia
Ibere ailagbara:
Kọ ibeere kan ti o fun mi ni tita fun ilu kan.
Awọn orukọ tabili, awọn ọwọn, iru data data, ihuwasi NULL ko ṣe akiyesi. AI jẹ wọpọ, o ṣee ṣe yoo gbejade ibeere ti ko baamu tabili rẹ.
Ibere ti o lagbara:
Ipa rẹ: Iranlọwọ SQL (MySQL 8). Tabili: tita (id, varchar ilu, eleemewa iye, ọjọ ọjọ). Iṣẹ-ṣiṣe: Gba apapọ ati iye apapọ, nọmba awọn aṣẹ fun ilu kan fun ọdun 2024; Too idinku nipasẹ lapapọ iye; Ṣe afihan awọn ilu nikan pẹlu diẹ sii ju awọn aṣẹ 100 (NINI) NULL yọkuro ilu. Ṣe alaye ibeere naa; Emi yoo ṣe idanwo pẹlu LIMIT.
Nibi data data, ero, àlẹmọ, yiyan ati ofin NULL han gbangba.
Awọn aṣiṣe ti o wọpọ
- Ṣiṣe koodu laisi kika rẹ. Koodu iṣẹ kii ṣe koodu to tọ; Awọn koodu ti o afọwọyi awọn ti ko tọ iwe tun nṣiṣẹ lai awọn aṣiṣe.
- Ko ṣayẹwo nọmba awọn ori ila lẹhin ti o dapọ/darapọ mọ. Bọtini ti ko tọ ni ipalọlọ ṣe pidánpidán awọn ori ila ati ki o fa lapapọ.
- Ko ṣe idaniloju iṣẹ ibamu. AI le daba awọn ọna ti ko si; Jẹrisi lati iwe-ipamọ pe o ko da a mọ.
- Ko ronu nipa ṣiṣe. waye / lupu ṣiṣẹ lori awọn ipadanu data kekere lori awọn miliọnu awọn ori ila; vectorize.
- Ṣiṣe taara lori ibi ipamọ data iṣelọpọ. Paapa nṣiṣẹ imudojuiwọn/PA laisi IBI tabi idanwo jẹ ajalu.
Imọran: Gba aṣa ti fifi “laini ijẹrisi” kun si gbogbo nkan koodu ti o gba lati ọdọ AI: nọmba iṣaaju-ati lẹhin-iṣaaju ti awọn laini, awọn laini ayẹwo diẹ, ati lapapọ pataki pẹlu ọwọ. Awọn sọwedowo mẹta wọnyi mu awọn aṣiṣe ọgbọn ipalọlọ pupọ julọ.
Ni akojọpọ
AI jẹ alabaṣepọ ti o lagbara ti o ṣe agbejade SQL ati koodu pandas ni kiakia, ṣugbọn kii ṣe aṣẹ afọju. Fún un ní ète àti ète ní kedere; Ka koodu ti o gbejade bi ẹnipe o kowe funrararẹ; Ṣayẹwo nọmba awọn ori ila, awọn iṣẹ ti o baamu ati iṣelọpọ lẹhin idapọ / Darapọ mọ; Maṣe ṣiṣẹ laisi idanwo lori ibi ipamọ data iṣelọpọ. Nigbati o ba n ṣatunṣe aṣiṣe, ṣe ifọkansi lati yanju iṣoro naa, kii ṣe ipalọlọ. Awọn koodu ti o ṣiṣẹ ni ko awọn ti o tọ koodu; Iwọ nikan ni o le ṣe iṣeduro deede.
Ohun elo iṣẹ-ṣiṣe
Yan ibeere onínọmbà (fun apẹẹrẹ “iyipada oṣooṣu fun ikanni kan”) ati beere koodu lati AI pẹlu mejeeji SQL ati pandas. Ka laini koodu mejeeji nipasẹ laini, ṣayẹwo nọmba awọn laini lẹhin apapọ / Darapọ mọ ki o rii daju o kere ju apao to ṣe pataki kan. Ṣe afiwe boya awọn koodu meji gbe abajade kanna; Ti o ba yatọ, wa idi.
akojọ ayẹwo
- [] Njẹ Mo ti fun tabili / ero ati idi ni kedere si AI?
- [] Njẹ Mo ka ati loye koodu ti o ṣe laini nipasẹ laini?
- [] Ṣe Mo ṣayẹwo nọmba awọn laini lẹhin ti o dapọ/darapọ?
- [] Njẹ Mo ti jẹrisi awọn iṣẹ ti Emi ko da lati inu iwe naa?
- [] Njẹ Mo ti ni idanwo koodu lori ailewu / data kekere ni akọkọ kii ṣe ni agbegbe iṣelọpọ?