Njësia 5 / 11

Inxhinieria e veçorive: Gjenerimi i varianteve, kodimi, shkallëzimi dhe shmangia e rrjedhjeve

Fitimet:

  • Aftësia për të prodhuar veçori domethënëse derivative me njohuri për domenin dhe për të koduar kategoritë kategorike me metoda të përshtatshme (një-hot, etiketë, objektiv)
  • Aftësia për të shkallëzuar variablat numerike sipas llojit të modelit (standardizimi, normalizimi) dhe për të shmangur shkallëzimin e panevojshëm ose jo të plotë
  • Aftësia për të shmangur rrjedhjen e veçorive duke mësuar të gjitha transformimet pas ndarjes së trajnimit/testit dhe vetëm nga trajnimi

Ekziston një thënie e vjetër në mësimin e makinerive: "Mësimi i aplikuar i makinerive është në thelb inxhinieri i veçorive." Sepse suksesi i një modeli shpesh vjen nga inputet që i jepni modelit, dhe jo nga algoritmi që zgjidhni. Inxhinieria e veçorive është arti i prodhimit të sinjaleve domethënëse nga të dhënat e papërpunuara nga të cilat modeli mund të mësojë. Inteligjenca artificiale është një burim i pasur idesh në këtë fazë: kur pyet "çfarë veçorish mund të prodhohen nga këto të dhëna", ajo rendit dhjetëra sugjerime. Por disa nga këto sugjerime mund të jenë të vlefshme, disa mund të jenë të padobishme dhe disa mund të jenë të rrezikshme (rrjedhje). Është detyra juaj ta rregulloni atë.

Pse tipar inxhinieri

Të dhënat e papërpunuara rrallë vijnë në model në formën e tij më të mirë. Ndërsa vetëm kolona "data e lindjes" është e pakuptimtë, vlera "mosha" e gjeneruar prej saj është një sinjal i fortë. Mund të nxirrni atribute të tilla si "dita e javës", "ditë/natë", "a është festë" nga "vula kohore e porosisë". Ju mund të kombinoni dy kolona për të prodhuar një raport ("raporti borxh/të ardhura"). Këtu, inxhinieria e veçorive po përkthen njohuritë e domenit në sinjal matematikor; Dhe pikërisht për këtë është faza që kërkon inteligjencën më njerëzore.

Shndërrimi i ndryshoreve kategorike në numra: kodimi

Modelet në përgjithësi punojnë me numra, jo me tekst. Shndërrimi i ndryshoreve kategorike (si qyteti, ngjyra, lloji i produktit) në numra quhet kodim. Tre metoda të zakonshme:

Enkodimi me një nxehtësi: Hap një kolonë të veçantë me vlerë 0/1 për secilën kategori. Për “qytetin”, janë formuar kolonat e Stambollit, Ankarasë, Izmirit; Nëse një klient është nga Stambolli, vetëm ajo kolonë do të jetë 1. Ideale kur numri i kategorive është i vogël; Nëse ka shumë kategori, ai prodhon qindra kolona (kjo quhet "shpërthim i madhësisë").

Kodimi i etiketës: Jep një numër për secilën kategori (Stamboll=0, Ankara=1). Është e thjeshtë, por rastësisht mund t'i mësojë modeles një sekuencë (si Ankara > Stamboll); kështu që përdoret me kujdes në kategoritë e pa renditura.

Kodimi i synuar: Zëvendëson secilën kategori me mesataren e ndryshores së synuar në atë kategori. Është shumë i fuqishëm, por burimi më i rrezikshëm i rrjedhjes: nëse merrni parasysh objektivin e të dhënave të testimit, modeli sheh të ardhmen. Duhet të llogaritet vetëm nga të dhënat e trajnimit dhe me kujdes (brenda verifikimit të kryqëzuar).

Shkallëzimi: numrat e mëdhenj nuk e mbingarkojnë modelin

Disa modele (ato të bazuara në distancë, modele lineare, rrjete nervore) janë të ndjeshme ndaj shkallës së variablave. Nëse "të ardhurat" (0-500,000) dhe "mosha" (0-100) bien në të njëjtin model, të ardhurat mund të dominojnë thjesht sepse janë më të mëdha. Shkallëzimi e rregullon këtë. Dy metoda të zakonshme: standardizimi (konverton secilën vlerë në "sa devijime standarde larg mesatares") dhe normalizim (normalizimi min-maks - ngjesh vlerat në intervalin 0-1). Modelet e bazuara në pemë (pemët e vendimit, pyjet e rastësishme) janë të pandjeshme ndaj shkallës, ato nuk kërkojnë shkallëzim.

Kujdes: Parametrat e shkallëzimit dhe kodimit (mesatarja, devijimi standard, hartë kategori-mesatare) duhet të llogariten vetëm nga të dhënat e trajnimit, pastaj e njëjta gjë duhet të zbatohet për të dhënat e testit. Përfshirja e të dhënave të testit është rrjedhje dhe e bën modelin tuaj të duket më i mirë se sa është në të vërtetë.

Zemra e rrjedhjes në inxhinierinë e veçorive

Gjenerimi i veçorive është vendi ku rrjedhja e të dhënave më shpesh buron. Dy gabime tipike: Rrjedhja e kohës — prodhimi i një veçorie që përfshin informacione të ardhshme (duke përfshirë ditët pas ditës së parashikimit kur llogaritet "mesatarja e 30 ditëve të fundit"). Rrjedhja e statistikave — llogaritja e një veçorie (mesatarja e shkallëzimit, vlera e kodimit të synuar) nga të gjitha të dhënat para ndarjes së trajnimit/testit. Rregulli: mësoni çdo transformim pasi të keni bërë ndarjen e trenit/testit fillimisht dhe vetëm nga të dhënat e trajnimit. Mënyra më e sigurt për ta bërë këtë rregullisht është përdorimi i tubacionit - një strukturë që mbledh të gjitha transformimet në një zinxhir të vetëm dhe i zbaton ato pas ndarjes.

Metoda

për çfarë

Rreziku i rrjedhjes

shënim

Një kodim i nxehtë

E ndryshueshme me pak kategori

të ulëta

Përmasat shpërthejnë në kategori të shumta

Kodimi i etiketës

Kategoria e renditur

të ulëta

Jashtë rendit mëson rendin e gabuar

kodimi i synuar

Sinjali me shumë kategori, i fortë

shumë e lartë

Vetëm nga arsimi, në CV

standardizimi

Modele lineare/distanca

e mesme

Parametri varet vetëm nga edukimi

Karakteristika e dritares së kohës

seritë kohore

lartë

Shtoni të ardhmen

tre mini kuti

Rasti 1 — Pasuri e vlefshme. Një ekip krediti gjeneroi tiparin "raporti i borxhit ndaj të ardhurave" nga kolonat "të ardhura mujore" dhe "pagesa mujore e borxhit". Kjo veçori e vetme e prejardhur rriti saktësinë e modelit nga 71% në 79%; sepse ishte norma, jo të ardhurat absolute, ajo që përcaktoi realisht rrezikun. Mësimi: raportet e krijuara nga njohuritë e domenit janë sinjale të forta.

Rasti 2 - Rrjedhja e kodimit të synuar. Një ekip e konvertoi "kodin postar" në një numër me kodimin e synuar (shkalla mesatare e frenimit në atë zonë), por e bëri këtë nga të gjitha të dhënat përpara se të ndahej. Modeli dha 94% në grupin e provës, duke rënë në 68% në prodhim. 6 javë përpjekje e humbur. Mësimi: kodimi i objektivit bëhet me kujdes, vetëm brenda trajnimit.

Rasti 3 - Harrimi i shkallëzimit. Një analist ushqeu të ardhurat (0-400,000) dhe moshën e klientit (18-75) në një model të bazuar në distancë pa shkallëzim. Modelja shikonte pothuajse ekskluzivisht të ardhurat, duke shtypur efektin e moshës. Kur u shtua shkallëzimi, segmentimi u bë kuptimplotë. Mësimi: shkallëzimi nuk neglizhohet në modelet në distancë/lineare.

Katër shabllone të kopjueshëm

1) Gjenerimi i ideve të veçorive (eliminimi varet nga ju):

Roli juaj: asistent inxhinierik. Kolonat e mia df: data_lindja, koha_porosi (vula kohore), të ardhurat_tl, borxhi_tl, qyteti, kategoria_produkti. Objektivi: "a do të shlyhet kredia" (0/1). Sugjeroni 15 veçori që mund të gjenerohen nga këto kolona; specifikoni rrezikun e rrjedhjes (i ulët/mesatar/i lartë) për secilën. Shënoni qartë ato që përmbajnë informacione të ardhshme.

2) Kodimi i sigurt (pas ndarjes):

Shkruani kodin që kodon "qytetin" dhe "kategoria_produktit". E RËNDËSISHME: përshtatni kodimin vetëm në të dhënat e trajnimit, më pas transformoni të dhënat e testimit (me sklearn OneHotEncoder). Shpjegoni se si e trajtoni kategorinë e padukshme (handle_unknown) në arsim.

3) Konvertimi pa rrjedhje me Pipeline:

Vendosni sklearn Pipeline: aplikoni StandardScaler në kolonat numerike, OneHotEncoder në kolonat kategorike, shtoni një klasifikues në fund. Garantoni të gjitha transformimet mësohen PAS ndarjes së trenit/testit dhe vetëm nga trajnimi. Shpjegoni kodin dhe pse është pa rrjedhje.

4) Tipari i dritares së kohës (kontrolli i rrjedhjeve):

Gjeneroni atributin "numri i porosive në 30 ditët e fundit" për çdo klient, por mos përfshini asnjëherë të dhëna pas ditës së parashikimit. Shpjegoni rresht pas rreshti se kodi nuk shikon në të ardhmen. Unë do të jap kolonën e datës së referencës.

Prompt i dobët / Prompt i fortë

Njoftim i dobët:

Shtoni veti të mira në këto të dhëna.

"Mirë" është e papërcaktuar, objektivi është i paqartë, nuk ka kontroll të rrjedhjeve. AI gjeneron veçori të rastësishme, ndoshta të rrjedhura.

Njoftim i fuqishëm:

Roli juaj: inxhinier tipar. Synimi: "shkurt në 30 ditë" (0/1), data e parashikuar e referencës: data_save. Ka histori transaksionesh në df.Detyra: Gjeneroni 8 veçori, përgjigjuni pyetjes "A e kam këtë informacion në momentin e parashikimit" për SECILIN. Shtimi i datës pas datës së referencës në veçoritë e dritares së kohës. Shkruani kodin në një mënyrë të përputhshme me tubacionin për t'u ekzekutuar pas seksionit të trenit/provës.

Këtu, objektivi, koha e referencës dhe kontrolli i rrjedhjeve janë përcaktuar që në fillim.

Gabimet e zakonshme

  • Mësimi i transformimit nga të gjitha të dhënat para ndarjes. Nëse parametri i shkallëzimit/kodifikimit sheh të dhënat e provës, ndodh rrjedhje.
  • Përdorimi i pakujdesshëm i kodimit të synuar. Është metoda më e fuqishme por më e rrjedhshme; vetëm nga trajnimi, në vlerësim të kryqëzuar.
  • Shtimi i së ardhmes me një veçori të dritares kohore. Nëse llogaritja e "30 ditëve të fundit" futet pas ditës së parashikimit, modeli sheh të ardhmen.
  • Shkallëzimi i panevojshëm në modelin e pemës dhe shkallëzimi jo i plotë në modelin linear. Vendimet për shkallëzimin merren sipas llojit të modelit.
  • Shtimi i çdo sugjerimi të veçorive të AI pa diskutim. Sugjerimet mund të përfshijnë veçori të padobishme dhe që rrjedhin.
Këshillë: Shkruani një pyetje të vetme për çdo veçori që krijoni: "A mund ta llogaris këtë vlerë me informacionin që kam në momentin që bëj parashikimin?" Nëse përgjigja nuk është e qartë "po", mos e përdorni veçorinë. Kjo disiplinë e vetme eliminon shumicën e rrjedhjeve të lidhura me veçoritë.

Në përmbledhje

Inxhinieria e veçorive është arti i gjenerimit të sinjaleve domethënëse nga të dhënat e papërpunuara dhe shpesh përcakton suksesin e modelit më shumë sesa algoritmin. Kodimi i kategorive (një-hot, etiketë, objektiv), shkallëzimi i numrave (standardizimi, normalizimi) dhe prodhimi i veçorive të derivateve me njohuri për domenin janë mjetet bazë. Por kjo fazë është gjithashtu thelbi i rrjedhjes: të gjitha transformimet duhet të mësohen pas ndarjes së trajnimit/testit dhe vetëm nga të dhënat e trajnimit. AI gjeneron shumë ide; Është gjykimi njerëzor ai që e dallon të vlefshmen nga e rrezikshme.

Detyra e aplikimit

Zgjidhni një variabël të synuar dhe dizajnoni të paktën pesë karakteristika derivative nga kolonat që keni. Për secilën prej tyre, përgjigjuni me shkrim pyetjes "a jam në dispozicion në momentin e parashikimit" dhe eliminoni të paktën njërin si "rrezik i lartë rrjedhjeje". Më pas kodoni veçoritë e sigurta në një tubacion që do të zbatohet pas ndarjes.

listë kontrolli

  • [ ] A i zbatova të gjitha transformimet pas ndarjes së trenit/testit?
  • [ ] A i kam mësuar vetëm parametrat e shkallëzimit/kodifikimit nga trajnimi?
  • [ ] A i jam përgjigjur pyetjes "a e kam në momentin e parashikimit" për secilën veçori?
  • [ ] A kam pasur kujdes shtesë me metodat me rrezik të lartë si kodimi i synuar?
  • [ ] A kam vendosur të shkallëzoj në mënyrë të përshtatshme për llojin e modelit (pemë/linear)?