Pandákkal tegye nagy adathalmazait diétára, amelyet Cedric Soares France School of AI Medium készített

A nagyon nagy adatállomány rémálom az adatkutatók számára. Szerencsére a Pandas könyvtárak lehetővé teszik, hogy manipulálja őket súlyuk drasztikus optimalizálása nélkül, pillanatok alatt.

Bármely Data Scientistnek hatalmas adathalmazokkal kell szembenéznie. Ezek gyakran több millió bejegyzésből állnak. Ezek a Pandas DataFrames sok memóriát és számítási időt igényelnek. Ezért kritikus fontosságú optimalizálni őket a gépi tanulási modellek megjelenítéséhez, manipulálásához és felhasználásához. Így javíthatja a legkevesebb manipulációval.

adathalmazait

Bemutatónk az Egyesült Államok rendőrsége által 2000 és 2018 között végrehajtott gépjármű-ellenőrzések adatainak egy részén alapul. A Stranfordi Egyetem által összeállított adatok körülbelül 50 000 forgalomellenőrző munkamenetet azonosítanak, államok szerint osztályozva. Csak a New York-i állam által használt adatkészlet csaknem 8 millió rekordot jelent.

Az adatkészlet felfedezése

A csv fájlunk súlya 1 GB. Sőt, ami még rosszabb, ha Pandákkal olvasunk, a DataFrame 6,5 GB memóriaforrást fogyaszt. Ebben a tekintetben vegye figyelembe, hogy a pandas.DataFrame.info () függvény memóriafoglalásának mélyreható becslésének előzetes felismerése megköveteli a "mély" paraméter átadását

Közelebbről megvizsgálva a DataFrame 18 oszlopot tartalmaz. A többséget húrok alkotják, amelyeket Pandas objektumnak tekint.

Az ilyen típusú adatok optimalizálása jelentős megtakarítást eredményez a memória erőforrásaiban.

Jelentős nyereség az objektumok kategorizálásával

Ennek egyik hatékony módja az, hogy minden erősen redundáns objektumhoz indexet rendelünk. A jövőben a Pandas az utóbbit fogja használni, ami kevesebb költséget jelent az űrben. A módszer csak akkor életképes, ha az egyedi objektumok száma meghaladja az objektumok teljes számának 50% -át. Mi a helyzet a Stanford által gyűjtött adatokkal.

Például az "subject_sex" oszlop csak "női" és "férfi" értékeket tartalmaz.

Az optimalizálási folyamat során minden oszlopot egy hurokban tesztelnek, hogy ellenőrizzék az egyedi értékek küszöbét, amelyek kiválthatják az indexelést vagy nem.

Az alábbiakban bemutatunk egy módszert az egyes optimalizálások utáni nyereség tesztelésére.

Használjuk először kategorizált objektumokon.

Megfigyeltük, hogy a memóriafogyasztás 61% -kal csökkent.