Zbiory danych: cechy danych

Zbiór danych to zbiór przykładów.

Wiele zbiorów danych przechowuje dane w tablicach (siatkach), np. jako wartości rozdzielane przecinkami (CSV) lub bezpośrednio z arkuszy kalkulacyjnych bądź tabel baz danych. Tabele to intuicyjny format danych wejściowych dla modeli systemów uczących się. Każdy wiersz tabeli możesz traktować jako przykład, a każdą kolumnę jako potencjalną cechę lub etykietę. Zbiory danych mogą też pochodzić z innych formatów, np. plików dziennika i buforów protokołu.

Niezależnie od formatu model systemów uczących się jest tak dobry, jak dane, na których się uczy. W tej sekcji omawiamy najważniejsze cechy danych.

Typy danych

Zbiór danych może zawierać wiele typów danych, w tym:

  • dane liczbowe, które są omawiane w oddzielnej jednostce.
  • dane kategorialne, które są omawiane w oddzielnej jednostce.
  • języka ludzkiego, w tym pojedynczych słów i zdań, aż po całe dokumenty tekstowe;
  • multimedia (np. obrazy, filmy i pliki audio);
  • dane wyjściowe z innych systemów ML.
  • wektory dystrybucyjne, które są omawiane w późniejszym module

Ilość danych

Ogólnie rzecz biorąc, model powinien być trenowany na co najmniej o 1 rząd (lub 2 rząd) więcej przykładów niż parametrów z możliwością trenowania. Dobre modele są jednak zwykle trenowane na znacznie większej liczbie przykładów.

Modele wytrenowane na dużych zbiorach danych z niewielką liczbą cech zazwyczaj działają lepiej niż modele wytrenowane na małych zbiorach danych z dużą liczbą cech. Google od dawna odnosiło sukcesy w treningu prostych modeli na dużych zbiorach danych.

Różne zbiory danych dla różnych programów uczenia maszynowego mogą wymagać bardzo różnych ilości przykładów, aby można było zbudować przydatny model. W przypadku niektórych stosunkowo prostych problemów wystarczy kilkanaście przykładów. W przypadku innych problemów miliard przykładów może nie wystarczyć.

Dobre wyniki można uzyskać na podstawie małego zbioru danych, jeśli dostosowujesz istniejący model, który został już wytrenowany na podstawie dużej ilości danych ze schematu.

jakość i niezawodność danych;

Każdy woli wysoką jakość niż niską, ale jakość to tak niejasny termin, że można go zdefiniować na wiele różnych sposobów. Na tym kursie definicja jakości jest pragmatyczna:

Zbiór danych o wysokiej jakości pomaga modelowi osiągnąć cel. Zbiór danych o niskiej jakości uniemożliwia modelowi osiągnięcie celu.

Zbiór danych o wysokiej jakości jest zwykle też wiarygodny. Niezawodność to stopień, w jakim możesz ufać swoim danym. Model wytrenowany na wiarygodnym zbiorze danych ma większe szanse na generowanie przydatnych prognoz niż model wytrenowany na niewiarygodnych danych.

Aby mierzyć niezawodność, musisz określić:

  • Jak często występują błędy etykiet? Jeśli na przykład Twoje dane są oznaczane przez ludzi, jak często popełniali oni błędy?
  • Czy Twoje funkcje są głośne? Czyli czy wartości w cechach zawierają błędy? Bądź realistyczny – nie możesz usunąć z danych wszystkich zakłóceń. Pewna ilość szumu jest normalna. Na przykład pomiary GPS dowolnej lokalizacji zawsze różnią się nieco w poszczególnych tygodniach.
  • Czy dane są odpowiednio przefiltrowane pod kątem Twojego problemu? Czy Twój zbiór danych powinien zawierać zapytania od botów? Jeśli tworzysz system wykrywania spamu, odpowiedź prawdopodobnie brzmi „tak”. Jeśli jednak chcesz poprawić wyniki wyszukiwania dla ludzi, nie.

Oto najczęstsze przyczyny niewiarygodnych danych w zbiorach danych:

  • Pominięte wartości. Na przykład ktoś zapomniał wpisać wartości wieku domu.
  • Zduplikowane przykłady. Na przykład serwer mógł omyłkowo dwukrotnie przesłać te same wpisy w dzienniku.
  • Nieprawidłowe wartości funkcji. Na przykład ktoś mógł wpisać dodatkową cyfrę lub termometr mógł zostać pozostawiony na słońcu.
  • Nieprawidłowe etykiety. Na przykład ktoś omyłkowo oznaczy zdjęcie dębu jako klon.
  • Nieprawidłowe sekcje danych. Na przykład dana funkcja jest bardzo niezawodna, z wyjątkiem jednego dnia, kiedy sieć ciągle się zawieszała.

Zalecamy używanie automatyzacji do oznaczania niewiarygodnych danych. Na przykład testy jednostkowe, które definiują lub korzystają z zewnętrznego formalnego schematu danych, mogą oznaczać wartości wykraczające poza zdefiniowany zakres.

Pełne i niepełne przykłady

W idealnym świecie każdy przykład jest kompletny, czyli zawiera wartość dla każdej cechy.

Rysunek 1. Przykład zawierający wartości dla wszystkich 5 cech.
Rysunek 1. Pełny przykład

 

Niestety przykłady z rzeczywistego świata są często niekompletne, co oznacza, że brakuje co najmniej jednej wartości cechy.

Rysunek 2.  Przykład zawierający wartości dla 4 z 5 cech. Jedna funkcja jest oznaczona jako brakująca.
Rysunek 2. Niepełny przykład

 

Nie trenuj modelu na niepełnych przykładach. Zamiast tego poprawij lub usuń niepełne przykłady, wykonując jedną z tych czynności:

  • usuwać niepełne przykłady.
  • Impute brakujące wartości, czyli przekształcić niekompletny przykład w kompletny, podając uzasadnione przypuszczenia dotyczące brakujących wartości.
Rysunek 3.  Zbiór danych zawierający 3 przykłady, z których 2 są niekompletne. Ktoś usunął z tego zbioru danych te 2 niepełne przykłady.
Rysunek 3. usuwanie z zbioru danych niekompletnych przykładów;

 

Rysunek 4.  Zbiór danych zawierający 3 przykłady, z których 2 to niepełne przykłady z brakami w danych. Któraś z osób (człowiek lub oprogramowanie do imputacji) zastąpiła brakujące dane wartościami imputowanymi.
Rysunek 4. uzupełnianie brakujących wartości w niekompletnych przykładach.

 

Jeśli zbiór danych zawiera wystarczającą liczbę kompletnych przykładów, aby można było wytrenować przydatny model, rozważ usunięcie niekompletnych przykładów. Podobnie, jeśli tylko jedna cecha nie ma znacznej ilości danych i nie może wiele pomóc modelowi, rozważ usunięcie tej cechy z danych wejściowych modelu i sprawdzenie, jak bardzo spadnie jakość po jej usunięciu. Jeśli model działa równie dobrze lub prawie tak samo bez tych danych, to świetnie. Jeśli natomiast nie masz wystarczającej liczby kompletnych przykładów, aby wytrenować przydatny model, możesz rozważyć zastąpienie brakujących wartości.

Nie ma problemu z usuwaniem niepotrzebnych lub zbędnych przykładów, ale nie należy usuwać ważnych przykładów. Niestety trudno jest odróżnić przykłady bezużyteczne od przydatnych. Jeśli nie możesz się zdecydować, czy usunąć czy zastąpić dane, zastanów się nad utworzeniem 2 zbiorów danych: jednego utworzonego przez usunięcie niepełnych przykładów, a drugiego przez zastąpienie. Następnie określ, który zbiór danych trenuje lepszy model.


Jednym z popularnych algorytmów jest użycie średniej lub mediany jako wartości zastępczej. W związku z tym, gdy reprezentujesz cechę numeryczną za pomocą wyników z tabeli Z, wartość zastępcza jest zwykle 0 (ponieważ 0 to zwykle średnia wartość z tabeli Z).

Ćwiczenie: sprawdź swoją wiedzę

Oto 2 kolumny zbioru danych posortowane według Timestamp.

Sygnatura czasowa Temperatura
8 czerwca 2023 r., 09:00 12
8 czerwca 2023 r., godz. 10:00 18
8 czerwca 2023 r., godz. 11:00 brak
8 czerwca 2023 r., godz. 12:00 24
8 czerwca 2023 r., 13:00 38

Która z tych wartości byłaby odpowiednia do zastąpienia brakującej wartości Temperatura?

23
Może. 23 to średnia z sąsiednich wartości (12, 18, 24 i 38). Nie widzimy jednak reszty zbioru danych, więc możliwe, że 23 będzie wartością odstającą w przypadku godziny 11:00 w inne dni.
31
Nie. Z ograniczonego zakresu danych, który udało nam się zobaczyć, wynika, że 31 jest znacznie za wysoka wartość dla Temperatura o godzinie 11:00. Nie możemy jednak tego stwierdzić, jeśli nie oprzeszliśmy przypisania na większej liczbie przykładów.
51
Jest to mało prawdopodobne. 51 jest znacznie wyższa niż dowolna z wyświetlanych wartości (a zatem znacznie wyższa niż średnia).