Zbiory danych

Skąd brać dane?

Chcąc opracowywać, analizować, a docelowo wykorzystywać dane w aplikacjach – należy je skądś zdobyć. Źródeł danych  jest wiele, do Ciebie należy decyzja skąd weźmiesz zbiory danych do badań. W zależności, co będzie przedmiotem badań – tak należy dobrać dane.

Zasoby własne

Możemy prowadzić swoje badania lub gromadzić dane z własnych czujników. To świetne rozwiązanie! Całość projektu należy do Ciebie, gromadzisz unikalne dane, znasz je i rozumiesz. Co więcej, możesz pełnić eksperta dziedzinowego – jesteś w stanie korygować i oceniać wyniki zwracane przez modele.

Zbiory danych udostępniane przez instytucje

Drugim rozwiązaniem jest pozyskanie zbiorów danych. Możesz zwrócić się bezpośrednio do danej organizacji z prośbą o udostępnienie danych. Jeśli będziesz miał trochę szczęścia i zaproponujesz że podzielisz się wynikami swojej pracy – istnieje niezerowe prawdopodobieństwo, że takie dane otrzymasz. Jest to ciekawe rozwiązanie, jednak strasznie czasochłonne. Możesz spotkać się z brakiem zrozumienia zagadnienia i niechęcią współpracy ze strony instytucji. Jednak jeśli Ci się to już uda możesz uważać się szczęśliwcem. Będziesz posiadał realne dane, możliwe, że dość aktualne. Ty sam, będziesz mógł opracowywać modele analityczne, które mogą komuś pomóc – chorym, klientom banków, dużym organizacjom etc.

Repozytoria internetowe

Kolejnym źródłem danych są specjalne repozytoria danych. Istnieją w sieci strony internetowe, które gromadzą zbiory danych. Ich różnorodność jest ogromna. Niektóre strony gromadzą dane tematyczne, inne – dane z różnych obszarów życia, nauki, biznesu. Takie repozytoria posiadają dane historyczne, ale także aktualne – wszystko zależy co Cię interesuje i co chcesz badać. Pliki dostępne są najczęściej w formatach CSV oraz TXT, zdarzają się także inne formaty – nie ma to jednak szczególnego znaczenia, gdyż większość oprogramowania jest w stanie poradzić sobie z dowolnymi typami plików.

Na co zwrócić uwagę przy wyborze zbioru danych?

Wybierając dane należy zwrócić uwagę na takie aspekty jak:

  1. Ilość obiektów (wiersze) oraz ich atrybutów(kolumny). Oczywiście wszystko zależy od zagadnienia, jednak przed przystąpieniem do pracy z danymi należy zorientować się czy dane są użyteczne. O ile to przygotowania prostego wykresu trendu zarobków wystarczą dwie kolumny , np. doświadczenie i kwota, to np. chcąc ustalić złośliwość komórki rakowej należy spodziewać się, że tych atrybutów będzie więcej. Co ważne, zwiększając liczbę wierszy czy kolumn w zbiorze danych – rośnie złożoność obliczeniowa. W raz ze wzrostem złożoności obliczeń należy spodziewać się większego zapotrzebowania zasobów – procesor, pamięć RAM.
  2. Opis badanego zbioru – dobrze przygotowany zbiór danych powinien zawierać chociaż krótki opis danych. Dzięki niemu będziemy mogli zorientować się w analizowanym zagadnieniu.
  3. Opis atrybutów – należy zwrócić uwagę, czy pobierany zbiór danych posiada opisane atrybuty, a w szczególności czy wskazano kolumnę, na podstawie której będziemy klasyfikowali lub predykowali obiekty.
  4. Wskazanie brakujących atrybutów – należy zwrócić uwagę, czy zbiór posiada kompletne dane dla wszystkich obiektów. Jeśli niektóre atrybuty dla poszczególnych obiektów są nieznane, należy zwrócić uwagę w jaki sposób jest to zasygnalizowane. Typowymi wartościami są: NULL, N/A, nd, n/d, “unknown”. Jednak niektórzy autorzy mogą stosować własne oznaczenia, przykładem, który może w wielu sytuacjach wnieść sporo zamieszania jest 0 (słownie: zero). Cyfra zero jest raczej nośnikiem informacji, który mówi, że wartość danego atrybutu wynosi dokładnie zero, czyli zupełnie co innego, niż spodziewana informacja, którą reprezentuje, np NULL – “wartość nieznana”.  Możesz spotkać się, z sytuacją w której wartości będą opisane słownie “brak”, “none”, “brak informacji”, “nie wiem”, “—” itd. Nad tym wszystkim należy zapanować, stosując w swoim oprogramowaniu odpowiednią walidację.
  5. Rozmiar pliku repozytorium – zwróć uwagę na rozmiar pliku repozytorium. Choć zagadnienie mogłoby się wydawać trywialnym, w czasach kiedy pojemność dysku twardego 1TB nikogo nie dziwi, nie zawsze to jest takie oczywiste. Należy pamiętać, że najczęściej nasze dane, pisząc oprogramowanie,  będziemy ładowali do zmiennej, a zatem do bytyu istniejącego w pamięci RAM. O ile, przechowywanie pliku o wadze 2GB na dysku twardym nie jest problematyczne, możemy nie być w stanie pracować nad takim plikiem w ramach naszego programu. Wyobraź sobie sytuację, że twój komputer posiada 4GB RAM, 2GB będzie zarezerwowane do prawidłowej pracy systemu oraz środowiska programistycznego, czyli twój program będzie mógł wykorzystać pozostałe 2GB RAM. Jeśli utworzysz zmienną, do której załadujesz zbiór danych oraz kolejną zmienną która będzie jej kopią z przeliczonymi atrybutami  – braknie ci pamięci potrzebnej na skomplikowane obliczenia! Zachowaj zatem zdrowy rozsądek w zarządzaniu pamięcią. Rozważ konieczność przycięcia zbioru lub podzielenia go na kilka części.

Linki

Poniżej podaję kilka stron, z których możesz pobrać interesujące Cię dane:

  1. https://www.kaggle.com – różnorodne zbioru z wielu dziedzin.
  2. http://mlr.cs.umass.edu/ml/datasets.html – różnorodne zbiory danych, jedno z najstarszych repozytoriów. Szata graficzna nie jest szczególnie zachęcająca, ale przecież nie o to chodzi .
  3. https://www.quandl.com/search?query= – zawiera dane finansowe. Część zbiorów danych jest darmowa, a część płatna.
  4. https://data.worldbank.org – dane finansowe
  5. https://www.gapminder.org/data/ – darmowe zbiory danych z wielu różnych dziedzin

Dodaj komentarz