Wnioskowanie o typach kolumn w danych

Zanim zrobisz cokolwiek innego z nowym zestawem danych, powinieneś spróbować dowiedzieć się, co reprezentuje każda kolumna w bieżącej tabeli. Niektóre osoby lubią nazywać tę informację słownikiem danych, co oznacza, że ​​możesz otrzymać krótki słowny opis każdej kolumny w zestawie danych. Wyobraź sobie na przykład, że otrzymałeś nieznakowany zestaw danych w Tabeli 

Bez jakichkolwiek danych identyfikujących naprawdę trudno jest ustalić, co zrobić z tymi liczbami. Rzeczywiście, jako punkt wyjścia powinieneś dowiedzieć się, jaki jest typ każdej kolumny: czy pierwsza kolumna jest naprawdę ciągiem, nawet jeśli wygląda na to, że zawiera tylko 0 i 1? W przykładzie UFO w pierwszym rozdziale natychmiast oznaczyliśmy wszystkie kolumny zestawu danych, który otrzymaliśmy. Gdy otrzymamy zestaw danych bez etykiet, możemy użyć niektórych funkcji określania typu wbudowanych w R. Trzy najważniejsze z tych funkcji pokazano w tabeli 

Posiadanie podstawowych informacji o typach dla każdej kolumny może być bardzo ważne, gdy idziemy do przodu, ponieważ pojedyncza funkcja R często robi różne rzeczy w zależności od rodzaju jej danych wejściowych. Te zera i jedynki przechowywane jako znaki w naszym bieżącym zbiorze danych muszą zostać przetłumaczone na liczby, zanim będziemy mogli korzystać z niektórych wbudowanych funkcji w R, ale w rzeczywistości muszą zostać przekonwertowane na czynniki, jeśli będziemy używać innych wbudowane funkcje. Częściowo ta tendencja do przemieszczania się między typami pochodzi z ogólnej tradycji uczenia maszynowego do radzenia sobie z kategorycznymi różnicami. Wiele zmiennych, które naprawdę działają jak etykiety lub kategorie, jest kodowanych matematycznie jako 0 i 1. Możesz myśleć o tych liczbach, jakby były to wartości logiczne: 0 może wskazywać, że wiadomość e-mail nie jest spamem, 1 może oznaczać, że wiadomość e-mail jest spamem. To konkretne użycie zer i jedynek do opisania właściwości jakościowych obiektu jest często nazywane kodowaniem zastępczym w uczeniu maszynowym i statystyce. Atraktyczny system kodowania należy odróżnić od czynników R, które wyrażają właściwości jakościowe za pomocą wyraźnych etykiet. Czynniki w R można traktować jak etykiety, ale w rzeczywistości etykiety są kodowane numerycznie w tle: gdy programista uzyskuje dostęp do etykiety, wartości liczbowe są tłumaczone na etykiety znaków określone w indeksowanej tablicy ciągów znaków. Ponieważ R używa kodowania numerycznego w tle, naiwne próby konwersji etykiet czynnika R na liczby przyniosą dziwne wyniki, ponieważ otrzymasz rzeczywiste liczby schematów kodowania zamiast liczb powiązanych z etykietami tego czynnika. Tabele poniżen pokazują te same dane, ale dane zostały opisane za pomocą trzech różnych schematów kodowania.

W pierwszej tabeli  IsSpam należy traktować bezpośrednio jako czynnik w R, który jest jednym ze sposobów wyrażenia różnic jakościowych. W praktyce może być ładowany jako czynnik lub ciąg, w zależności od używanej funkcji przesiewania danych . Z każdym nowym zestawem danych musisz dowiedzieć się, czy wartości są ładowane poprawnie jako czynniki, czy jako ciągi znaków po tym, jak zdecydujesz, jak chcesz traktować każdą kolumnę R. Jeśli nie masz pewności, często lepiej zacząć od ładowania rzeczy jako ciągów. Zawsze możesz później przekonwertować kolumnę łańcuchową na kolumnę czynnikową. W tabeli drugiej IsSpam jest nadal pojęciem jakościowym, ale jest kodowane przy użyciu wartości liczbowych reprezentujących logiczne rozróżnienie: 1 oznacza, że ​​IsSpam jest prawdziwy, a 0 oznacza, że ​​IsSpam jest fałszywy. Ten styl kodowania numerycznego jest faktycznie wymagany przez niektóre algorytmy uczenia maszynowego. Na przykład glm, domyślna funkcja w R do korzystania z regresji logistycznej i algorytm klasyfikacji, który opiszemy w następnym rozdziale, zakłada, że ​​twoje zmienne są atrapami. Wreszcie, w tabeli trzeciej pokazujemy inny rodzaj kodowania numerycznego dla tej samej koncepcji jakościowej. W tym systemie kodowania ludzie używają +1 i –1 zamiast 1 i 0. Ten styl kodowania różnic jakościowych jest bardzo popularny wśród fizyków, więc w końcu zobaczysz go, gdy przeczytasz więcej o uczeniu maszynowym. Jednak my całkowicie unikamy stosowania tego stylu notacji, ponieważ uważamy, że poruszanie się jest niepotrzebnym źródłem zamieszania

[BIG DATA] GLOSARIUSZ (I) : Terminy

Dokument zorientowany

W tradycyjnej relacyjnej bazie danych użytkownik rozpoczyna od określenia serii typów kolumn i nazw dla tabeli. Informacje są następnie dodawane jako wiersze wartości, a każda z tych nazwanych kolumn jest komórką każdego wiersza. Nie można podać dodatkowych wartości, które nie zostały określone podczas tworzenia tabeli, a każda wartość musi być obecna, nawet jeśli jest to wartość NULL. Przechowywanie dokumentów zamiast tego umożliwia wpisanie każdego rekordu jako serii nazw wraz z powiązanymi wartościami, które można zobrazować jako obiekt JavaScript, słownik Python lub mieszanie Ruby. Nie określasz z wyprzedzeniem, jakie nazwy będą występować w każdej tabeli przy użyciu schematu. Teoretycznie każdy rekord może zawierać zupełnie inny zestaw nazwanych wartości, chociaż w praktyce warstwa aplikacji często opiera się na nieformalnym schemacie, a kod klienta oczekuje obecności określonych nazwanych wartości. Główną zaletą tego zorientowanego na dokumenty podejścia jest jego elastyczność. Możesz dodawać lub usuwać równoważniki kolumn bez żadnych kar, o ile warstwa aplikacji nie opiera się na usuniętych wartościach. Dobrą analogią jest różnica między językami, w których deklarowane są typy zmiennych z wyprzedzeniem, a tymi, w których typ jest wywnioskowany przez kompilator lub interpreter. Tracisz informacje, które można wykorzystać do automatycznego sprawdzania poprawności i optymalizacji pod względem wydajności, ale prototypowanie i eksperymentowanie staje się o wiele łatwiejsze.

Przechowywanie kluczy / wartości

System memcached wprowadził wielu programistów internetowych do mocy przetwarzania magazynu danych, takiego jak gigantyczna tablica asocjacyjna, odczytywania i zapisywania wartości opartych wyłącznie na unikalnym kluczu. Prowadzi to do bardzo prostego interfejsu, z trzema prymitywnymi operacjami, aby uzyskać dane powiązane z określonym kluczem, do przechowywania niektórych danych na kluczu oraz do usunięcia klucza i jego danych. W przeciwieństwie do relacyjnych baz danych, z czystym magazynem kluczy / wartości, nie można uruchamiać zapytań, choć niektóre mogą oferować rozszerzenia, takie jak możliwość znalezienia wszystkich kluczy pasujących do wyrażenia z dziką kartą. Oznacza to, że kod aplikacji musi obsługiwać wszelkie skomplikowane operacje poza prymitywnymi wywołaniami, które może wykonać w sklepie. Dlaczego każdy programista chce wykonać tę dodatkową pracę? W przypadku bardziej złożonych baz danych często płacisz karę za złożoność lub wydajność w przypadku funkcji, na które możesz nie zwrócić uwagi, takich jak pełna zgodność z ACID. Dzięki magazynom kluczy / wartości otrzymujesz bardzo podstawowe elementy składowe, które mają bardzo przewidywalne właściwości wydajności i możesz tworzyć bardziej złożone operacje przy użyciu tego samego języka, co reszta aplikacji. Wiele wymienionych tu baz danych stara się zachować prostotę interfejsu czystych kluczy / wartości, ale z dodatkowymi funkcjami dodanymi w celu spełnienia typowych wymagań. Wydaje się prawdopodobne, że istnieje słodka cecha funkcjonalności, która zachowuje niektóre zalety minimalnych sklepów kluczowych / wartościowych, nie wymagając od twórcy aplikacji tyle samo powielonego wysiłku.

Skalowanie poziome lub pionowe

Tradycyjne architektury baz danych są zaprojektowane tak, aby działały dobrze na jednym komputerze, a najprostszym sposobem obsługi większych operacji jest uaktualnienie maszyny przy użyciu szybszego procesora lub większej ilości pamięci. Takie podejście do zwiększania prędkości jest znane jako skalowanie pionowe. Nowsze systemy przetwarzania danych, takie jak Hadoop i Cassandra, są zaprojektowane do pracy na klastrach serwerów o stosunkowo niskiej specyfikacji, a więc najprostszym sposobem na obsłużenie większej ilości danych jest dodanie większej liczby tych maszyn do klastra. Takie horyzontalne podejście do skalowania wydaje się być tańsze w miarę wzrostu liczby operacji i rozmiaru danych, a bardzo duże potoki przetwarzania danych są zbudowane na modelu poziomym. Koszt tego podejścia jest jednak kosztowny. Pisanie kodu obsługi rozproszonych danych jest trudne i wymaga kompromisów między szybkością, skalowalnością, odpornością na uszkodzenia i tradycyjnymi celami bazy danych, takimi jak atomowość i spójność.

MapReduce

MapReduce to wzorzec projektowy algorytmu, który powstał w funkcjonalnym świecie programowania. Składa się z trzech kroków. Najpierw piszesz funkcję mapowania lub skrypt, który przechodzi przez twoje dane wejściowe i wypisuje serię kluczy i wartości do użycia przy obliczaniu wyników. Klucze służą do grupowania razem bitów danych, które będą potrzebne do obliczenia pojedynczego wyniku wyjściowego. Nieuporządkowana lista kluczy i wartości jest następnie poddawana krokowi sortowania, który zapewnia, że ​​wszystkie fragmenty mające ten sam klucz znajdują się obok siebie w pliku. Etap reduktora przechodzi następnie przez sortowane wyjście i odbiera wszystkie wartości, które mają ten sam klucz w sąsiednim bloku. To może brzmieć jak bardzo okrężny sposób budowania twoich algorytmów, ale jego główną zaletą jest to, że usuwa nieplanowane losowe dostępy, z całym rozproszeniem i zbieraniem przetwarzanym w fazie sortowania. Nawet na pojedynczych urządzeniach zwiększa to wydajność, dzięki zwiększonemu dostępowi do pamięci, ale także pozwala na łatwe dzielenie procesu na dużą liczbę maszyn, radząc sobie z danymi wejściowymi w wielu niezależnych porcjach i dzieląc dane na podstawie klucz. Hadoop jest najbardziej znanym publicznym systemem do uruchamiania algorytmów MapReduce, ale wiele nowoczesnych baz danych, takich jak MongoDB, również obsługuje je jako opcję. Warto nawet w dość tradycyjnym systemie, ponieważ jeśli umiesz napisać zapytanie w formularzu MapReduce, będziesz mógł go wydajnie uruchomić na tylu maszynach, jakie masz.

Sharding

Każda baza danych rozproszona na wielu komputerach wymaga pewnego schematu, aby zdecydować, na których maszynach należy przechowywać dane dane. System odłamywania decyduje o tym dla każdego wiersza w tabeli, używając jego klucza. W najprostszym przypadku programista aplikacji określi jawną regułę do wykorzystania w przypadku shardingu. Na przykład, jeśli dysponujesz 10 klastrem maszynowym i kluczem numerycznym, możesz użyć ostatniej cyfry dziesiętnej klucza, aby zdecydować, na którym komputerze chcesz przechowywać dane. Ponieważ zarówno kod przechowywania i pobierania wie o tej zasadzie, gdy trzeba uzyskać wiersz, można przejść bezpośrednio do maszyny, która go posiada. Największym problemem z shardingiem jest równomierne rozłożenie danych między maszynami i radzenie sobie ze zmianami rozmiaru klastra. Na tym samym przykładzie wyobraź sobie, że klawisze numeryczne często kończą się na zero; doprowadzi to do wyjątkowo niezrównoważonej dystrybucji, w której pojedyncza maszyna jest nadużywana i staje się wąskim gardłem. Jeśli rozmiar klastra zostanie rozszerzony z dziesięciu do piętnastu maszyn, możemy przełączyć się na schemat piętnastki modulo do przypisywania danych, ale będzie to wymagało hurtowego tasowania wszystkich danych w klastrze. Aby złagodzić ból tych problemów, do podziału danych stosuje się bardziej złożone schematy. Niektóre z nich polegają na centralnym katalogu, w którym znajdują się lokalizacje poszczególnych kluczy. Ten poziom pośredni umożliwia przenoszenie danych pomiędzy komputerami, gdy dany fragment staje się zbyt duży (aby przywrócić równowagę dystrybucji), kosztem konieczności dodatkowego wyszukiwania w katalogu dla każdej operacji. Informacje zawarte w katalogu są zwykle dość małe i dość statyczne, więc jest to dobry kandydat do lokalnego buforowania, o ile zauważane są rzadkie zmiany. Innym popularnym podejściem jest użycie spójnego hashu do shardowania. Ta technika używa małej tabeli dzielącej możliwy zakres wartości skrótu na zakresy, z których jeden jest przypisany do każdego fragmentu. Dane wyszukiwania wymagane przez klientów są wyjątkowo lekkie, z zaledwie kilkoma wartościami liczbowymi na węzeł, dzięki czemu można je udostępniać i buforować w sposób wydajny, ale ma on wystarczającą elastyczność, aby umożliwić szybkie ponowne równoważenie dystrybucji wartości po dodaniu i usunięciu węzłów, lub nawet gdy jeden węzeł jest przeciążony, w przeciwieństwie do ustalonych funkcji modulo.

