Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00033 002986 18776151 na godz. na dobę w sumie
Data science od podstaw. Analiza danych w Pythonie - ebook/pdf
Data science od podstaw. Analiza danych w Pythonie - ebook/pdf
Autor: Liczba stron: 296
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-283-4603-1 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> hacking >> inne
Porównaj ceny (książka, ebook (-50%), audiobook).

Współczesne ogromne zbiory danych zawierają odpowiedzi na prawie każde pytanie. Równocześnie nauka o danych jest dziedziną, która cokolwiek onieśmiela. Znajduje się gdzieś pomiędzy subtelnymi umiejętnościami hakerskimi, twardą wiedzą z matematyki i statystyki a merytoryczną znajomością zagadnień z danej branży. Co więcej, dziedzina ta niezwykle dynamicznie się rozwija. Trud włożony w naukę o danych niewątpliwie się jednak opłaca: biegły analityk danych może liczyć na dobrze płatną, inspirującą i bardzo atrakcyjną pracę.

Dzięki tej książce opanujesz najważniejsze zagadnienia związane z matematyką i statystyką, będziesz także rozwijać umiejętności hakerskie. W ten sposób zyskasz podstawy pozwalające na rozpoczęcie przygody z analizą danych. Gruntownie zapoznasz się z potrzebnymi narzędziami i algorytmami. Pozwoli Ci to lepiej zrozumieć ich działanie. Poszczególne przykłady, którymi zilustrowano omawiane zagadnienia, są przejrzyste, dobrze opisane i zrozumiałe. Podczas lektury książki poznasz biblioteki, które umożliwią zaimplementowanie omówionych technik podczas analizy dużych zbiorów danych. Szybko się przekonasz, że aby zostać analitykiem danych, wystarczy odrobina ciekawości, sporo chęci, mnóstwo ciężkiej pracy i... ta książka.

Najważniejsze zagadnienia:

Python. Wyciśniesz z danych każdą kroplę wiedzy!

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

