Adatforrások. Három ingyenes adatgyűjtési módszer Data Science Projektekhez

„Honnan szerezzek adatot?”

Teljesen releváns kérdés, ha pl.:

  • egy data science hobbi- vagy side-projektet építenél
    VAGY
  • céges kutatási projektben bővítenéd a már meglevő adataidat külső forrásokkal
    VAGY
  • valami hasonló… 🙃

Úgyhogy ebben a posztban röviden, sallangmentesen összeszedek neked néhány lehetőséget, ami jó indulás lehet, aztán még a jövőben bővítem ezt a listát és csinálok belőle valami könyvtárat is.

Három populáris módszert mutatok.

Van több is amúgy, de a három legtöbbet használt:

  1. publikus adathalmazok letöltése
  2. web-scraping
  3. API-kon keresztüli adatlekérés

Nézzük őket egyesével.

(1) Publikus adathalmazok letöltése

Van pár honlap, ahol az oldalak készítői egyszerűen összegyűjtenek, feltöltenek és kereshetővé tesznek rengeteg dataset-et. Ezek változatos minőségűek, de alapos kereséssel lehet kincseket találni. Az egyetlen hátránya, hogy ezek az adathalmazok általában nem „élőek”, azaz nem frissülnek… Ergo csak egy múltbeli fix periódust tudunk általuk elemezni. De gyakran ez elég — főleg ha hobbiprojektről van szó.

Íme a lista:

  1. Google Dataset Search. Egy kereső motor. Olyan mint a Google, csak dataset-ekre: https://datasetsearch.research.google.com/
  2. Kaggle.com. Ezen az oldalon alapból data science versenyek vannak, de az ehhez tartozó adathalmazok sokszor elérhetőek a nagyközönség számára is: https://www.kaggle.com/datasets
  3. Awesome public datasets. Nomen est omen alapon, egy király lista publikus adathalmazokról. https://github.com/awesomedata/awesome-public-datasets
  4. DataHub. Olyan, mint az előző, csak kicsit rövidebb. https://datahub.io/collections
  5. Data.gov. Az amerikai kormány által közzé tett adatok. Szociológiai projektekre kiváló (nyilván erős USA fókusszal.) https://www.data.gov/
  6. NYC Open Data. Ugyanaz, mint az előző, csak kifejezetten New York-ra. https://opendata.cityofnewyork.us/

(2) Web-scraping

A web-scraping gyakorlatilag publikus weboldalak tartalmának a legyűjtése.

Olyan, mintha felmennél egy weblapra és kézzel kigyűjtenéd a rajta levő adatokat (pl. az IMDB-ről hogy melyik film hány csillagot kapott). De az ugye repetitív, unalmas és sok idő… Úgyhogy nem te csinálod, hanem helyetted a Python egyik web-scraping-es csomagja. (Én a beautifulsoup nevűt használom legtöbbször.)

Csináltam egy 20 perces Python-os bemutatót, hogy hogyan is működik ez a dolog.

Angolul van és azt nézzük meg benne, hogy melyik a legnépszerűbb Marvel-es szuperhős — ehhez pedig a Wikipédia-t scrape-elem pár egyszerű lépésben:

* Legális-e a web scraping? Természetesen, ahol az oldal tulajdonos kifejezetten tiltja scrape-elést, ott nem szabad scrape-elni. Ahol nincs explicit tiltva, ott kérdéses a dolog. Ez most nem jogi tanács és konzultálj a saját ügyvédeddel, de azért én is utánanéztem a dolognak… Változatos források változatos dolgokat mondanak róla. A legjobb kapaszkodó, amit találtam és általában használható, az a „fair use” elve. A „fair use” egyébként egy nehezebben definiálható joig kategória, de általában azt jelenti, hogy ha új és egyedi értéket hozol létre úgy, hogy közben nem sérted az adat eredeti tulajdonosának az érdekeit, akkor lehet legális a web scraping. Még egyszer: ez nem jogi tanács.

(3) API-kon keresztüli adatlekérés

Egy csomó online alkalmazás elérhetővé teszi az adatainak egy részét, amiket API-kapcsolatokon keresztül lehet lekérni.

Példák:

  • Spotify API: zenék és előadók adatait tudod lekérni (pl. lejátszásszám, népszerűség, etc.)
  • Coinbase API: kriptós adatokat tudsz lekérni (pl. aktuális és múltbeli árfolyamok)
  • Weather API: időjárási adatokat tudsz lekérni (pl. aktuális és múltbeli hőmérséklet, csapadék, etc. lokáció alapján)

Ezeken az API kapcsolatokon maguk az alkalmazások tulajdonosai tesznek elérhetővé adatokat, strukturált formátumban. Tehát ez biztos, hogy legális, jó minőségű és élő adat.

Megjegyzés: strukturált alatt JSON formátumot érts, ami lényegében konvertálható egy Python dictionary-vé. Ez elsőre ijesztőnek tűnhet, de ha elvégezted pl. a Junior Data Scientist Akadémiát, akkor tuti nem okoz gondot, hogy kinyerd belőle a számodra megfelelő adatokat. Valami ilyesmit képzelj el:

Hátrány: Ugye ehhez is Python kódot kell írni — bár ez amúgy önmagában még nem hátrány. Inkább az, hogy a dokumentációk általában kicsit „fejlesztőknek-fejlesztők-által” minőségűek… 😅 Hogy mondjam úgy, hogy ne sértsek meg senkit? … … Nem feltétlen a felhasználóbarát gondolkodásmód az erőssége ezeknek az útmutatóknak.

Nade, ehhez is van egy bemutató videóm, ahol a Coinbase API-val és a Weather API-val demózom a koncepciót:

Kontextus: ez a videó a Data Science Klub belsős versenyéhez készült, ezért lesz benne pár ilyen utalás.

Van még ennél több is…

Amúgy ez a külsős adatforrásból adatgyűjtés is egy végtelen téma, végtelen megoldási lehetőséggel. 🙂

A mai posztban arra akartam rávilágítani, hogy sok-sok-sok ingyenes adathalmaz érhető el manapság, úgyhogy ne az adathiány legyen, ami gátat szab a projektednek!

(Valamikor tervezek írni majd kifejezetten a cégen belüli „belsős” adatgyűjtésről is… csak azt nem tudom pontosan, hogy hányan vannak itt a listán, akiket érdekelhet mint téma. Ha te köztük vagy és dobsz egy email-t, megköszönöm.)

Data36 Data Science Hírlevél

Belsős anyagok, útmutatók, karriertippek, új technológiák adattudományhoz — magyar nyelven.

Minden csütörtökön, közvetlen az e-mail fiókodba! Csatlakozz 1000+ adatos szakemberhez!

Köszi és üdv,
Mester Tomi