Ramka danych – kalendarz adwentowy #19

Chyba powtórzę po raz kolejny na tym blogu moją opinię, że często najwięcej czasu zajmuje nam sformułowanie problemu i jakiejś sensownej metryk do oceny jego rozwiązania. Bowiem gdy już mamy nasze dane i odpowiednio je przetworzyliśmy, to możemy szybko i śmiało eksperymentować. Jeżeli celujemy w uczenie nadzorowane, które nie wymaga przetwarzania obrazów, tekstu ani dźwięku, to już w ogóle możemy prawie zawsze wskazać praktyczny moment, od którego jest już z górki. Ten moment to sytuacja, w której z naszych surowych danych i pomysłu na ich przetworzenie powstała ramka danych.

Co to jest ramka danych?

Jeśli używałeś kiedyś arkusza kalkulacyjnego, to już masz pewną intuicję, czym może być ramka danych. Ramka danych (po angielsku data frame), podobnie jak arkusz kalkulacyjny składa się ze zorganizowanej struktury kolumn i wierszy. Przyjmujemy w uproszczeniu, że w uczeniu nadzorowanym każdy wiersz odpowiada jednej obserwacji jakiegoś zjawiska, a jedna kolumna opisuje cechy niezależne. Na przecięciu kolumny i wiersza mamy wartość danej cechy dla danej obserwacji. Brzmi skomplikowanie? Spójrz na poniższy rysunek:

CD PROJEKT
CD PROJEKT

Mamy tutaj wycinek kursu akcji spółki CD PROJEKT. Każdy wiersz jest ponumerowany. W naszym przypadku jest to data. Każda kolumna opisuje jakąś konkretna wartość uzyskaną konkretnego dnia. Mamy tutaj jedną zupełnie zbędną kolumnę o nazwie „Name” która posiada stałą wartość — należałoby więc ją usunąć. Dodatkowo możemy się domyśleć, że wartości z kolumn „Open”, „High”, „Low”, „Close”, „Volume” zostały zaobserwowane, a z kolumny „SMA” wyliczone. Napisałem, że można się domyśleć, bo to obrazek z mojego bloga, wiem więc w jaki sposób powstał. W normalnej sytuacji powinniśmy jednak dokumentować powstanie każdej kolumny i wszystkie transformacje, które na niej dokonujemy.

Dwa dodatkowe potencjalne elementy ramki danych

Jak zapewne zauważyłeś, kolumna „Date” jest podpisana w inny sposób. Jest tak dlatego, że jest to specjalna kolumna zwana indeksem. Taki indeks generalnie nie jest używany w procesie uczenia maszynowego, pozwala nam natomiast identyfikować obserwacje w naszej ramce danych. W powyższym przypadku jest to data, ale równie dobrze może to być np. liczba całkowita, albo UUID. Ważne jednak jest, żeby wartość ta była unikatowa. Wtedy możemy się zawsze dostać do jednej konkretnej obserwacji.

Drugi element ramki danych używany w uczeniu nadzorowanym, to nasza kolumna zależna. Jest to po prostu kolumna, którą chcemy przewidzieć. Nie musi ona w żaden specjalny sposób być oznaczana. Informacja ta musi się jednak znajdować gdzieś w dokumentacji. W powyższym przypadku nie ma jednoznacznie wyznaczonej takiej kolumny. Ale może to być np. kolumna „Close”, jeśli będziemy chcieli na podstawie pozostałych informacji przewidzieć wartość na zamknięcie dnia giełdowego.

Ramka danych — Podsumowanie

Jeżeli w procesie rozwiązywania Twojego problemu dysponujesz ramką danych, albo danymi, które da się łatwo przekształcić do takiej formy, to jesteś praktycznie w domu. Okazuje się bowiem, że i język R oraz Pandas wraz ze Scikit-Learn idealnie wspierają pracę z tym formatem danych. Dodatkowo jest on intuicyjny do szybkich wizualizacji oraz do naocznego podglądu. No a jeśli jeszcze pracujemy z ludźmi od arkuszy kalkulacyjnych, to łatwiej też nam jest się z nimi komunikować właśnie za pomocą takich sprytnych ramek danych.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *