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.
Niestety przykłady z rzeczywistego świata są często niekompletne, co oznacza, że brakuje co najmniej jednej wartości cechy.
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.
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?