• Kup książkę • Poleć książkę • Oceń książkę • Księgarnia internetowa • Lubię to! » Nasza społeczność Spis treści Przedmowa ........................................................................................................................... 9 Rozdział 1. Wprowadzenie ................................................................................................... 13 13 13 14 Znaczenie danych Czym jest analiza danych? Hipotetyczna motywacja Rozdział 2. Błyskawiczny kurs Pythona ................................................................................. 25 25 36 43 Podstawy Bardziej skomplikowane zagadnienia Dalsza eksploracja Rozdział 3. Wizualizacja danych ........................................................................................... 45 45 47 50 51 52 Pakiet matplotlib Wykres słupkowy Wykresy liniowe Wykresy punktowe Dalsza eksploracja Rozdział 4. Algebra liniowa .................................................................................................. 55 55 59 61 Wektory Macierze Dalsza eksploracja Rozdział 5. Statystyka .......................................................................................................... 63 63 67 70 71 71 72 Opis pojedynczego zbioru danych Korelacja Paradoks Simpsona Inne pułapki związane z korelacją Korelacja i przyczynowość Dalsza eksploracja 3 Poleć książkęKup książkę Rozdział 6. Prawdopodobieństwo ........................................................................................ 73 73 74 75 77 77 79 81 83 Zależność i niezależność Prawdopodobieństwo warunkowe Twierdzenie Bayesa Zmienne losowe Ciągły rozkład prawdopodobieństwa Rozkład normalny Centralne twierdzenie graniczne Dalsza eksploracja Rozdział 7. Hipotezy i wnioski .............................................................................................. 85 85 85 89 90 91 92 95 Sprawdzanie hipotez Przykład: rzut monetą Przedziały ufności Hakowanie wartości p Przykład: przeprowadzanie testu A-B Wnioskowanie bayesowskie Dalsza eksploracja Rozdział 8. Metoda gradientu prostego ................................................................................ 97 97 98 101 101 102 103 104 Podstawy metody gradientu prostego Szacowanie gradientu Korzystanie z gradientu Dobór właściwego rozmiaru kroku Łączenie wszystkich elementów Stochastyczna metoda gradientu prostego Dalsza eksploracja Rozdział 9. Uzyskiwanie danych ......................................................................................... 105 105 107 109 115 117 120 Strumienie stdin i stdout Wczytywanie plików Pobieranie danych ze stron internetowych Korzystanie z interfejsów programistycznych Przykład: korzystanie z interfejsów programistycznych serwisu Twitter Dalsza eksploracja Rozdział 10. Praca z danymi ............................................................................................... 121 121 126 127 130 132 137 Eksploracja danych Oczyszczanie i wstępne przetwarzanie danych Przetwarzanie danych Przeskalowanie Redukcja liczby wymiarów Dalsza eksploracja 4  Spis treści Poleć książkęKup książkę Rozdział 11. Uczenie maszynowe ........................................................................................139 139 140 140 143 145 146 147 Modelowanie Czym jest uczenie maszynowe? Nadmierne i zbyt małe dopasowanie Poprawność Kompromis pomiędzy wartością progową a wariancją Ekstrakcja i selekcja cech Dalsza eksploracja Rozdział 12. Algorytm k najbliższych sąsiadów ....................................................................149 149 151 155 159 Model Przykład: ulubione języki Przekleństwo wymiarowości Dalsza eksploracja Rozdział 13. Naiwny klasyfikator bayesowski ......................................................................161 161 162 163 165 167 Bardzo prosty filtr antyspamowy Bardziej zaawansowany filtr antyspamowy Implementacja Testowanie modelu Dalsza eksploracja Rozdział 14. Prosta regresja liniowa ....................................................................................169 169 172 172 173 Model Korzystanie z algorytmu spadku gradientowego Szacowanie maksymalnego prawdopodobieństwa Dalsza eksploracja Rozdział 15. Regresja wieloraka ..........................................................................................175 175 176 177 178 178 179 180 181 183 Model Dalsze założenia dotyczące modelu najmniejszych kwadratów Dopasowywanie modelu Interpretacja modelu Poprawność dopasowania Dygresja: ładowanie wstępne Błędy standardowe współczynników regresji Regularyzacja Dalsza eksploracja Spis treści  5 Poleć książkęKup książkę Rozdział 16. Regresja logistyczna ....................................................................................... 185 185 187 189 190 190 194 Problem Funkcja logistyczna Stosowanie modelu Poprawność dopasowania Maszyny wektorów nośnych Dalsza eksploracja Rozdział 17. Drzewa decyzyjne ........................................................................................... 195 195 197 198 199 202 204 205 Czym jest drzewo decyzyjne? Entropia Entropia podziału Tworzenie drzewa decyzyjnego Łączenie wszystkiego w całość Lasy losowe Dalsza eksploracja Rozdział 18. Sztuczne sieci neuronowe ............................................................................... 207 207 209 211 213 216 Perceptrony Jednokierunkowe sieci neuronowe Propagacja wsteczna Przykład: pokonywanie zabezpieczenia CAPTCHA Dalsza eksploracja Rozdział 19. Grupowanie ................................................................................................... 217 217 218 219 221 222 224 228 Idea Model Przykład: spotkania Wybór wartości parametru k Przykład: grupowanie kolorów Grupowanie hierarchiczne z podejściem aglomeracyjnym Dalsza eksploracja Rozdział 20. Przetwarzanie języka naturalnego .................................................................. 229 229 231 234 236 237 241 Chmury wyrazowe Modele n-gram Gramatyka Na marginesie: próbkowanie Gibbsa Modelowanie tematu Dalsza eksploracja 6  Spis treści Poleć książkęKup książkę Rozdział 21. Analiza sieci społecznościowych .......................................................................243 243 248 251 253 Pośrednictwo Centralność wektorów własnych Grafy skierowane i metoda PageRank Dalsza eksploracja Ręczne rozwiązywanie problemu Rekomendowanie tego, co jest popularne Filtrowanie kolaboratywne oparte na użytkownikach Filtrowanie kolaboratywne oparte na zainteresowaniach Dalsza eksploracja Polecenia CREATE TABLE i INSERT Polecenie UPDATE Polecenie DELETE Polecenie SELECT Polecenie GROUP BY Polecenie ORDER BY Polecenie JOIN Zapytania składowe Indeksy Optymalizacja zapytań Bazy danych NoSQL Dalsza eksploracja Rozdział 22. Systemy rekomendujące ..................................................................................255 255 256 257 260 261 Rozdział 23. Bazy danych i SQL ............................................................................................263 263 265 265 266 267 269 270 272 272 273 274 274 Rozdział 24. Algorytm MapReduce ......................................................................................275 275 277 277 278 280 281 281 Rozdział 25. Po prostu zabierz się za praktykę ......................................................................283 283 283 284 286 287 Skorowidz ..........................................................................................................................289 Przykład: liczenie słów Dlaczego warto korzystać z algorytmu MapReduce? Algorytm MapReduce w ujęciu bardziej ogólnym Przykład: analiza treści statusów Przykład: mnożenie macierzy Dodatkowe informacje: zespalanie Dalsza eksploracja IPython Matematyka Korzystanie z gotowych rozwiązań Szukanie danych Zabierz się za analizę Spis treści  7 Poleć książkęKup książkę 8  Spis treści Poleć książkęKup książkę ROZDZIAŁ 12. Algorytm k najbliższych sąsiadów Jeżeli chcesz zdenerwować swoich sąsiadów, to powiedz o nich prawdę. — Pietro Aretino Załóżmy, że chcesz przewidzieć, na kogo oddam swój głos w kolejnych wyborach prezydenckich. Jeżeli nic o mnie nie wiesz, ale dysponujesz jakimiś danymi na mój temat, to możesz przyjrzeć się planom wyborczym moich sąsiadów. Mieszkam na przedmieściach Seattle, a moi sąsiedzi nie- zmiennie głosują na kandydata Partii Demokratycznej, zatem obstawienie tego, że również i ja będę głosował na kandydata tej partii, wydaje się dość rozsądne. Załóżmy, że posiadasz nie tylko dane dotyczące miejsca, w którym mieszkam. Dysponujesz da- nymi dotyczącymi mojego wieku, dochodu, liczby dzieci itd. Są to rzeczy, które do pewnego stopnia wpływają na moje zachowanie. Przyglądanie się preferencjom wyborczym moich sąsia- dów, którzy są mi bliscy również w płaszczyźnie tych dodatkowych wymiarów, wydaje się być jeszcze lepszym pomysłem. W taki sposób działa metoda klasyfikacji najbliższych sąsiadów. Model Metoda najbliższych sąsiadów to najprostszy istniejący model predyktywny. Nie wymaga ona two- rzenia zadanych założeń matematycznych ani stosowania ciężkiej artylerii. Wymaga ona jedynie:  miary odległości;  założenia, że punkty znajdujące się bliżej siebie są do siebie bardziej podobne. Większość technik, z których będziemy korzystać w tej książce, analizuje cały zbiór danych w celu znalezienia w nim pewnych prawidłowości. Algorytm najbliższych sąsiadów dość często ignoruje wiele informacji, ponieważ przewidywania parametrów nowego elementu zbioru danych zależą tylko od parametrów punktów, które są położone najbliżej. Ponadto metoda najbliższych sąsiadów nie pomoże Ci zrozumieć czynników wpływających na analizowany fenomen. Przewidywanie moich preferencji wyborczych na podstawie preferencji moich sąsiadów nie mówi zbyt wiele o przyczynach moich preferencji. Przyczyny mógłby określić alternatywny model przewidujący moje preferencje wyborcze na podstawie np. mojego dochodu i stanu cywilnego. 149 Poleć książkęKup książkę Ogólnie rzecz biorąc, dysponujemy elementami zbioru danych i odpowiadającymi im etykietami. Etykiety te mogą mieć postać np. wartości True lub False, które określają, czy dana wartość wej- ściowa spełnia warunek taki jak np. „jest spamem”, „jest trucizną” lub „jest filmem wartym obej- rzenia”. Etykiety mogą być również kategoriami — takimi jak np. kategorie wiekowe filmów (G, PG, PG-13, R i NC-17) — nazwiskami kandydatów startujących w wyborach prezydenckich lub nazwami ulubionego języka programowania. W naszym przypadku elementy zbioru danych będą wektorami, a więc możemy korzystać z funk- cji distance utworzonej w rozdziale 4. Załóżmy, że wybraliśmy wartość k równą np. 3 lub 5 i chcemy dokonać klasyfikacji nowych ob- serwacji — znaleźć k najbliższych elementów zbioru danych, oznaczonych etykietami, i na ich podstawie ustalić etykietę nowej obserwacji. W tym celu potrzebujemy funkcji liczącej głosy. Oto przykładowa implementacja mechanizmu li- czenia głosów: def raw_majority_vote(labels): votes = Counter(labels) winner, _ = votes.most_common(1)[0] return winner Niestety mechanizm taki nie robi niczego inteligentnego z węzłami. Załóżmy, że określamy kate- gorię wiekową filmów i pięciu najbliższym filmom nadano kategorie G, G, PG, PG i R.W związku z tym mamy dwa głosy na kategorię G i dwa głosy na kategorię PG. W takim przypadku możemy skorzystać z kilku rozwiązań:  Wybrać zwycięzcę w sposób losowy.  Określić wagi głosów na podstawie odległości i wybrać zwycięzcę na podstawie wagi.  Zmniejszać wartość parametru k aż do jednoznacznego określenia zwycięzcy. Zaimplementujemy trzecie rozwiązanie: def majority_vote(labels): Funkcja zakłada, że etykiety są ustawione w kolejności od najbliższej do najdalszej. vote_counts = Counter(labels) winner, winner_count = vote_counts.most_common(1)[0] num_winners = len([count for count in vote_counts.values() if count == winner_count]) if num_winners == 1: return winner # Ustalono jednoznacznie zwycięzcę. Zwróć go. else: return majority_vote(labels[:-1]) # Odrzuć najdalszą obserwację i spróbuj ponownie. Koniec końców metoda ta zwróci zwycięzcę. W najgorszym wypadku zostaniemy z jedną etykietą, która zostanie uznana za zwycięzcę. 150  Rozdział 12. Algorytm k najbliższych sąsiadów Poleć książkęKup książkę Dysponując tą funkcją, możemy z łatwością utworzyć klasyfikator: def knn_classify(k, labeled_points, new_point): Każdemu elementowi zbioru danych powinna być przypisana etykieta. # Ustaw punkty oznaczone etykietami w kolejności od najbliższego do najdalszego. by_distance = sorted(labeled_points, key=lambda (point, _): distance(point, new_point)) # Ustal etykiety k najbliższych punktów. k_nearest_labels = [label for _, label in by_distance[:k]] # Wybierz zwycięzcę na podstawie tych etykiet. return majority_vote(k_nearest_labels) Przyjrzyjmy się działaniu tego mechanizmu w praktyce. Przykład: ulubione języki Właśnie udało Ci się uzyskać dostęp do pierwszej ankiety przeprowadzonej wśród użytkowników serwisu DataSciencester, która miała na celu ustalenie preferowanych przez nich języków pro- gramowania (użytkownicy biorący udział w ankiecie mieszkają tylko w większych miastach): # Każdy element zbioru ma formę: ([długość geogr., szerokość geogr.], ulubiony_język). cities = [([-122.3 , 47.53], Python ), # Seattle ([ -96.85, 32.85], Java ), # Austin ([ -89.33, 43.13], R ), # Madison # I tak dalej… ] Osoba zarządzająca działem aktywizacji społeczności chce dowiedzieć się, czy wyniki ankiety mo- gą zostać użyte w celu przewidzenia preferowanego języka programowania w miejscach, które nie były objęte ankietą. Jak zwykle warto zacząć pracę od przedstawienia danych na wykresie (zobacz rysunek 12.1): # Klucz definiuje język, a wartość jest parą (długość geogr., szerokość geogr.). plots = { Java : ([], []), Python : ([], []), R : ([], []) } # Chcemy nadać każdemu językowy inny znak i kolor. markers = { Java : o , Python : s , R : ^ } colors = { Java : r , Python : b , R : g } for (longitude, latitude), language in cities: plots[language][0].append(longitude) plots[language][1].append(latitude) # Utwórz wykres punktowy danych każdego języka. for language, (x, y) in plots.iteritems(): plt.scatter(x, y, color=colors[language], marker=markers[language], label=language, zorder=10) plot_state_borders(plt) # Załóżmy, że mamy funkcję generującą kontury stanów. plt.legend(loc=0) # Pozwól pakietowi matplotlib wybrać najlepsze miejsce na legendę. plt.axis([-130,-60,20,55]) # Definicja osi. plt.title( Ulubione jezyki programowania ) plt.show() Przykład: ulubione języki  151 Poleć książkęKup książkę Rysunek 12.1. Ulubione języki programowania W kodzie znajduje się odwołanie do niezdefiniowanej funkcji plot_state_borders(). Implementację tej funkcji znajdziesz w pliku plot_state_borders.py wchodzącym w skład archiwum z kodem znajdującym się na stronie ftp://ftp.helion.pl/przyklady/ dascpo.zip, ale warto spróbować zaimplementować ją samodzielnie: 1. Poszukaj w internecie współrzędnych geograficznych granic pomiędzy po- szczególnymi stanami. 2. Zamień dane, które uda Ci się znaleźć, na listę segmentów [(dlug1, szer1), (dlug2, szer2)]. 3. Nanieś segmenty na wykres za pomocą funkcji plt.plot(). Wydaje się, że te same języki programowania są lubiane w zbliżonych do siebie miejscach, a więc model generujący przewidywania możemy oprzeć na algorytmie k najbliższych sąsiadów. Na początek zobaczmy, co się stanie, jeżeli spróbujemy przewidzieć język preferowany w każdym mieście na podstawie etykiet sąsiadów, a nie etykiety wybranego miasta: # Wypróbuj kilka wartości k. for k in [1, 3, 5, 7]: num_correct = 0 for city in cities: location, actual_language = city other_cities = [other_city for other_city in cities if other_city != city] predicted_language = knn_classify(k, other_cities, location) if predicted_language == actual_language: num_correct += 1 print k, sąsiad(ów): , num_correct, poprawnie na , len(cities) 152  Rozdział 12. Algorytm k najbliższych sąsiadów Poleć książkęKup książkę Wydaje się, że algorytm 3 najbliższych sąsiadów działa najlepiej — zwraca poprawne wyniki w około 59 przypadków: 1 sąsiad(ów): 40 poprawnie na 75 3 sąsiad(ów): 44 poprawnie na 75 5 sąsiad(ów): 41 poprawnie na 75 7 sąsiad(ów): 35 poprawnie na 75 Teraz możemy sprawdzić sposób, w jaki zostaną sklasyfikowane obszary w wyniku użycia każdej wartości parametru k. Zrobimy to, klasyfikując całą siatkę punktów, a następnie przedstawiając je na bazie wygenerowanego wcześniej wykresu miast: plots = { Java : ([], []), Python : ([], []), R : ([], []) } k = 1 # Lub k = 3, lub k = 5, lub… for longitude in range(-130, -60): for latitude in range(20, 55): predicted_language = knn_classify(k, cities, [longitude, latitude]) plots[predicted_language][0].append(longitude) plots[predicted_language][1].append(latitude) Na rysunku 12.2 pokazano graficzną interpretację tego, co stanie się po przyjęciu parametru k równego 1 (przyglądamy się tylko jednemu najbliższemu sąsiadowi). Rysunek 12.2. Języki programowania (algorytm 1 najbliższego sąsiada) Widocznych jest wiele gwałtownych zmian języka — granice są ostre. Wzrost liczby analizowanych sąsiadów powoduje wygładzenie granic pomiędzy poszczególnymi językami (zobacz rysunek 12.3). Przykład: ulubione języki  153 Poleć książkęKup książkę Rysunek 12.3. Języki programowania (algorytm 3 najbliższych sąsiadów) Po zwiększeniu liczby analizowanych sąsiadów do pięciu uzyskujemy jeszcze bardziej gładkie granice (zobacz rysunek 12.4). Rysunek 12.4. Języki programowania (algorytm 5 najbliższych sąsiadów) 154  Rozdział 12. Algorytm k najbliższych sąsiadów Poleć książkęKup książkę W tym przypadku dane poszczególnych wymiarów można ze sobą porównywać, ale gdyby nie dało się ich porównywać, to należałoby wówczas skorzystać z technik skalowania opisanych w roz- dziale 10., w podrozdziale „Przeskalowanie”. Przekleństwo wymiarowości Tzw. przekleństwo wymiarowości sprawia, że algorytm k najbliższych sąsiadów ma problemy z przetwarzaniem danych o większej liczbie wymiarów. Wynika to z ogromu przestrzeni wielo- wymiarowych. Punkty w przestrzeniach wielowymiarowych są zwykle od siebie bardzo oddalone. Można to sprawdzić poprzez generowanie losowych par punktów znajdujących się w d-wymiarowej przestrzeni, a następnie pomiar dzielących je odległości. Generowanie wartości losowych nie powinno już sprawiać Ci problemów: def random_point(dim): return [random.random() for _ in range(dim)] To samo dotyczy tworzenia funkcji obliczającej odległość: def random_distances(dim, num_pairs): return [distance(random_point(dim), random_point(dim)) for _ in range(num_pairs)] Dla każdej liczby wymiarów (od 1 do 100) będziemy obliczać 10 000 wartości odległości, które zostaną użyte w celu określenia średniej odległości pomiędzy punktami, a także minimalnej odle- głości pomiędzy punktami przy danej liczbie wymiarów (zobacz rysunek 12.5): dimensions = range(1, 101) avg_distances = [] min_distances = [] random.seed(0) for dim in dimensions: distances = random_distances(dim, 10000) # 10,000 losowych par. avg_distances.append(mean(distances)) # Określ wartość średnią. min_distances.append(min(distances)) # Określ wartość najmniejszą. Wzrost liczby wymiarów sprawia, że średnia odległość pomiędzy punktami wzrasta, ale najwięk- szym problemem jest zmiana stosunku pomiędzy najmniejszą odległością i średnią odległością (zobacz rysunek 12.6): min_avg_ratio = [min_dist / avg_dist for min_dist, avg_dist in zip(min_distances, avg_distances)] Przekleństwo wymiarowości  155 Poleć książkęKup książkę Rysunek 12.5. Przekleństwo wymiarowości Rysunek 12.6. Kolejne skutki przekleństwa wymiarowości 156  Rozdział 12. Algorytm k najbliższych sąsiadów Poleć książkęKup książkę W zbiorach danych o małej liczbie wymiarów najbliższe punkty są zwykle do siebie bardziej zbli- żone. Dwa punkty znajdują się blisko siebie, jeżeli są bliskie na płaszczyźnie każdego wymiaru. Dodanie do zbioru każdego kolejnego wymiaru (nawet takiego, który zawiera tylko szum) może doprowadzić do zwiększenia odległości pomiędzy punktami. W przypadku dużej liczby wymia- rów punkty reprezentujące elementy zbioru danych charakteryzują się zwykle większą średnią odległością od siebie, a więc bliskość dwóch punktów nie jest tak wyraźna jak w przypadku zbioru o mniejszej liczbie wymiarów, o ile dane nie zawierają wielu struktur, które sprawiają, że zbiór można analizować tak, jakby składał się z mniejszej liczby wymiarów. Problem ten można również powiązać z gęstością przestrzeni o większej liczbie wymiarów. Jeżeli wybierzemy 50 losowych liczb z zakresu od 0 do 1, to prawdopodobnie uzyskamy dość do- brą próbkę interwału jednostkowego (zobacz rysunek 12.7). Rysunek 12.7. Pięćdziesiąt losowych wartości w przestrzeni jednowymiarowej Jeżeli w przestrzeni dwuwymiarowej wybierzemy 50 losowo rozmieszczonych punktów, to będą one zajmowały mniejszy obszar przestrzeni (zobacz rysunek 12.8). Pięćdziesiąt punktów umieszczonych w losowych miejscach przestrzeni trójwymiarowej będzie od siebie oddalonych jeszcze bardziej (zobacz rysunek 12.9). Przekleństwo wymiarowości  157 Poleć książkęKup książkę Rysunek 12.8. Pięćdziesiąt punktów rozmieszczonych losowo w przestrzeni dwuwymiarowej Rysunek 12.9. Pięćdziesiąt punktów rozmieszczonych losowo w przestrzeni trójwymiarowej 158  Rozdział 12. Algorytm k najbliższych sąsiadów Poleć książkęKup książkę Pakiet matplotlib nie tworzy zbyt dobrych wizualizacji przestrzeni czterowymiarowych, a więc nie będę generował bardziej rozbudowanych wykresów, ale z trzech przedstawionych dotychczas wykresów wynika, że wzrost liczby wymiarów zwiększa ilość pustej przestrzeni pomiędzy warto- ściami. Wzrost liczby wymiarów bez wykładniczego przyrostu liczby punktów doprowadza do wzrostu pustych przestrzeni pomiędzy punktami, które mają być użyte do generowania przewi- dywań. Jeżeli chcesz korzystać z algorytmu k najbliższych sąsiadów w przestrzeniach wielowymiarowych, to lepiej jest zacząć pracę z takimi danymi od zastosowania jednej z technik redukcji wymiarów. Dalsza eksploracja  Pakiet scikit-learn zawiera implementacje wielu modeli algorytmów najbliższych sąsiadów (http://bit.ly/1ycP5rj). Dalsza eksploracja  159 Poleć książkęKup książkę 160  Rozdział 12. Algorytm k najbliższych sąsiadów Poleć książkęKup książkę Skorowidz A C agregacja bootstrapowa, 204 algebra liniowa, 55 algorytm ID3, 200 k najbliższych sąsiadów, 149 MapReduce, 275, 277 spadku gradientowego, 172 analiza danych, 13 LDA, 237 sieci społecznościowych, 243 treści statusów, 278 API, 115 argumenty nazwane i nienazwane, 42 B baza danych, 263 NoSQL, 274 białe znaki, 26 biblioteka D3.js, 52 gensim, 241 mrjob, 282 Natural Language Toolkit, 241 NetworkX, 253 NumPy, 284 pandas, 120 PyBrain, 216 Pylearn2, 216 scikit-learn, 23 Scrapy, 120 Twython, 119 błąd typu 1, 87 błędy standardowe współczynników regresji, 180 CAPTCHA, 213 cechy, 146 centralne twierdzenie graniczne, 81 centralność, 250 wektorów własnych, 247 chmura wyrazowa, 230 ciągły rozkład prawdopodobieństwa, 77 currying, 40 D dane uwierzytelniające, 118 data science, 9 defaultdict, 32 dobór rozmiaru kroku, 101 dopasowanie modelu, 140, 177 nadmierne, 140 zbyt słabe, 141 drzewa decyzyjne, 195 klasyfikacyjne, 196 regresyjne, 196 dyskretny rozkład prawdopodobieństwa, 77 dyspersja, 66 dystrybuanta, 78 E eksploracja danych, 121, 140 jednowymiarowych, 121 ekstrakcja cech, 146 entropia, 197 podziału, 198 enumerate, 41 289 Poleć książkęKup książkę F filtr antyspamowy, 161, 162 filtrowanie kolaboratywne, 257, 260 format JSON, 115 formatowanie kodu, 26 funkcja, 28 Counter, 33 csv.DictReader, 109 csv.writer, 109 gęstości prawdopodobieństwa, 77 gradient, 97 logistyczna, 187 make_hist, 82 partial, 40 plt.plot, 50 sorted, 36 sys.stdin, 105 zip, 41 funkcje składowe, 39 G generator, 37 Gephi, 253 gęstość centralności, 247 gradient, 97, 101 grafy skierowane, 251 gramatyka, 234 Graphlab, 261 grupowanie, 217 hierarchiczne, 224 kolorów, 222 H Hadoop, 281 hakowanie wartości p, 90 hiperpłaszczyzna, 191, 192 hipoteza zerowa, 85, 91 histogram, 48 rozkładu normal, 123 HTML, 110 I iloczyn skalarny, 57, 58 indeksy, 272 interfejs programistyczny, 115, 117 290  Skorowidz interpreter, 25 IPython, 283 istotność, 87 iteracja, 41 iterator, 37 J jednokierunkowe sieci neuronowe, 209 język R, 286 K klasa, 39 klasyfikator, 163 kod źródłowy stron, 112 korekta ciągłości, 88 korelacja, 67, 68, 71 kowariancja, 68 krok, 101 krotka, tuple, 31 L lasy losowe, 204 LDA, Latent Dirichlet Analysis, 237 liczba wymiarów, 132 liczenie słów, 275 licznik, 33 lista, list, 29 logarytm prawdopodobieństwa, 188 losowość, 38 Ł ładowanie wstępne, 179 łamanie zabezpieczenia CAPTCHA, 213 łańcuch, 29 M macierz, 59 korelacji, 124 kwadratowa, 249 mnożenie, 248, 280 wykresów punktowych, 124 maszyny wektorów nośnych, 190 mechanizm łączący, 281 mediana, 65 Poleć książkęKup książkę metoda gradientu prostego, 97, 103 k średnich, 218 klasyfikacji najbliższych sąsiadów, 149 najmniejszych kwadratów, 170 PageRank, 251 sort, 36 mnożenie macierzy, 248, 280 moc testu, 87 model biznesowy, 139 nadmiernie dopasowany, 142 najmniejszych kwadratów, 176 n-gram, 231 szumu, 141 modele parametryczne, 140 modelowanie, 139 predyktywne, 140 tematu, 237 moduł, 27 random, 38 scipy.stats, 83 Statsmodels, 183 wektora, 58 N nadmierne dopasowanie, 140 naiwny klasyfikator bayesowski, 161 narzędzia funkcyjne, 40 narzędzie Gephi, 253 Graphlab, 261 nauka o danych, 9 Netflix Prize, 261 niedomiar zmiennoprzecinkowy, 162 NLP, natural language procession, 229 NoSQL, 274 O obiekt JSON, 115 pliku, 107 oczyszczanie danych, 126 odchylenie standardowe, 67 operacje arytmetyczne, 28 optymalizacja zapytań, 273 P pakiet ggplot, 53 matplotlib, 45, 285 NumPy, 61 pandas, 72, 285 scikit-learn, 104, 137, 159, 183 SciPy, 72, 228 seaborn, 52 skicit-learn, 167, 285 StatsModels, 72 paradoks Simpsona, 70 parametr k, 221 parsowanie, 110 zdań, 235 perceptron, 207 pliki binarne, 108 tekstowe, 107 pobieranie danych ze stron, 109 pochodne cząstkowe, 100 podobieństwo kosinusowe, 257 polecenie CREATE TABLE, 263 DELETE, 265 except, 29 GROUP BY, 267 INSERT, 263 JOIN, 270 open, 107 ORDER BY, 269 SELECT, 266 try, 29 UPDATE, 265 polskie znaki diakrytyczne, 28 poprawność, 143 dopasowania, 178, 190 pośrednictwo, 243 prawdopodobieństwo, 73, 172 warunkowe, 74 programowanie obiektowe, 39 projekt Bokeh, 53 propagacja wsteczna, 211 próbkowanie Gibbsa, 236 przedział ufności, 89 przekleństwo wymiarowości, 155 przepływ sterowania, 34 przeskalowanie, 130 Skorowidz  291 Poleć książkęKup książkę przetwarzanie danych, 126, 127 języka naturalnego, NLP, 229 przyczynowość, 71 R redukcja liczby wymiarów, 132 regresja grzbietowa, 182 lasso, 183 liniowa, 169 logistyczna, 185 wieloraka, 175 regularyzacja, 181 rekomendacja, 255 relacyjna baza danych, 263 rozkład a posteriori, 92, 94 a priori, 92 beta, 92 jednostajny dyskretny, 77 normalny, 79 prawdopodobieństwa, 77 t-Studenta, 91, 181 rozpakowywanie argumentów, 41 S selekcja cech, 146 serializacja, 115 serwis DataSciencester, 14 sieci społecznościowe, 243 sieć neuronowa, 207 jednokierunkowa, 209 skalar, 55 składanie list, 36 słownik, dictionary, 15, 31 słowo kluczowe def, 28 key, 36 sortowanie, 36 sprawdzanie hipotez, 85 SQL, 263 statystyka, 63 stochastyczna metoda gradientu prostego, 103 stopień centralności, 244 pośrednictwa, 244 292  Skorowidz struktura danych dict, 15 strumień stdin, 105 stdout, 105 systemy rekomendujące, 255 szacowanie gradientu, 98 szacowanie maksymalnego prawdopodobieństwa, 172 sztuczka z funkcją jądra, 192 ścieżki decyzyjne, 195 średnia, 64 harmoniczna, 144 Ś T tendencje centralne, 64 test A-B, 91 jednostronny, 87 testowanie modelu, 165 transpozycja macierzy, 260 twierdzenie Bayesa, 75 tworzenie drzewa decyzyjnego, 199 kodu, 26 systemów rekomendacji, 261 U uczenie częściowo nadzorowane, 140 maszynowe, 139 nadzorowane, 140 nienadzorowane, 140 uwierzytelnianie, 116 W wariancja, 145 wartości binarne, 143 logiczne, 35 wartość progowa, 145 wczytywanie plików, 107 wektor, 55 własny macierzy, 249 Poleć książkęKup książkę węzły decyzyjne, 200 końcowe, 200 wizualizacja danych, 45, 285 wnioskowanie bayesowskie, 92 współczynnik centralności, 17 determinacji, 171 przewidywania, 144 R kwadrat, 171 ładowanie, 179 przetwarzanie danych, 126 wstępne wyjątki, 29 wykres liniowy, 50 punktowy, 51 słupkowy, 47 wyrażenia regularne, 38 Z zapytania składowe, 272 zasady tworzenia kodu, 26 zbiór, set, 33, 63 zdarzenia, 73 niezależne, 73 zależne, 73 zespalanie, 281 zmienna fikcyjna, 175 losowa, 77 składowa, 70 Skorowidz  293 Poleć książkęKup książkę Notatki Poleć książkęKup książkę
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Data science od podstaw. Analiza danych w Pythonie
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: