Első adattudományi projektem tanulságai

Adattudósként kezdtem pályafutásomat, és megosztottam az első teljesen működőképes adattudományi csővezetékem létrehozásával kapcsolatos tapasztalatokat.

Visszatekintve rájövök, hogy sok hibát követtem el, és sok téves elképzelésem volt erről a területről!

1. Az adatok rendetlenek

A Kaggle-lel ellentétben a valós adatok nem mindig vannak szép CSV-fájlokban.

Gyakran kerülhet olyan helyzetbe, amikor az adatokat nem túl kívánatos formátumokban tárolják, például PDF/DOC/DOCX/XML/HTML stb. Attól függően, hogy milyen adatokat kell kivonni, a nyers adatok elérhető formátuma nagyban hozzájárulhat ennek tényleges megtételének nehézsége.

Esetünkben nagy mennyiségű adatot tároltunk PDF-ben. Ha ilyen helyzetbe ütközik, itt van néhány praktikus nyílt forráskódú könyvtár:

2. A címkézett adatok nem mindig állnak rendelkezésre

A gépi tanulás (és mindenképpen a mély tanulás) területén az egyik nagy akadály a minőségi címkével ellátott adatok hiánya. Ez gyakran olyan helyzetekhez vezet, amikor a felügyelt megközelítések alkalmazása nem járható út az adott probléma megoldására.

Általában három megközelítés létezik a jó címkézett adatok elérhetetlenségének problémájának kezelésére:

  • Béreljen fel egy csomó embert, akik felcímkézhetik az adatokat
  • Használjon olyan fizetős eszközöket, mint az Amazon Turk, a tractable.ai, a mighty.ai stb.
  • Üdvözölje a felügyelet nélküli tanulást.

Mielőtt úgy döntene, hogy felkeresi főnökét az (i) vagy (ii) lehetőség miatt, kapjon választ a következő kérdésekre:

  • Milyen javulást várhatok a felügyelt megközelítésektől a nem felügyelt megközelítésekhez képest? (Ez nem lesz könnyű)
  • Mennyi címkézett adatra van szükségem egy ilyen fejlesztéshez?
  • Rendelkezik-e a projektnek a feladathoz szükséges ideje és pénze?

3. A több adat nem vezet automatikusan jobb teljesítményhez

Van, amikor több adat segít, van amikor nem.

Ha több adatnak alig vagy egyáltalán nem volt hatása a modell teljesítményére, tegye fel magának a következő kérdéseket: -

  • Elég jók a tulajdonságaim ahhoz, hogy az osztályozó/regresszor előre jelezze az eredményeket?
  • A modell nagy torzítástól vagy nagy szórástól szenved?
  • Túl zajosak az adatok?
  • Megfelelően megtörtént az előfeldolgozás? (Rendkívül fontos a természetes nyelv feldolgozásával kapcsolatos problémák esetén)

Mindig emlékezzen: szemét be =› PREDICTIVE MODEL =› szemét ki

4. Legyen a dolgok egyszerűek

A mély tanulás terén elért közelmúltbeli fejlemények és az alábbiakhoz hasonló népszerű diagramok sok embert elhitetek azzal, hogy a mély tanulási megközelítések mindig az első választás.

nem hiszem el. A mélytanulási megközelítések nem garantáltan mindig jobb eredményekhez vezetnek, mint a hagyományos megközelítések. És ha meg is teszik, szinte mindig az értelmezhetőség rovására teszik. Az értelmezhetőség fenntartása az adattudományban nehéz, de fontos.

Miért fontos az értelmezhetőség?

A kiváló értelmezhetőség segít abban, hogy javítsa munkáját, és hatékonyabban kommunikáljon a nem adattudományi szakemberekkel.

Vegyünk egy esetet, amikor egy 3 rétegű neurális hálózatot fejlesztettünk ki. Nemcsak nehéz lenne azonosítani a téves előrejelzések kiváltó okát, de az alábbi, előrejelzésekhez vezető egyenleteket közölni valakivel, aki nem adattudományi háttérrel rendelkezik, rémálom lesz.

Tapasztalataim szerint a következő sorrendben kell megpróbálni megoldani a problémát:

  • Kézzel szerkesztett heurisztika (hurok, ha/akkor feltételekhez)
  • Egyszerű gépi tanulási algoritmusok (lineáris regresszió, logisztikai regresszió, döntési fák stb.)
  • Fejlett gépi tanulási algoritmusok (RandomForest, XGBoost stb.)
  • Sekély neurális hálózatok
  • Mély neurális hálózatok

5. Mindig tartsa naprakészen a dokumentációt

Tudom, hogy ez úgy hangzik, mint a Programozás 101. Akkor miért ismétlem?

Az adattudományi projektek iteratívak. Az első modelled soha nem lesz az utolsó. A jól dokumentált kóddal gondoskodni fog arról, hogy Ön (és mások) megértsék azt, amikor egy kis idő múlva újra áttekinti megközelítéseit.

6. A moduláris programozás megkönnyíti a dolgokat

Ahogy a folyamat kezd összetettebbé válni, a kódbázis is egyre bonyolultabb lesz.

Most képzelje el, hogy egy kis változtatást kell végrehajtania a folyamatban. De az összes lépést egyetlen nagy függvényblokkban hajtják végre. Hogyan hajthat végre lényeges változtatásokat a csővezeték megszakítása nélkül?

A több független feladatokat végrehajtó funkció és az összes többi funkciót meghívó fő funkció megkönnyíti a változtatások végrehajtását. Ez hasznos a kódolvashatóság szempontjából, mivel meglehetősen könnyen visszakeresheti a kódot egy adott műveletre.

7. A változóknak emberileg érthetőnek kell lenniük

Kerülje az olyan változók létrehozását, mint a df/data. Nem minden egy panda adatkeret!

Ha már van futó projektje, azt javaslom, menjen vissza, és változtassa meg a változókat. Ha túl lusta ahhoz, hogy mindenhol módosítsa a változót, használja a beépített függvényeket, például a refractor in PyCharm

8. Az egységtesztek FONTOSak

Ez a szoftverfejlesztés régóta bevált gyakorlata, de olyan mennyiségi területeken, mint például az adattudomány, alulértékelt. Az egységtesztek elsődleges követelménye abból adódik, hogy az adattudományi projektek iteratívak. Ehhez önnek és másoknak időnként vissza kell térnie ugyanahhoz a kódbázishoz. Az egységtesztek tervezése során győződjön meg arról, hogy (ii) lefedik a függvényre vonatkozó korábbi feltételezéseket (ii) valaki más, aki megnézi a kódbázist, azonnal azonosítani tudja, mit próbál elérni a függvény.

Ha többet szeretne megtudni az adattudományi egységtesztelésről, tekintse meg Mohammed Sunasra ezt a cikkét

Következtetés

Az első adattudományi projektje egyszerre lesz frusztráló és szórakoztató. Továbblépsz a MOOC-ról, a Kaggle-ről stb., és elkezdesz értékelni más dolgokat is, mint például a kommunikáció, az alkalmazások méretezhetősége, a megjelenítés és az értelmezhetőség.

Adattudományi állást keresel? Olvassa el Kelly Peng ezt a cikkét.

Új a Data Science területén? Olvassa el Harrison Jansma ezt a cikkét

Ha kapcsolatba szeretne lépni velem, lépjen kapcsolatba velem a Linkedin-en, vagy keressen meg a [email protected] címen.

Köszönöm hogy elolvastad!