Co to są dane?

Zanim zaczniemy opisywać niektóre z podstawowych narzędzi, których możesz użyć do eksploracji swoich danych, powinniśmy uzgodnić, co mamy na myśli, gdy używamy słowa „dane”. Łatwo byłoby napisać całą książkę o możliwych definicjach słowo „dane”, ponieważ istnieje tak wiele ważnych pytań, które możesz zadać na temat tak zwanych  zestawu danych. Na przykład często chcesz wiedzieć, w jaki sposób wygenerowano dane i czy można oczekiwać, że dane będą reprezentatywne dla populacji, którą naprawdę chcesz badać. Chociaż możesz się wiele dowiedzieć o strukturze społecznej Indian amazońskich, studiując zapisy ich małżeństw, nie jest jasne, czy nauczyłbyś się czegoś, co bardzo dobrze dotyczyło innych kultur w tym procesie. Interpretacja danych wymaga znajomości źródła danych. Często jedynym sposobem na oddzielenie związku przyczynowego od korelacji jest sprawdzenie, czy dane, z którymi pracujesz, zostały wygenerowane eksperymentalnie, czy tylko z obserwacji, ponieważ dane eksperymentalne nie były dostępne. Chociaż tego rodzaju obawy są interesującymi zagadnieniami, o których mamy nadzieję, że kiedyś się dowiesz, w tej książce całkowicie unikniemy problemów związanych z gromadzeniem danych. Dla naszych celów subtelniejsze filozoficzne kwestie analizy danych będą traktowane tak, jakby można je było doskonale oddzielić od rodzajów problemów z prognozowaniem, dla których będziemy wykorzystywać techniki uczenia maszynowego. W trosce o pragmatyzm zastosujemy zatem następującą definicję w dalszej części : „zestaw danych” jest niczym więcej niż dużą tabelą liczb i ciągów, w której każdy wiersz opisuje pojedynczą obserwację rzeczywistego świat i każda kolumna opisuje pojedynczy atrybut, który został zmierzony dla każdej obserwacji reprezentowanej przez rzędy. Jeśli w ogóle jesteś zaznajomiony z bazami danych, ta definicja danych powinna dość dokładnie pasować do twoich intuicji dotyczących struktury tabel baz danych. Jeśli martwisz się, że Twój zestaw danych nie jest naprawdę pojedyncza tabela, udawajmy, że użyłeś scalenia R, rodziny operacji SQL JOIN SQL lub innych narzędzi, które opisaliśmy wcześniej, aby utworzyć zestaw danych, który wygląda jak pojedyncza tabela.

Nazwiemy to modelem „danych jako prostokątów”. Ten punkt widzenia jest wyraźnie znaczącym uproszczeniem, ale pozwoli nam motywować wiele wielkich pomysłów analizy danych, co, mamy nadzieję, sprawi, że to, co w innym razie jest bardzo abstrakcyjne, stanie się bardziej namacalne. A model „dane jako prostokąty” ma inny cel: pozwala nam swobodnie wykorzystywać pomysły z projektu bazy danych, a także pomysły z czystej matematyki. Jeśli martwisz się, że niewiele wiesz o matrycach, nie martw się; w tej książce zawsze będziesz mógł myśleć o matrycach jako o niczym więcej niż o dwuwymiarowych tablicach, czyli o dużym stole. Dopóki zakładamy, że pracujemy z tablicami prostokątnymi, możemy korzystać z wielu zaawansowanych technik matematycznych bez konieczności bardzo uważnego zastanawiania się nad faktycznie wykonywanymi operacjami matematycznymi. Na przykład krótko opisujemy mnożenie macierzy później, mimo że prawie każdą technikę, którą będziemy wykorzystywać, można opisać w kategoriach mnożenia macierzy, niezależnie od tego, czy jest to standardowy model regresji liniowej, czy nowoczesne techniki faktoryzacji macierzy, które stały się ostatnio tak popularne dzięki do nagrody Netflix. Ponieważ dane składają się z prostokątów, możemy właściwie rysować rodzaje operacji, które wykonamy dość łatwo. Numeryczne podsumowanie danych obejmuje zredukowanie wszystkich wierszy ze tabeli do kilku liczb – często tylko jednej liczby dla każdej kolumny w zestawie danych. W przeciwieństwie do podsumowania liczbowego wizualizacja zawartości pojedynczej kolumny zwykle polega na zmniejszeniu wszystkich wierszy z jednej kolumny danych do jednego obrazu.  Na przykład obliczenie korelacji między dwiema kolumnami przekształca wszystkie wiersze z dwóch kolumn tabeli w jedną liczbę, która podsumowuje siłę relacji między tymi dwiema kolumnami.  Są też inne narzędzia, które idą dalej. Oprócz powiązania ze sobą par kolumn, możesz chcieć zmniejszyć liczbę kolumn w zbiorze danych, jeśli uważasz, że istnieje dużo nadmiarowości. Zastąpienie wielu kolumn w zbiorze danych kilkoma kolumnami lub nawet jedną nazywa się redukcją wymiarów. Statystyki podsumowujące i redukcja wymiarów poruszają się w przeciwnych kierunkach: statystyki podsumowujące mówią coś o tym, jak zachowują się wszystkie wiersze w zbiorze danych, gdy poruszasz się wzdłuż pojedynczej kolumny, podczas gdy narzędzia do zmniejszania wymiarów pozwalają zastępujesz wszystkie kolumny w danych małą liczbą kolumn, które mają unikalną wartość dla każdego wiersza. Podczas eksploracji danych oba te podejścia mogą być pomocne, ponieważ pozwalają zamienić góry danych, które czasem dostajesz w coś, co jest natychmiast zrozumiałe.

Czym jest Big Data?

Big Data zasadniczo odnosi się do faktu, że możemy teraz zbierać i analizować dane w sposób, który był niemożliwy nawet kilka lat temu. Istnieją dwie rzeczy, które napędzają ruch Big Data: fakt, że mamy więcej danych na temat czegokolwiek i naszą ulepszoną zdolność do przechowywania i analizowania dowolnych danych. 

Więcej danych o wszystkim

Wszystko, co robimy w naszym coraz bardziej zdigitalizowanym świecie, pozostawia ślad danych. Oznacza to, że ilość dostępnych danych dosłownie eksploduje. W ciągu ostatnich dwóch lat stworzyliśmy więcej danych niż w całej dotychczasowej historii ludzkości. Do 2020 roku przewiduje się, że około 1,7 megabajta nowych danych będzie tworzonych co sekundę, dla każdego człowieka na świecie. Te dane pochodzą nie tylko z dziesiątków milionów wiadomości i e-maili, które wysyłamy sobie co sekundę za pośrednictwem poczty e-mail, WhatsApp, Facebooka, Twittera itp., Ale także z biliona zdjęć cyfrowych, które robimy każdego roku i rosnącej ilości wideo generowane przez nas dane (co minutę przesyłamy obecnie około 300 godzin nowego filmu do YouTube i udostępniamy prawie trzy miliony filmów na Facebooku). Ponadto dysponujemy danymi ze wszystkich czujników, którymi jesteśmy obecnie otoczeni. Najnowsze smartfony mają czujniki informujące o tym, gdzie jesteśmy (GPS), o tym, jak szybko się poruszamy (akcelerometr), jaka jest pogoda wokół nas (barometr), jakiej siły używamy do naciskania ekranu dotykowego (czujnik dotyku) i wiele więcej. Do 2020 roku będziemy mieć ponad sześć miliardów smartfonów na świecie – wszystkie pełne czujników zbierających dane. Ale nie tylko nasze telefony stają się inteligentne, teraz mamy inteligentne telewizory, inteligentne zegarki, inteligentne liczniki, inteligentne czajniki, lodówki, rakiety tenisowe, a nawet inteligentne żarówki. W rzeczywistości do 2020 roku będziemy mieć ponad 50 miliardów urządzeń podłączonych do Internetu. Wszystko to oznacza, że ilość danych i różnorodność danych (od danych z czujników, do tekstu i wideo) na świecie wzrośnie do niewyobrażalnych poziomów.

Możliwość analizowania wszystkiego

Wszystkie te duże dane są warte niewiele, chyba że jesteśmy w stanie przekształcić je w spostrzeżenia. W tym celu musimy przechwytywać i analizować dane. W przeszłości istniały ograniczenia dotyczące ilości danych, które można przechowywać w bazach danych – im więcej danych tam było, tym wolniejszy stał się system. Można to teraz pokonać za pomocą nowych technik, które pozwalają nam przechowywać i analizować dane w różnych bazach danych, w rozproszonych lokalizacjach, połączonych  za  pośrednictwem  sieci.  Tak  zwane  przetwarzanie  rozproszone  oznacza,  że  można przechowywać ogromne ilości danych (w małych bitach w wielu bazach danych) i analizować je, dzieląc analizę między różnymi serwerami (każdy wykonuje niewielką część analizy). Firma Google odegrała zasadniczą rolę w rozwoju technologii przetwarzania rozproszonego, umożliwiając im przeszukiwanie Internetu. Obecnie około 1000 komputerów jest zaangażowanych w odpowiadanie na jedno zapytanie, które trwa nie dłużej niż 0,2 sekundy. Obecnie przeszukujemy 3,5 miliarda razy dziennie tylko w Google. Rozproszone narzędzia obliczeniowe, takie jak Hadoop, zarządzają przechowywaniem i analizą Big Data w połączonych bazach danych i serwerach. Co więcej, technologia przechowywania danych i analizy Big Data jest teraz dostępna do wynajęcia w modelu SAAS (Software-as-a-service), dzięki czemu analityka Big Data jest dostępna dla wszystkich, nawet tych o niskim budżecie i ograniczonej obsłudze IT. Wreszcie, widzimy niesamowite postępy w sposobie, w jaki możemy analizować dane. Algorytmy mogą teraz przeglądać zdjęcia, identyfikować, kto jest na nich, a następnie przeszukiwać Internet w poszukiwaniu innych zdjęć tej osoby. Algorytmy mogą teraz rozumieć wypowiadane słowa, tłumaczyć je na tekst pisany i analizować ten tekst pod kątem treści, znaczenia i sentymentu (np. Czy mówimy ładne rzeczy czy nie, to takie miłe rzeczy?). Coraz więcej zaawansowanych algorytmów pojawia się każdego dnia, aby pomóc nam zrozumieć nasz świat i przewidzieć przyszłość. Łączcie to wszystko z uczeniem maszynowym i sztuczną inteligencją (umiejętnością algorytmów uczenia się i podejmowania samodzielnych decyzji) i możecie mieć nadzieję, że rozwój i możliwości tutaj są bardzo ekscytujące i ewoluują bardzo szybko.

Zaczynamy… Big Data “u bram” ….

Jesteśmy świadkami ruchu, który całkowicie zmieni jakąkolwiek część biznesu i społeczeństwa. Nazwę , jaką nadano temu ruchowi to Big Data i zmieni wszystko, od sposobu działania banków i sklepów po sposób, w jaki traktujemy raka i chronimy nasz świat przed terroryzmem. Bez względu na to, w jakiej jesteś pracy i bez względu na branżę, w której pracujesz, Big Data ją przekształci. Niektórzy uważają, że Big Data to po prostu wielka moda, która zniknie, jeśli zignorują ją wystarczająco długo. To nie wystarczy! Szum medialny wokół Big Data i nazwa może zniknąć (co nie byłoby wielką stratą), ale zjawisko pozostanie i tylko nabierze rozpędu. To, co dziś nazywamy Big Data, stanie się po prostu zwykłym nowum za kilka lat, kiedy wszystkie firmy i organizacje rządowe wykorzystują duże ilości danych, aby poprawić to, co robią i jak to robią. Dobrym pomysłem byłoby podzielić się tym, w jaki sposób Big Data jest używany dzisiaj, w wielu różnych branżach, wśród dużych i małych firm, aby zapewnić prawdziwą wartość. Ale przede wszystkim najpierw spójrzmy, co tak naprawdę oznacza Big Data….

Eksploracja danych

Eksploracja a potwierdzenie

Podczas pracy z danymi warto wyobrazić sobie podzielenie analizy na dwie całkowicie oddzielne części: eksplorację i potwierdzenie. Różnica między analizą danych eksploracyjnych a analizą danych potwierdzających sprowadza się do słynnego Johna Tukeya , który podkreślił znaczenie projektowania prostych narzędzi do praktycznej analizie danych. W opinii Tukeya kroki eksploracyjne w analizie danych obejmują użycie tabel podsumowań i podstawowych wizualizacji w celu wyszukiwania ukrytych wzorców w danych. W tym rozdziale opisujemy niektóre podstawowe narzędzia, które R zapewnia do numerycznego podsumowania danych, a następnie uczymy, jak rozumieć wyniki.

Następnie pokażemy niektóre z narzędzi istniejących w R do wizualizacji danych, a jednocześnie zapewniamy wirową wycieczkę po podstawowych wzorach wizualnych, na które powinieneś zwrócić uwagę w każdej sytuacji. Ale zanim zaczniesz przeszukiwać swój pierwszy zestaw danych, powinniśmy Cię ostrzec o prawdziwym niebezpieczeństwie, które występuje podczas eksploracji danych: prawdopodobnie znajdziesz wzorce, których tak naprawdę nie ma. Ludzki umysł został zaprojektowany, aby znaleźć wzorce na świecie i zrobi to nawet wtedy, gdy wzorce te będą tylko dziwactwem losowym. Nie potrzebujesz dyplomu ze statystyki, aby wiedzieć, że my, ludzie, z łatwością odnajdujemy kształty w chmurach po spojrzeniu na nie tylko przez kilka sekund. I wiele osób przekonało się, że odkryło ukryte wiadomości w zwykłych tekstach, takich jak sztuki Szekspira.

Ponieważ ludzie są podatni na odkrywanie wzorców, które nie są w stanie przeprowadzić dokładnej analizy, etap eksploracyjny w analizie danych nie może istnieć w izolacji; musi mu towarzyszyć krok potwierdzający. Pomyśl o potwierdzającej analizie danych jako o rutynowej higienie psychicznej, której używamy, aby pozbyć się naszych przekonań na temat świata po naszym przemykał przez chaotyczny – a czasem bezprawny – świat wizualizacji danych eksploracyjnych.

Analiza danych potwierdzających zwykle wykorzystuje dwa narzędzia:

  • Testowanie formalnego modelu wzorca, który Twoim zdaniem znalazł się w nowym zbiorze danych, którego nie użyłeś do znalezienia wzorca.
  • Wykorzystanie teorii prawdopodobieństwa do przetestowania, czy wzorce znalezione w oryginalnym zbiorze danych mogły zostać rozsądnie wygenerowane przypadkowo.

Ponieważ potwierdzająca analiza danych wymaga więcej matematyki niż analizy danych eksploracyjnych, ten rozdział dotyczy wyłącznie narzędzi eksploracyjnych. W praktyce oznacza to, że skupimy się na numerycznych podsumowaniach danych i niektórych standardowych narzędziach do wizualizacji. Opisane przez nas podsumowania numeryczne to podstawowe elementy statystyki wprowadzającej: średnie i tryby, percentyle i mediany oraz odchylenia standardowe i wariancje. Narzędzia wizualizacji, których używamy, są również jednymi z najbardziej podstawowych narzędzi, których można się nauczyć na kursie „Wprowadzenie do statystyki”: histogramy, szacunki gęstości jądra i wykresy rozrzutu. Uważamy, że proste wizualizacje są często niedoceniane i mamy nadzieję, że możemy Cię przekonać, że często możesz dowiedzieć się dużo o swoich danych, używając tylko tych podstawowych narzędzi.

Wykop sobie dane… a co! Mamy XXI wiek!!!

Data Mining

analiza: Przemyślane badanie systemów w świecie rzeczywistym.

analityka: analiza obejmująca matematykę. (Ten termin jest używany bardzo różnie przez różne osoby i może odnosić się do wszystkiego, od prostych podsumowań danych historycznych po bardzo złożone modele predykcyjne. Zawsze zadawaj pytania!)

asocjacji reguły: narzędzia do identyfikacji kombinacji często spotykanych elementów. Najczęstszym zastosowaniem reguł asocjacji jest analiza koszyka rynkowego.

assumption  (założenie): coś, co rzekomo jest prawdą. Założenia są podstawą wszystkich analiz statystycznych. (Ważne jest, aby analityk wybrał metody oparte tylko na założeniach, które są uzasadnione dla aplikacji).

average (średnia): każda miara opisująca środek (bardziej formalnie „tendencję centralną” lub „lokalizację”) rozkładu. W analityce termin „średnia” zwykle odnosi się do średniej, ale może odnosić się do mediany lub trybu.

bayesowska sieć: rodzaj sieci neuronowej. Sieć bayesowska opiera się na podstawach teorii prawdopodobieństwa. (Zobacz także sieć neuronowa.)

binarny: posiadający dokładnie dwa alternatywne stany.

binowanie: Organizowanie danych w grupy. Można to zrobić w celu ułatwienia analizy lub w celu ochrony prywatności.

causation (związek przyczynowy): akt wywoływania efektu lub spowodowania czegoś. Wyrażenie „korelacja nie oznacza związku przyczynowego” oznacza, że fakt, że obserwowane są dwie rzeczy, które zachodzą razem, nie wystarczy, aby udowodnić, że jedna z nich była przyczyną drugiej.

Chi-kwadrat: Statystyka testowa, prawdopodobnie najbardziej rozpowszechniona ze wszystkich metod testowania hipotez statystycznych. Zwykle stosowany w połączeniu z tabelami tabel krzyżowych.

Chi-squared Automatic Interaction Detector  (Automatyczny detektor interakcji chi-kwadrat) (CHAID): rodzaj drzewa decyzyjnego. CHAID opiera się na statystyce chi-kwadrat i testach niezależności między zmiennymi kategorialnymi.

classification (klasyfikacja): techniki organizowania danych w grupy związane z konkretnym wynikiem, takie jak prawdopodobieństwo zakupu produktu lub zdobycia dyplomu ukończenia szkoły wyższej.

Classification and Regression Tree (Drzewo klasyfikacji i regresji) (C&RT): rodzaj drzewa decyzyjnego. C&RT opiera się na metodach regresji liniowej.

cluster analysis (clustering) (analiza skupień (klastrowanie)): techniki organizowania danych w grupy podobnych przypadków.

coding (kodowanie): w analizie tekstu kategoryzacja tekstu na podstawie jego znaczenia. Te kategoryzacje mogą być używane w taki sam sposób, jak każda inna zmienna kategorialna. Historycznie wykonywane ręcznie, automatyczne procesy kodowania stają się teraz dostępne.

correlation (korelacja): asocjacja wartości dwóch lub więcej zmiennych.

Cross-Industry Standard Process for Data Mining (CRISP-DM)  (Międzybranżowy Standardowy Proces Eksploracji Danych): Dokładnie to, co mówi, lub jak to ujęli ludzie z projektu CRISP-DM, „neutralny dla branży i narzędzi model przetwarzania danych”.

crosstabulation (tabele krzyżowe): Podsumowanie interakcji zmiennych kategorialnych w tabeli.

dashboard  (pulpit): predefiniowany raport do przeglądania online, zwykle składający się z prostych tabel i wykresów, z pewnymi opcjami interakcji użytkownika. Pulpity nawigacyjne są zwykle zaprojektowane do użytku przez menedżerów biznesowych w celu wspierania procesów decyzyjnych.

data mining (eksploracja danych): Ogólny termin na techniki analityczne, które ułatwiają szybkie wykrywanie wzorców i budowanie modeli, szczególnie przy dużych zestawach danych.

dataset (zbiór danych): zbiór powiązanych pomiarów. W kontekście eksploracji danych zwykle odnosi się to do zorganizowanego pliku elektronicznego lub bazy danych zawierającej zapisy rutynowej działalności biznesowej lub inne informacje istotne dla konkretnego projektu eksploracji danych.

dependent variable  (zmienna zależna): w modelu zmienna, której wartość zależy bezpośrednio od wartości innych (niezależnych) zmiennych. Zmienna zależna jest zwykle elementem, który górnicy danych próbują przewidzieć lub kontrolować.

drzewo decyzyjne: rodzina metod klasyfikacji, których wyniki są zwykle przedstawiane na wykresie drzewiastym.

forecasting (prognozowanie): przewidywanie przyszłych wartości niektórych zmiennych. Metody prognozowania są często stosowane do przewidywania sprzedaży, cen lub innych miar ekonomicznych.

frequency (częstotliwość): liczba wystąpień określonej wartości w zbiorze danych.

holdout data (dane wstrzymania): dane, które nie zostały wykorzystane w procesie dopasowania modelu (ani do szkolenia, ani do testowania). Służy do oceny wydajności modelu po zakończeniu procesu dopasowania.

hipoteza: domniemanie lub przekonanie. Wnioskowanie statystyczne opiera się na tworzeniu i testowaniu hipotez. W statystyce wnioskowania hipoteza jest twierdzeniem o związku między dwoma mierzonymi zjawiskami.

hipotez testowanie: sedno statystyki wnioskowania polegającej na ocenie dwóch hipotez, znanych jako hipoteza „zerowa” i „alternatywna”. Hipoteza „alternatywna” stwierdza, że dwa mierzone zjawiska są w jakiś sposób powiązane, a hipoteza „zerowa” jest po prostu domyślnym przekonaniem, że taki związek nie istnieje. Testowanie hipotez analizuje przykładowe dane w celu ustalenia, który z nich najlepiej obsługuje dane.

independent variable (zmienna niezależna): w modelu zmienne, które mogą wpływać na zmienną zależną. Mogą one, ale nie muszą być kontrolowane. Model prognozowania sprzedaży może mieć między innymi zmienną zależną całkowitej rocznej sprzedaży (w dolarach) i zmienne niezależne, takie jak stopa inflacji, wydatki na reklamę i liczba wykonanych połączeń.

input (dane wejściowe): zmienna niezależna

Kohonena Sieć: rodzaj sieci neuronowej. W przeciwieństwie do innych typów sieci neuronowych wymienionych w tej książce, sieci Kohonen są używane w aplikacjach klastrowych (zwanych również uczeniem bez nadzoru).

liniowa regresja: w statystyce metoda modelowania związku między zmiennymi zależnymi i niezależnymi. Regresja liniowa tworzy model, dopasowując linię prostą do wartości w zestawie danych.

logistyczna regresja: Podobnie jak regresja liniowa, statystyczna metoda modelowania zależności między zmiennymi zależnymi i niezależnymi na podstawie prawdopodobieństwa. Jednak w binarnej regresji logistycznej zmienna zależna (efekt lub wynik) może mieć tylko jedną z dwóch wartości, jak np. Płeć dziecka lub wyniki wyborów. (Wielomianowa regresja logistyczna pozwala na więcej niż dwie możliwe wartości.) Model regresji logistycznej jest tworzony przez dopasowanie danych do funkcji logit. (Zmienna zależna to 0 lub 1, a krzywa regresji ma kształt podobny do litery „s”).

market basket analysis (analiza koszyka rynkowego): Identyfikacja kombinacji produktów często kupowanych w ramach jednej transakcji.

market research (badanie rynku): Zbieranie informacji o klientach i potencjalnych klientach.

model: Równanie lub zestaw równań, używane do opisania zachowania systemu.

multilayer perceptron (MLP) (wielowarstwowy perceptron): rodzaj sieci neuronowej. MLP jest najczęstszą i prawdopodobnie najprostszą siecią neuronową używaną do klasyfikacji.

multivariate (wielowymiarowy): w literaturze statystycznej model z więcej niż jedną zmienną zależną. Również termin używany do opisania niektórych testów, w których więcej niż jedna zmienna niezależna jest zmieniana w tym samym czasie.

neuronowa sieć: rodzina typów modeli zdolnych do symulacji niektórych bardzo złożonych systemów.

node (węzeł): w niektórych aplikacjach do eksploracji danych funkcja (taka jak budowanie konkretnego modelu drzewa decyzyjnego, tworzenie wykresu rozrzutu lub usuwanie niekompletnych spraw z zestawu danych, wśród wielu innych możliwości) reprezentowana przez mały obraz lub ikonę, a nie według pozycji menu lub kodu. W sieciach neuronowych element struktury sieci

operacyjne badania (OR): Termin ogólny dla optymalizacji i innych metod matematycznych stosowane do wspomagania podejmowania decyzji.

odstająca wartość: wartość danych tak nietypowa, że uwzględnienie jej w analizie może prowadzić do bezużytecznych lub wprowadzających w błąd wyników. Analitycy czasami decydują się na wykluczenie tych wartości lub dokładne zbadanie ich wpływu na wydajność modelu.

output (wyjście): zmienna zależna.

overfitting (nadmierne dopasowanie): występuje, gdy model dokładnie opisuje dane wykorzystane do szkolenia, ale powoduje błędy lub sprawia, że prognozy są słabe w przypadku zastosowania do innych próbek danych.

parametr: wartość opisująca pewien aspekt rozkładu wartości w populacji. Prawdziwe wartości parametrów są generalnie nieznane, stąd potrzeba statystyki.

populacja: wszystkie elementy typu, którego chcesz się uczyć. Na przykład, jeśli studiujesz ludzi, populacją mogą być wszyscy ludzie, którzy żyją lub mogą się urodzić. Jeśli studiujesz płatności za rachunki, populacja może być wszystkimi możliwymi płatnościami za rachunki.

prognoza: Oczekiwanie na przyszłe zdarzenie.

predykcyjna analiza: metody analityczne stosowane do prognozowania. Praktyka stosowania modelowania matematycznego do przewidywania wyników.

predyktor: zmienna niezależna.

profilowanie: w statystykach termin ma takie samo znaczenie jak „klasyfikacja”.

quick, unbiased, and efficient statistical tree (QUEST) (szybkie, obiektywne i wydajne drzewo statystyczne): QUEST jest rodzajem drzewa decyzyjnego, zaprojektowanym z myślą o szybkim wykonywaniu i stanowi ważną kwestię dla niektórych eksploratorów danych pracujących z dużymi zestawami danych.

Radial Base Function (RBF): rodzaj sieci neuronowej. Podstawowa funkcja radialna jest odmianą perceptronu wielowarstwowego, zaprojektowanego tak, aby uzyskiwać wyniki szybciej niż konwencjonalny perceptron wielowarstwowy.

random sample (próba losowa): podzbiór populacji, dla którego każdy członek populacji ma równe szanse na wybór.

regresja: rodzina metod dopasowania linii lub krzywej do zestawu danych, stosowana w celu uproszczenia lub określenia liczby pozornie przypadkowych punktów danych.

raport: zbiór podsumowań danych, zwykle porównań sum, średnich i wartości procentowych.

response (odpowiedź): zmienna zależna.

ruleset (zestaw reguł): zbiór „if. . . następnie ”, które mogą być wykorzystane do prognozowania.

sample (próbka): podzbiór populacji. Próbka może zawierać całość lub tylko część dostępnych danych.

segmentacja: w marketingu akt definiowania dowolnej grupy klientów, niekoniecznie poprzez zastosowanie jakichkolwiek metod analitycznych. W eksploracji danych i statystyce segmentacja jest taka sama jak klastrowanie. Jednak analitycy i inni często używają tego terminu od niechcenia w odniesieniu do klasyfikacji.

sentymentów analiza: Metody analizy tekstu stosowane w celu uzyskania informacji o opiniach lub postawach mówcy lub pisarza (lub populacji mówców lub pisarzy).

significant (znaczący): efekt, który można wyraźnie oddzielić za pomocą metod analizy statystycznej od naturalnej zmienności (szumu) w danych. (Pamiętaj, że coś może być „znaczące” w tym sensie i nadal być zupełnie nieistotne z praktycznego punktu widzenia.) Eksperci danych nie używają tego terminu, jeśli w ogóle. Statystycy używają go cały czas.

statystyka: nauka wnioskowania na temat populacji na podstawie analizy matematycznej przykładowych danych.

strukturalnych równań modelowanie: ogólny termin określający różne metody stosowane w celu ustalenia, czy model reprezentujący rzeczywisty system jest rzeczywiście zgodny z danymi.

strukturalne dane: w statystyce i eksploracji danych każdy rodzaj danych, których wartości mają jasno określone znaczenie, takie jak liczby i kategorie.

survey research (badanie ankietowe): zadawanie ludziom pytań i wykorzystywanie odpowiedzi jako danych.

testowanie zestawu danych: próbka danych wykorzystywanych przy każdej iteracji procesu szkoleniowego w celu ponownego zamontowania modelu (ale możesz także usłyszeć ten termin używany do opisania danych wstrzymania). Termin ten jest najczęściej używany w kontekście dopasowania modelu sieci neuronowej do danych; oprogramowanie dopasowuje formę modelu do podzbioru danych (zwanego zestawem danych szkoleniowych, a następnie ocenia dopasowanie modelu do innego podzbioru, zwanego zestawem danych testowych. Proces ten można powtórzyć tysiące razy, a ostateczny model sieci neuronowej zostanie być tym, który najlepiej pasuje do zestawu danych testowych.

tekstu analiza: metody analityczne zastosowane do tekstu.

tekstu eksploracja: techniki eksploracji danych stosowane w tekście. Ponieważ opierają się one na tych samych podstawowych metodach analizy, co analiza tekstu, eksploracja tekstu jest synonimem analizy tekstu, a użycie terminu eksploracja jest przede wszystkim kwestią stylu i kontekstu.

training (szkolenie): W eksploracji danych proces dopasowywania modelu do danych. Jest to proces iteracyjny i może obejmować tysiące lub więcej iteracji.

training dataset (zestaw danych szkoleniowych): w eksploracji danych: próbka danych wykorzystywanych przy każdej iteracji procesu szkoleniowego do oceny dopasowania modelu.

unstructured data (nieustrukturyzowane dane): tekst, audio, wideo i inne typy złożonych danych, które nie mieszczą się łatwo w konwencjonalnej relacyjnej bazie danych. Dane nieustrukturyzowane nie są tak proste jak liczby i krótkie ciągi, których używa większość analityków danych.

walidacja: czynność testowania modelu z danymi, które nie zostały użyte w procesie dopasowania modelu.

wizualne programowanie: Definiowanie przepływu pracy poprzez manipulowanie obrazami graficznymi zamiast pisania kodu lub używania menu i okien dialogowych. Często używany do eksploracji danych.

wizualizacja: badanie danych za pomocą wykresów. Termin ten jest najczęściej używany, gdy wykresy są nowego lub nowego typu.

Dalsza lektura na temat R

Ten przypadek wprowadzający nie jest w żadnym wypadku wyczerpującym przeglądem języka. Zamiast tego wykorzystaliśmy ten zestaw danych do wprowadzenia kilku paradygmatów R związanych z ładowaniem, czyszczeniem, organizowaniem i analizowaniem danych. Ponownie przejrzymy wiele z tych funkcji i procesów w kolejnych sekcjach. Dla czytelników zainteresowanych zdobyciem większej praktyki i znajomości języka R przed kontynuowaniem, istnieje wiele doskonałych zasobów

eXit Chmuro :( (Cloud)

Cloud Computing

XML: eXtensible Markup Language. Sposób prezentacji danych w postaci plików tekstowych, który stał się lingua franca SOA. W XML, podobnie jak w HTML, dane znajdują się w znacznikach, które są ujęte w nawiasy kątowe (<i>), chociaż znaczniki w XML mogą mieć znacznie więcej znaczeń.

XML Schema: język do definiowania i opisywania struktury dokumentów XML.

XSD: definicja schematu XML. Opis tego, co może być w dokumencie XML.

XSLT: eXtensible Stylesheet Transformacje językowe. Język komputerowy oparty na XML, który określa sposób zmiany jednego dokumentu XML na inny.

Analiza danych

W przypadku tych danych odpowiemy na podstawowe pytanie tylko analizując je wizualnie. W pozostałej części książki połączymy analizy numeryczne i wizualne, ale ponieważ ten przykład ma jedynie na celu wprowadzenie podstawowych paradygmatów programowania R, zatrzymamy się na komponencie wizualnym. Jednak w przeciwieństwie do poprzedniej wizualizacji histogramu, ggplot2 dokłada większej staranności, aby jawnie budować warstwy wizualne. Pozwoli nam to stworzyć wizualizację, która bezpośrednio rozwiąże kwestię sezonowości w poszczególnych stanach w czasie i stworzy wizualizację bardziej profesjonalną. Zbudujemy wizualizację naraz w poniższym przykładzie, a następnie wyjaśnimy każdą warstwę osobno:

state.plot<-ggplot(all.sightings, aes(x=YearMonth,y=Sightings))+

geom_line(aes(color=”darkblue”))+

facet_wrap(~State,nrow=10,ncol=5)+

theme_bw()+

scale_color_manual(values=c(“darkblue”=”darkblue”),legend=FALSE)+

scale_x_date(major=”5 years”, format=”%Y”)+

xlab(“Time”)+ylab(“Number of Sightings”)+

opts(title=”Number of UFO sightings by Month-Year and U.S. State (1990-2010)”)

ggsave(plot=state.plot, filename=”../images/ufo_sightings.pdf”,width=14,height=8.5)

Jak zawsze, pierwszym krokiem jest utworzenie obiektu ggplot z ramką danych jako pierwszym argumentem. Używamy ramki danych all.sightings, którą utworzyliśmy w poprzednim kroku. Ponownie musimy zbudować estetyczną warstwę danych do wykreślenia, w tym przypadku oś x to kolumna YearMonth, a oś y to dane Sightings. Następnie, aby pokazać sezonowe różnice między stanami, narysujemy linię dla każdego stanu. Umożliwi nam to obserwowanie wszelkich skoków, kołysań lub wahań liczby obserwacji UFO dla każdego stanu w czasie. Aby to zrobić, użyjemy funkcji geom_line i ustawimy kolor na „ciemnoniebieski”, aby ułatwić odczytanie wizualizacji. Jak widzieliśmy w tym przypadku, dane UFO są dość bogate i obejmują wiele obserwacji w Stanach Zjednoczonych przez długi okres czasu. Wiedząc o tym, musimy wymyślić sposób na rozbicie tej wizualizacji, abyśmy mogli obserwować dane dla każdego stanu, ale także porównać je z innymi stanami. Jeśli wykreślimy wszystkie dane w jednym panelu, bardzo trudno będzie odróżnić zmienność. Aby to sprawdzić, uruchom pierwszy wiersz kodu z poprzedniego bloku, ale zamień kolor = „ciemnoniebieski” na kolor = stan i wprowadź

> print (state.plot) na konsoli. Lepszym rozwiązaniem byłoby wykreślenie danych dla każdego stanu osobno i uporządkowanie ich w siatce w celu łatwego porównania. Aby utworzyć wykres wieloaspektowy, używamy funkcji facet_wrap i określamy, że panele mają być tworzone przez zmienną State, która jest już typem czynnikowym, tj. Kategorycznym. Definiujemy również jawnie liczbę wierszy i kolumn w siatce, co jest łatwiejsze dla naszego przypadku, ponieważ wiemy, że tworzymy 50 różnych fabuł. Pakiet ggplot2 ma wiele motywów do kreślenia. Domyślnym motywem jest ten, którego użyliśmy w pierwszym przykładzie i ma on szare tło z ciemnoszarymi liniami siatki. Chociaż jest to wyłącznie kwestia gustu, wolimy użyć białego tła dla tego wykresu, ponieważ ułatwi to dostrzeżenie niewielkich różnic między punktami danych w naszej wizualizacji. Dodajemy warstwę theme_bw, która utworzy wykres z białym tłem i czarnymi liniami siatki. Gdy poczujesz się bardziej komfortowo z ggplot2, zalecamy eksperymentowanie z różnymi ustawieniami domyślnymi, aby znaleźć ten, który preferujesz. Pozostałe warstwy są wykonywane jako prace porządkowe, aby wizualizacja miała profesjonalny wygląd. Chociaż nie jest to formalnie wymagane, zwracanie uwagi na te szczegóły może oddzielić amatorskie fabuły od profesjonalnie wyglądających wizualizacji danych. Funkcja scale_color_manual służy do określania, że ​​ciąg „ciemnoniebieski” odpowiada bezpiecznemu dla sieci kolorowi „ciemnoniebieski”. Chociaż może się to wydawać powtarzalne, stanowi on rdzeń projektu ggplot2, który wymaga wyraźnej definicji szczegółów, takich jak kolor. W rzeczywistości ggplot2 ma tendencję do myślenia o kolorach jako o sposobie rozróżniania różnych typów lub kategorii danych i jako taki woli używać typu czynnika do określania koloru. W naszym przypadku definiujemy kolor jawnie za pomocą łańcucha i dlatego musimy zdefiniować wartość tego łańcucha za pomocą funkcji scale_color_manual.

Tak jak poprzednio, używamy parametru scale_x_date, aby określić główne linie siatki w wizualizacji. Ponieważ dane te obejmują 20 lat, będziemy ustawiać je w regularnych odstępach pięcioletnich. Następnie ustawiamy etykiety z kleszczami na rok w pełnym czterocyfrowym formacie. Następnie ustawiamy etykietę osi x na „Czas”, a etykietę osi y na „Liczba obserwacji” za pomocą odpowiednio funkcji xlab i ylab. Na koniec używamy funkcji opts, aby nadać fabule tytuł. Po zbudowaniu wszystkich warstw jesteśmy teraz gotowi do renderowania obrazu za pomocą ggsave i analizy danych. Istnieje wiele interesujących obserwacji, które wynikają z tej analizy

rys 1.7

 Widzimy, że Kalifornia i Waszyngton są dużymi wartościami odstającymi pod względem liczby obserwacji UFO w tych stanach w porównaniu do innych. Pomiędzy tymi wartościami odstającymi istnieją również interesujące różnice. W Kalifornii liczba zgłaszanych obserwacji UFO wydaje się nieco losowa w czasie, ale stale rośnie od 1995 roku, podczas gdy w Waszyngtonie sezonowa zmienność wydaje się bardzo spójna w czasie, z regularnymi szczytami i dolinami w obserwacjach UFO począwszy od około 1995 roku Możemy również zauważyć, że wiele stanów doświadcza nagłych skoków liczby zgłaszanych obserwacji UFO. Na przykład wydaje się, że Arizona, Floryda, Illinois i Montana doświadczyły skoków w połowie 1997 roku, a Michigan, Ohio i Oregon doświadczyły podobnych skoków pod koniec 1999 roku. Tylko Michigan i Ohio są geograficznie blisko tych grup. Jeśli nie wierzymy, że są one faktycznie wynikiem pozaziemskich gości, jakie są alternatywne wyjaśnienia? Być może wzrosła czujność obywateli, aby spojrzeć w niebo, gdy tysiąclecie dobiegło końca, powodując cięższe doniesienia o fałszywych obserwacjach. Jeśli jednak jesteś przychylny poglądowi, że możemy regularnie gościć gości z kosmosu, istnieją również dowody, które wzbudzą twoją ciekawość. W rzeczywistości zaskakująca jest regularność tych obserwacji w wielu stanach w USA, a także dowody na tworzenie klastrów regionalnych. To prawie tak, jakby obserwacje naprawdę zawierały znaczący wzór